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:
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();
+});