From 8b7d26dfd1fc10e3143ff0d3fa969ed41f21e710 Mon Sep 17 00:00:00 2001 From: Eltrac Date: Wed, 10 Sep 2025 16:48:59 +0800 Subject: feat: add checkbox options - visitor can now disable umami tracking - visitor can now hide Batrick Former-commit-id: c092fca1f824e18586309376478e3ad95fcab3a2 --- assets/js/settings.js | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) (limited to 'assets') diff --git a/assets/js/settings.js b/assets/js/settings.js index 08e7a1de..5a90c2de 100644 --- a/assets/js/settings.js +++ b/assets/js/settings.js @@ -58,7 +58,48 @@ } initTextAlterButtons() - //... + // initialize checkbox options + function initCheckboxes() { + const checkboxes = document.querySelectorAll('#checkbox-options input[type="checkbox"]'); + const checkboxOptions = [ + { + id: 'dontAllowTracking', + label: '禁止网站使用 Web 分析工具跟踪用户行为', + storage: 'umami.disabled', + default: 'false' + }, + { + id: 'hideBatrick', + label: '隐藏 Batrick(返回顶部按钮)', + storage: 'geedeapro.ui.hideBatrick', + default: 'false' + } + ] + + checkboxOptions.forEach(checkboxOption => { + // create checkbox + const element = document.createElement('input'); + element.type = 'checkbox'; + element.id = checkboxOption.id; + element.checked = checkboxOption.default; + + // create label + const label = document.createElement('label'); + label.htmlFor = element.id; + label.textContent = checkboxOption.label; + + // add event listener to checkbox + element.addEventListener('change', () => { + localStorage.setItem(checkboxOption.storage, element.checked); + }); + + // append checkbox and label to container + const container = document.getElementById('checkbox-options'); + container.appendChild(element); + container.appendChild(label); + }); + } + initCheckboxes(); }; initializeSettingsPage(); -- cgit v1.2.3