Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

MediaWiki:Citizen.js

MediaWiki interface page
Revision as of 14:25, 25 April 2025 by Acans (talk | contribs)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* All JavaScript here will be loaded for users of the Citizen skin */

$(document).ready(function() {
  if (window.innerWidth >= 768) { // Only on desktop
    const idsToCollapse = [
      'Muling', 'Misc', 'Anti-ban', 'Anti-PK', 'Trip_Settings', 'Skills_Settings', 'Equipment'
    ];

    mw.hook('citizen-collapsibles-init').add(function() {
      idsToCollapse.forEach(function(rawId) {
        var id = rawId.replace(/ /g, "_");
        var header = document.getElementById(id);
        if (!header) return;

        var section = header.closest('.citizen-section-heading');
        var content = section?.nextElementSibling;
        if (!section || !content) return;

        // --- Manually collapse section ---
        section.classList.add('citizen-section-collapsed'); // Add collapsed class
        content.style.display = 'none'; // Hide content manually

        // --- Remove old Citizen click event if any ---
        var newSection = section.cloneNode(true);
        section.parentNode.replaceChild(newSection, section);
        
        // --- Bind our clean click handler ---
        newSection.addEventListener('click', function() {
          if (content.style.display === 'none') {
            content.style.display = 'block';
            newSection.classList.remove('citizen-section-collapsed');
          } else {
            content.style.display = 'none';
            newSection.classList.add('citizen-section-collapsed');
          }
        });
      });
    });
  }
});