diff --git a/static/js/admin.js b/static/js/admin.js new file mode 100644 index 0000000..4d15e41 --- /dev/null +++ b/static/js/admin.js @@ -0,0 +1,81 @@ +window.app = Vue.createApp({ + el: "#vue", + mixins: [windowMixin], + delimiters: ["${", "}"], + data: function () { + return { + entries: [], + columns: [ + { + name: "key", + required: true, + label: "Key", + align: "left", + field: (row) => row.key, + sortable: true, + }, + { + name: "value", + required: true, + label: "Value", + align: "left", + field: (row) => row.value, + sortable: true, + }, + ], + }; + }, + + methods: { + fetchConfig() { + this.entries = []; + LNbits.api + .request( + "GET", + "/nwcprovider/api/v1/config", + this.g.user.wallets[0].adminkey, + ) + .then((response) => { + const newEntries = []; + for (const [key, value] of Object.entries(response.data)) { + newEntries.push({ + key: key, + value: value, + }); + } + + this.entries = newEntries; + }) + .catch(function (error) { + console.error("Error fetching config:", error); + }); + }, + async saveConfig() { + const data = {}; + for (const entry of this.entries) { + data[entry.key] = entry.value; + } + try { + const response = await LNbits.api.request( + "POST", + "/nwcprovider/api/v1/config", + this.g.user.wallets[0].adminkey, + data, + ); + this.$q.notify({ + message: "Config saved, please restart the server", + color: "positive", + position: "top", + timeout: 2000, + actions: [{ icon: "close", color: "white" }], + }); + } catch (error) { + console.error("Error saving config:", error); + } + }, + }, + + created: function () { + this.fetchConfig(); + }, + }); \ No newline at end of file diff --git a/templates/nwcprovider/admin.html b/templates/nwcprovider/admin.html index ac9f66b..b402851 100644 --- a/templates/nwcprovider/admin.html +++ b/templates/nwcprovider/admin.html @@ -1,5 +1,7 @@ {% extends "base.html" %} {% from "macros.jinja" import window_vars with context -%} {% block page %} +%} {% block scripts %} {{ window_vars(user) }} + +{% endblock %} {% block page %}
@@ -36,88 +38,4 @@
-{% endblock %} {% block scripts %} {{ window_vars(user) }} - {% endblock %}