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