MediaWiki:Common.css: Difference between revisions
Jump to navigation
Jump to search
No edit summary Tag: Reverted |
No edit summary Tag: Reverted |
||
Line 1: | Line 1: | ||
. | /* Collapsible sidebar functionality for all pages */ | ||
$(document).ready(function() { | |||
// Function to make sidebar sections collapsible | |||
function makeSidebarCollapsible() { | |||
// Target the sidebar navigation | |||
$('#mw-panel .portal').each(function() { | |||
var $portal = $(this); | |||
var $header = $portal.find('h3'); | |||
var $body = $portal.find('.body'); | |||
// Skip certain sections that shouldn't be collapsible | |||
var portalId = $portal.attr('id'); | |||
if (portalId === 'p-search' || portalId === 'p-tb' || portalId === 'p-lang') { | |||
} | return; | ||
} | |||
/ | // Add toggle functionality only to specific sections | ||
. | var collapsibleSections = ['Documentation', 'Tools & Utilities', 'Community', 'Administrative', 'External Resources']; | ||
. | var headerText = $header.text().trim(); | ||
} | if (collapsibleSections.includes(headerText)) { | ||
// Add toggle button to header | |||
var $toggleBtn = $('<span class="sidebar-toggle">[−]</span>'); | |||
$header.append(' ').append($toggleBtn); | |||
// Add click handler | |||
$toggleBtn.click(function(e) { | |||
e.preventDefault(); | |||
e.stopPropagation(); | |||
if ($body.is(':visible')) { | |||
$body.slideUp(200); | |||
$toggleBtn.text('[+]'); | |||
$portal.addClass('collapsed'); | |||
} else { | |||
$body.slideDown(200); | |||
$toggleBtn.text('[−]'); | |||
$portal.removeClass('collapsed'); | |||
} | |||
}); | |||
// Start collapsed for some sections | |||
if (['Administrative', 'External Resources'].includes(headerText)) { | |||
$body.hide(); | |||
$toggleBtn.text('[+]'); | |||
$portal.addClass('collapsed'); | |||
} | |||
} | |||
}); | |||
} | |||
// Run the function | |||
makeSidebarCollapsible(); | |||
// Also run after any AJAX content loads | |||
$(document).ajaxComplete(function() { | |||
makeSidebarCollapsible(); | |||
}); | |||
}); | |||
/* CSS for sidebar toggle buttons */ | |||
mw.loader.using('mediawiki.util', function() { | |||
mw.util.addCSS(` | |||
.sidebar-toggle { | |||
cursor: pointer; | |||
font-weight: bold; | |||
color: #0645ad; | |||
margin-left: 5px; | |||
font-size: 12px; | |||
user-select: none; | |||
} | |||
.sidebar-toggle:hover { | |||
text-decoration: underline; | |||
color: #0b0080; | |||
} | |||
#mw-panel .portal.collapsed .body { | |||
display: none; | |||
} | |||
#mw-panel .portal h3 { | |||
cursor: default; | |||
} | |||
/* Style improvements for collapsible sections */ | |||
#mw-panel .portal { | |||
margin-bottom: 0.5em; | |||
} | |||
#mw-panel .portal .body ul { | |||
margin: 0; | |||
padding: 0; | |||
} | |||
#mw-panel .portal .body li { | |||
margin: 0.2em 0; | |||
} | |||
`); | |||
}); |
Revision as of 16:06, 25 August 2025
/* Collapsible sidebar functionality for all pages */ $(document).ready(function() { // Function to make sidebar sections collapsible function makeSidebarCollapsible() { // Target the sidebar navigation $('#mw-panel .portal').each(function() { var $portal = $(this); var $header = $portal.find('h3'); var $body = $portal.find('.body'); // Skip certain sections that shouldn't be collapsible var portalId = $portal.attr('id'); if (portalId === 'p-search' || portalId === 'p-tb' || portalId === 'p-lang') { return; } // Add toggle functionality only to specific sections var collapsibleSections = ['Documentation', 'Tools & Utilities', 'Community', 'Administrative', 'External Resources']; var headerText = $header.text().trim(); if (collapsibleSections.includes(headerText)) { // Add toggle button to header var $toggleBtn = $('<span class="sidebar-toggle">[−]</span>'); $header.append(' ').append($toggleBtn); // Add click handler $toggleBtn.click(function(e) { e.preventDefault(); e.stopPropagation(); if ($body.is(':visible')) { $body.slideUp(200); $toggleBtn.text('[+]'); $portal.addClass('collapsed'); } else { $body.slideDown(200); $toggleBtn.text('[−]'); $portal.removeClass('collapsed'); } }); // Start collapsed for some sections if (['Administrative', 'External Resources'].includes(headerText)) { $body.hide(); $toggleBtn.text('[+]'); $portal.addClass('collapsed'); } } }); } // Run the function makeSidebarCollapsible(); // Also run after any AJAX content loads $(document).ajaxComplete(function() { makeSidebarCollapsible(); }); }); /* CSS for sidebar toggle buttons */ mw.loader.using('mediawiki.util', function() { mw.util.addCSS(` .sidebar-toggle { cursor: pointer; font-weight: bold; color: #0645ad; margin-left: 5px; font-size: 12px; user-select: none; } .sidebar-toggle:hover { text-decoration: underline; color: #0b0080; } #mw-panel .portal.collapsed .body { display: none; } #mw-panel .portal h3 { cursor: default; } /* Style improvements for collapsible sections */ #mw-panel .portal { margin-bottom: 0.5em; } #mw-panel .portal .body ul { margin: 0; padding: 0; } #mw-panel .portal .body li { margin: 0.2em 0; } `); });