summaryrefslogtreecommitdiffstats
path: root/web_src/js/features/admin/config.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--web_src/js/features/admin/config.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/web_src/js/features/admin/config.js b/web_src/js/features/admin/config.js
new file mode 100644
index 0000000..c382342
--- /dev/null
+++ b/web_src/js/features/admin/config.js
@@ -0,0 +1,24 @@
+import {showTemporaryTooltip} from '../../modules/tippy.js';
+import {POST} from '../../modules/fetch.js';
+
+const {appSubUrl} = window.config;
+
+export function initAdminConfigs() {
+ const elAdminConfig = document.querySelector('.page-content.admin.config');
+ if (!elAdminConfig) return;
+
+ for (const el of elAdminConfig.querySelectorAll('input[type="checkbox"][data-config-dyn-key]')) {
+ el.addEventListener('change', async () => {
+ try {
+ const resp = await POST(`${appSubUrl}/admin/config`, {
+ data: new URLSearchParams({key: el.getAttribute('data-config-dyn-key'), value: el.checked}),
+ });
+ const json = await resp.json();
+ if (json.errorMessage) throw new Error(json.errorMessage);
+ } catch (ex) {
+ showTemporaryTooltip(el, ex.toString());
+ el.checked = !el.checked;
+ }
+ });
+ }
+}