Files
Atay-Makhzan/web_src/js/features/admin/config.ts
T

25 lines
931 B
TypeScript
Raw Normal View History

import {showTemporaryTooltip} from '../../modules/tippy.ts';
import {POST} from '../../modules/fetch.ts';
2023-10-05 09:08:19 +08:00
const {appSubUrl} = window.config;
2024-11-11 12:13:57 +01:00
export function initAdminConfigs(): void {
const elAdminConfig = document.querySelector<HTMLDivElement>('.page-content.admin.config');
2023-10-05 09:08:19 +08:00
if (!elAdminConfig) return;
2024-11-11 12:13:57 +01:00
for (const el of elAdminConfig.querySelectorAll<HTMLInputElement>('input[type="checkbox"][data-config-dyn-key]')) {
2023-10-05 09:08:19 +08:00
el.addEventListener('change', async () => {
try {
const resp = await POST(`${appSubUrl}/-/admin/config`, {
2024-11-11 12:13:57 +01:00
data: new URLSearchParams({key: el.getAttribute('data-config-dyn-key'), value: String(el.checked)}),
2023-10-05 09:08:19 +08:00
});
2024-11-11 12:13:57 +01:00
const json: Record<string, any> = await resp.json();
2023-10-05 09:08:19 +08:00
if (json.errorMessage) throw new Error(json.errorMessage);
} catch (ex) {
showTemporaryTooltip(el, ex.toString());
el.checked = !el.checked;
}
});
2023-10-05 09:08:19 +08:00
}
}