taggart

Simple golang tagging filesystem webapp
Log | Files | Refs

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 });