tagliatelle

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 5fce4d0789de09cbf906bbf4a9d03345443fa80b
parent 7556e011f398380850be664478437a165ac05c8e
Author: breadcat <breadcat@users.noreply.github.com>
Date:   Wed, 25 Feb 2026 12:17:56 +0000

Simplify admin tabs javascript

Diffstat:
Mstatic/admin-tabs.js | 86++++++++++++++++++-------------------------------------------------------------
Mstatic/tag-alias.js | 4+++-
2 files changed, 22 insertions(+), 68 deletions(-)

diff --git a/static/admin-tabs.js b/static/admin-tabs.js @@ -1,84 +1,36 @@ -// Admin tab management -function showAdminTab(tabName) { - // Hide all content sections - const contents = ['settings', 'database', 'aliases', 'sedrules', 'orphans', 'thumbnails']; - contents.forEach(name => { - const content = document.getElementById(`admin-content-${name}`); - if (content) { - content.style.display = 'none'; - } - }); - - // Remove active styling from all tabs - document.querySelectorAll('.admin-tab-btn').forEach(btn => { +function activateTab(contentPrefix, btnSelector, tabPrefix, tabName) { + document.querySelectorAll(btnSelector).forEach(btn => { btn.style.borderBottomColor = 'transparent'; btn.style.fontWeight = 'normal'; }); - // Show selected content - const selectedContent = document.getElementById(`admin-content-${tabName}`); - if (selectedContent) { - selectedContent.style.display = 'block'; - } - - // Activate selected tab - const selectedTab = document.getElementById(`admin-tab-${tabName}`); - if (selectedTab) { - selectedTab.style.borderBottomColor = '#007bff'; - selectedTab.style.fontWeight = 'bold'; - } - - // Store active tab in session storage - sessionStorage.setItem('activeAdminTab', tabName); -} - -// Thumbnail sub-tab management -function showThumbnailSubTab(subTabName) { - // Hide all sub-tab contents - const subContents = ['missing', 'regenerate']; - subContents.forEach(name => { - const content = document.getElementById(`thumb-content-${name}`); - if (content) { - content.style.display = 'none'; - } + document.querySelectorAll(`[id^="${contentPrefix}"]`).forEach(el => { + el.style.display = 'none'; }); - // Remove active styling from all sub-tabs - document.querySelectorAll('.thumb-subtab-btn').forEach(btn => { - btn.style.borderBottomColor = 'transparent'; - btn.style.fontWeight = 'normal'; - }); + const selectedContent = document.getElementById(contentPrefix + tabName); + if (selectedContent) selectedContent.style.display = 'block'; - // Show selected sub-tab content - const selectedContent = document.getElementById(`thumb-content-${subTabName}`); - if (selectedContent) { - selectedContent.style.display = 'block'; + const selectedBtn = document.getElementById(tabPrefix + tabName); + if (selectedBtn) { + selectedBtn.style.borderBottomColor = '#007bff'; + selectedBtn.style.fontWeight = 'bold'; } +} - // Activate selected sub-tab - const selectedTab = document.getElementById(`thumb-subtab-${subTabName}`); - if (selectedTab) { - selectedTab.style.borderBottomColor = '#007bff'; - selectedTab.style.fontWeight = 'bold'; - } +function showAdminTab(tabName) { + activateTab('admin-content-', '.admin-tab-btn', 'admin-tab-', tabName); +} - // Store active sub-tab in session storage - sessionStorage.setItem('activeThumbnailSubTab', subTabName); +function showThumbnailSubTab(subTabName) { + activateTab('thumb-content-', '.thumb-subtab-btn', 'thumb-subtab-', subTabName); } -// Initialize on page load document.addEventListener('DOMContentLoaded', function() { - // Restore previous tab selection or default to settings - const savedTab = sessionStorage.getItem('activeAdminTab') || 'settings'; - showAdminTab(savedTab); - - // Restore previous thumbnail sub-tab or default to missing - const savedSubTab = sessionStorage.getItem('activeThumbnailSubTab') || 'missing'; - showThumbnailSubTab(savedSubTab); + showAdminTab('settings'); + showThumbnailSubTab('missing'); - // Auto-hide success messages after 5 seconds - const successDivs = document.querySelectorAll('.auto-hide-success'); - successDivs.forEach(div => { + document.querySelectorAll('.auto-hide-success').forEach(div => { setTimeout(() => { div.style.transition = 'opacity 0.5s'; div.style.opacity = '0'; diff --git a/static/tag-alias.js b/static/tag-alias.js @@ -106,4 +106,6 @@ document.getElementById('aliases-form').addEventListener('submit', function(e) { }); // Initial render -renderAliasGroups(); +document.addEventListener('DOMContentLoaded', function() { + renderAliasGroups(); +});