diff --git a/index.html b/index.html index af70aaf..8e484ef 100644 --- a/index.html +++ b/index.html @@ -235,6 +235,7 @@ + @@ -764,6 +765,11 @@ function renderLog() { box.innerHTML = html; } function clearLog() { if (confirm("Clear the practice log? (set lists & presets are kept)")) { lsSet(LS.logs, []); renderLog(); } } +function resetAll() { + if (!confirm("Reset EVERYTHING?\n\nThis permanently deletes all saved data on this device — presets, set lists, practice log and theme — and reloads the app to first-run state (demos restored). This cannot be undone.")) return; + try { localStorage.clear(); } catch (e) {} + location.replace(location.origin + location.pathname); // reload clean, no hash +} // --- backup: export / import everything (presets + set lists + logs) --- function exportAll() { @@ -1007,6 +1013,7 @@ $("exportBtn").addEventListener("click", () => { $("trayMenu").hidden = true; ex $("importBtn").addEventListener("click", () => { $("trayMenu").hidden = true; $("importFile").click(); }); $("importFile").addEventListener("change", (e) => { if (e.target.files[0]) importAll(e.target.files[0]); e.target.value = ""; }); $("clearLogBtn").addEventListener("click", () => { $("trayMenu").hidden = true; clearLog(); }); +$("resetAllBtn").addEventListener("click", () => { $("trayMenu").hidden = true; resetAll(); }); $("shareSettingsBtn").addEventListener("click", () => { $("trayMenu").hidden = true; shareSettings(); }); $("shareSetlistBtn").addEventListener("click", () => { $("trayMenu").hidden = true; shareSetlist(); }); $("shareClose").addEventListener("click", () => $("shareOverlay").hidden = true);