admin-tabs.js (3032B)
1 // Admin tab management 2 function showAdminTab(tabName) { 3 // Hide all content sections 4 const contents = ['settings', 'database', 'aliases', 'orphans', 'thumbnails']; 5 contents.forEach(name => { 6 const content = document.getElementById(`admin-content-${name}`); 7 if (content) { 8 content.style.display = 'none'; 9 } 10 }); 11 12 // Remove active styling from all tabs 13 document.querySelectorAll('.admin-tab-btn').forEach(btn => { 14 btn.style.borderBottomColor = 'transparent'; 15 btn.style.fontWeight = 'normal'; 16 }); 17 18 // Show selected content 19 const selectedContent = document.getElementById(`admin-content-${tabName}`); 20 if (selectedContent) { 21 selectedContent.style.display = 'block'; 22 } 23 24 // Activate selected tab 25 const selectedTab = document.getElementById(`admin-tab-${tabName}`); 26 if (selectedTab) { 27 selectedTab.style.borderBottomColor = '#007bff'; 28 selectedTab.style.fontWeight = 'bold'; 29 } 30 31 // Store active tab in session storage 32 sessionStorage.setItem('activeAdminTab', tabName); 33 } 34 35 // Thumbnail sub-tab management 36 function showThumbnailSubTab(subTabName) { 37 // Hide all sub-tab contents 38 const subContents = ['missing', 'regenerate']; 39 subContents.forEach(name => { 40 const content = document.getElementById(`thumb-content-${name}`); 41 if (content) { 42 content.style.display = 'none'; 43 } 44 }); 45 46 // Remove active styling from all sub-tabs 47 document.querySelectorAll('.thumb-subtab-btn').forEach(btn => { 48 btn.style.borderBottomColor = 'transparent'; 49 btn.style.fontWeight = 'normal'; 50 }); 51 52 // Show selected sub-tab content 53 const selectedContent = document.getElementById(`thumb-content-${subTabName}`); 54 if (selectedContent) { 55 selectedContent.style.display = 'block'; 56 } 57 58 // Activate selected sub-tab 59 const selectedTab = document.getElementById(`thumb-subtab-${subTabName}`); 60 if (selectedTab) { 61 selectedTab.style.borderBottomColor = '#007bff'; 62 selectedTab.style.fontWeight = 'bold'; 63 } 64 65 // Store active sub-tab in session storage 66 sessionStorage.setItem('activeThumbnailSubTab', subTabName); 67 } 68 69 // Initialize on page load 70 document.addEventListener('DOMContentLoaded', function() { 71 // Restore previous tab selection or default to settings 72 const savedTab = sessionStorage.getItem('activeAdminTab') || 'settings'; 73 showAdminTab(savedTab); 74 75 // Restore previous thumbnail sub-tab or default to missing 76 const savedSubTab = sessionStorage.getItem('activeThumbnailSubTab') || 'missing'; 77 showThumbnailSubTab(savedSubTab); 78 79 // Auto-hide success messages after 5 seconds 80 const successDivs = document.querySelectorAll('.auto-hide-success'); 81 successDivs.forEach(div => { 82 setTimeout(() => { 83 div.style.transition = 'opacity 0.5s'; 84 div.style.opacity = '0'; 85 setTimeout(() => div.remove(), 500); 86 }, 5000); 87 }); 88 });