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

MediaWiki:Common.js: Difference between revisions

MediaWiki interface page
No edit summary
No edit summary
 
(23 intermediate revisions by 2 users not shown)
Line 1: Line 1:
/* Any JavaScript here will be loaded for all users on every page load. */
/* Any JavaScript here will be loaded for all users on every page load. */


// Discord link
$(document).ready(function() {
$(document).ready(function() {
     // True accordion behavior: collapse others when one is expanded
     var discordElement = $(`
     $('.accordion-section').on('click', function(e) {
        <div class="g-discord citizen-header__item citizen-dropdown" style="display: flex; justify-content: center; align-items: center;">
         var $this = $(this);
            <a href="https://discord.gg/gscripts" target="_blank">
         // If clicking the header (not a link inside content), toggle it
                <img src="https://wiki.gscripts.co/images/4/4b/Discord_30_30.png" alt="Discord" width="30" height="30">
         if (e.target.tagName !== 'A' && !$this.hasClass('mw-collapsed')) {
            </a>
             $this.addClass('mw-collapsed');
        </div>
        } else if (e.target.tagName !== 'A') {
    `);
             $('.accordion-section').not(this).addClass('mw-collapsed'); // Collapse all others
    $(".citizen-header .citizen-header__logo").after(discordElement);
             $this.removeClass('mw-collapsed'); // Expand this one
});
 
/* $(document).ready(function() {
    var $sections = $('.accordion-section');
 
    // Initialize: disable links in all headers by default (since all start collapsed)
    $sections.find('.accordion-header a').css('pointer-events', 'none');
 
    // Handle header clicks
     $('.accordion-header').on('click', function(e) {
         var $section = $(this).closest('.accordion-section');
         var $content = $section.find('.accordion-content');
         var isHidden = $content.is(':hidden');
 
        if (isHidden) {
            // Collapse all other sections
             $sections.not($section).find('.accordion-content').slideUp(200);
            $sections.not($section).removeClass('expanded');
             $sections.not($section).find('.accordion-header a').css('pointer-events', 'none');
 
            // Expand this section
            $content.slideDown(200);
            $section.addClass('expanded');
            $section.find('.accordion-header a').css('pointer-events', 'auto');
        } else {
            // Collapse this section
            $content.slideUp(200);
             $section.removeClass('expanded');
            $section.find('.accordion-header a').css('pointer-events', 'none');
         }
         }
    });


    // Disable link clicks in collapsed sections
        // Prevent link click if content is hidden
    $('.accordion-section.mw-collapsed a').on('click', function(e) {
        if (e.target.tagName === 'A' && $content.is(':hidden')) {
        e.preventDefault(); // Prevent link from working when collapsed
            e.preventDefault();
        }
     });
     });
}); */


    // Re-enable links when expanded
// Load Citizen.js if using Citizen skin
    $('.accordion-section').on('click', function() {
if (mw.config.get('skin') === 'citizen') {
        if (!$(this).hasClass('mw-collapsed')) {
  mw.loader.load('/index.php?title=MediaWiki:Citizen.js&action=raw&ctype=text/javascript');
            $(this).find('a').off('click'); // Remove the preventDefault when expanded
}
        }
    });
});

Latest revision as of 14:27, 25 April 2025

/* Any JavaScript here will be loaded for all users on every page load. */

// Discord link
$(document).ready(function() {
    var discordElement = $(`
        <div class="g-discord citizen-header__item citizen-dropdown" style="display: flex; justify-content: center; align-items: center;">
            <a href="https://discord.gg/gscripts" target="_blank">
                <img src="https://wiki.gscripts.co/images/4/4b/Discord_30_30.png" alt="Discord" width="30" height="30">
            </a>
        </div>
    `);
    $(".citizen-header .citizen-header__logo").after(discordElement);
});

/* $(document).ready(function() {
    var $sections = $('.accordion-section');

    // Initialize: disable links in all headers by default (since all start collapsed)
    $sections.find('.accordion-header a').css('pointer-events', 'none');

    // Handle header clicks
    $('.accordion-header').on('click', function(e) {
        var $section = $(this).closest('.accordion-section');
        var $content = $section.find('.accordion-content');
        var isHidden = $content.is(':hidden');

        if (isHidden) {
            // Collapse all other sections
            $sections.not($section).find('.accordion-content').slideUp(200);
            $sections.not($section).removeClass('expanded');
            $sections.not($section).find('.accordion-header a').css('pointer-events', 'none');

            // Expand this section
            $content.slideDown(200);
            $section.addClass('expanded');
            $section.find('.accordion-header a').css('pointer-events', 'auto');
        } else {
            // Collapse this section
            $content.slideUp(200);
            $section.removeClass('expanded');
            $section.find('.accordion-header a').css('pointer-events', 'none');
        }

        // Prevent link click if content is hidden
        if (e.target.tagName === 'A' && $content.is(':hidden')) {
            e.preventDefault();
        }
    });
}); */

// Load Citizen.js if using Citizen skin
if (mw.config.get('skin') === 'citizen') {
  mw.loader.load('/index.php?title=MediaWiki:Citizen.js&action=raw&ctype=text/javascript');
}