feat: Add reset-to-defaults button for testing
Neuer Button im Footer (🔄) zum Zurücksetzen aller Einstellungen: Features: - Löscht alle werkbaum-* localStorage-Einträge (Editor, Einstellungen, Update-Flags) - Confirm-Dialog mit Warnung (Editor-Inhalt geht verloren) - Reagiert auf alle Bildschirmgrößen - Nach Confirm: kurze Verzögerung (Logging sichtbar), dann auto-reload Hilfreich zum Testen: - Update-Detection testen (Editor-Inhalt neu setzen) - High-Risk-Status sehen (mit Reset auf Defaults und neuem Beispiel) - Alle Einstellungen auf Default zurückbringen Der Button sitzt unauffällig im Footer als 🔄-Symbol. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Haiku 4.5
parent
d5ef3ff800
commit
e7db4d53d5
@@ -1363,3 +1363,54 @@ function checkAndShowUpdateNotification(){
|
|||||||
notif.remove();
|
notif.remove();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---------- Reset-Funktion für Testing ---------- */
|
||||||
|
function resetToDefaults(){
|
||||||
|
const confirmed = confirm(
|
||||||
|
'Wirklich alles auf Defaults zurücksetzen?\n\n' +
|
||||||
|
'⚠️ Der Editor-Inhalt und alle Einstellungen werden gelöscht.\n' +
|
||||||
|
'Diese Aktion kann nicht rückgängig gemacht werden.'
|
||||||
|
);
|
||||||
|
|
||||||
|
if(!confirmed) return;
|
||||||
|
|
||||||
|
/* Lösche alle Werkbaum-Einträge aus localStorage */
|
||||||
|
const keysToDelete = Array.from({length: localStorage.length}, (_, i) => localStorage.key(i))
|
||||||
|
.filter(k => k && k.startsWith('werkbaum-'));
|
||||||
|
|
||||||
|
keysToDelete.forEach(k => localStorage.removeItem(k));
|
||||||
|
logUpdate('🔄 Alle Einstellungen zurückgesetzt');
|
||||||
|
|
||||||
|
/* Kurze Verzögerung, damit Logging sichtbar wird, dann reload */
|
||||||
|
setTimeout(() => {
|
||||||
|
window.location.reload();
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Reset-Button im Footer hinzufügen */
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
const footer = document.querySelector('.site-footer');
|
||||||
|
if(!footer) return;
|
||||||
|
|
||||||
|
const resetBtn = document.createElement('button');
|
||||||
|
resetBtn.textContent = '🔄';
|
||||||
|
resetBtn.title = 'App auf Defaults zurücksetzen (alle Einstellungen + Editor löschen)';
|
||||||
|
resetBtn.style.cssText = `
|
||||||
|
background: none;
|
||||||
|
border: none;
|
||||||
|
color: var(--muted, #999);
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 14px;
|
||||||
|
padding: 0 4px;
|
||||||
|
vertical-align: middle;
|
||||||
|
`;
|
||||||
|
resetBtn.addEventListener('click', resetToDefaults);
|
||||||
|
|
||||||
|
/* Einfügen nach der Versionsnummer */
|
||||||
|
const verLink = footer.querySelector('.ver');
|
||||||
|
if(verLink && verLink.nextSibling) {
|
||||||
|
verLink.parentNode.insertBefore(resetBtn, verLink.nextSibling.nextSibling);
|
||||||
|
} else {
|
||||||
|
footer.insertBefore(resetBtn, footer.firstChild);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user