diff --git a/beango/index.html b/beango/index.html index d85fb24..0bb75cf 100644 --- a/beango/index.html +++ b/beango/index.html @@ -332,8 +332,17 @@ - - + +
+ +

Warning: This will clear all saved customizations and board content.

+
+ diff --git a/beango/js/beango.js b/beango/js/beango.js index f7f03c7..91c029a 100644 --- a/beango/js/beango.js +++ b/beango/js/beango.js @@ -850,7 +850,7 @@ function shuffleArray(array) { return array; } -// Function to reset settings and clear board +// --- Function to reset ONLY board content/structure settings --- function resetSettings() { // Clear localStorage relevant ONLY to the board structure/content localStorage.removeItem(LS_BOARD_SIZE); @@ -859,27 +859,6 @@ function resetSettings() { localStorage.removeItem(LS_MARKED_INDICES); localStorage.removeItem(LS_ORIGINAL_ITEMS); // User's raw input - // DO NOT clear these: - // localStorage.removeItem(LS_CONFIG_OPEN); - // localStorage.removeItem(LS_BACKGROUND_TYPE); - // localStorage.removeItem(LS_SOLID_COLOR); - // localStorage.removeItem(LS_GRADIENT_COLOR_1); - // localStorage.removeItem(LS_GRADIENT_COLOR_1_OPACITY); - // localStorage.removeItem(LS_GRADIENT_COLOR_2); - // localStorage.removeItem(LS_GRADIENT_COLOR_2_OPACITY); - // localStorage.removeItem(LS_GRADIENT_DIRECTION); - // localStorage.removeItem(LS_HEADER_TEXT); - // localStorage.removeItem(LS_HEADER_IMAGE_URL); - // localStorage.removeItem(LS_MARKED_STYLE_TYPE); - // localStorage.removeItem(LS_MARKED_COLOR); - // localStorage.removeItem(LS_MARKED_IMAGE_URL); - // localStorage.removeItem(LS_MARKED_COLOR_OPACITY); - // localStorage.removeItem(LS_CELL_BORDER_COLOR); // Keep style on board reset - // localStorage.removeItem(LS_CELL_BORDER_OPACITY); - // localStorage.removeItem(LS_CELL_BG_COLOR); - // localStorage.removeItem(LS_CELL_BG_OPACITY); - // localStorage.removeItem(LS_CELL_BG_IMAGE_URL); - // Reset global variables for board content currentItems = []; displayedItems = []; @@ -917,6 +896,31 @@ function resetSettings() { showNotification('Board settings reset. Generate a new board to apply.', 'success'); } +// --- Function to reset ALL application settings --- +function resetAllSettings() { + if (confirm('Are you sure you want to reset ALL settings (styles, header, board content, etc.) to their defaults? This cannot be undone.')) { + const keysToRemove = []; + for (let i = 0; i < localStorage.length; i++) { + const key = localStorage.key(i); + if (key.startsWith('beango_')) { + keysToRemove.push(key); + } + } + + keysToRemove.forEach(key => { + localStorage.removeItem(key); + console.log(`Removed setting: ${key}`); // Optional: log removed keys + }); + + showNotification('Resetting all settings to defaults...', 'warning', 1500); // Show brief message before reload + + // Use a short delay before reload to ensure the notification is visible + setTimeout(() => { + location.reload(); + }, 1600); // Slightly longer than notification duration + } +} + // --- Helper to get indices of marked cells --- function getMarkedIndices() { const markedCells = document.querySelectorAll('#bingo-board .bingo-cell.marked');