MediaWiki:Common.js: Difference between revisions

From Medalist Wiki
No edit summary
No edit summary
Line 3: Line 3:
mw.loader.using(['mediawiki.util', 'jquery'], function() {
mw.loader.using(['mediawiki.util', 'jquery'], function() {
     $(function() {
     $(function() {
         // Create the HTML string for the toggle container
         // Create the toggle interface
         var toggleHtml =  
         var toggleHtml =  
             '<div class="toggle-container">' +
             '<div class="version-toggle">' +
             '<div class="toggle-label">Select version:</div>' +
             '<div class="version-toggle-label">Content Version:</div>' +
             '<button class="toggle-button anime-toggle">Anime</button>' +
            '<div class="version-toggle-buttons">' +
             '<button class="toggle-button manga-toggle active">Manga</button>' +
             '<button class="version-button anime-toggle">Anime</button>' +
             '<button class="version-button manga-toggle active">Manga</button>' +
            '</div>' +
             '</div>';
             '</div>';
          
          
         // Insert the toggle container after the first heading
         // Insert the toggle into the navigation sidebar
         $('#firstHeading').after(toggleHtml);
         $('#p-navigation .body').prepend(toggleHtml);
          
          
         // Set initial state
         // Set initial state
Line 19: Line 21:
         // Anime toggle click handler
         // Anime toggle click handler
         $('.anime-toggle').on('click', function() {
         $('.anime-toggle').on('click', function() {
             $('.toggle-button').removeClass('active');
             $('.version-button').removeClass('active');
             $(this).addClass('active');
             $(this).addClass('active');
             $('body')
             $('body')
                 .removeClass('show-manga')
                 .removeClass('show-manga')
                 .addClass('show-anime');
                 .addClass('show-anime');
             // Save preference in localStorage if available
             // Save preference
             if (window.localStorage) {
             if (window.localStorage) {
                 window.localStorage.setItem('contentPreference', 'anime');
                 window.localStorage.setItem('contentPreference', 'anime');
Line 32: Line 34:
         // Manga toggle click handler
         // Manga toggle click handler
         $('.manga-toggle').on('click', function() {
         $('.manga-toggle').on('click', function() {
             $('.toggle-button').removeClass('active');
             $('.version-button').removeClass('active');
             $(this).addClass('active');
             $(this).addClass('active');
             $('body')
             $('body')
                 .removeClass('show-anime')
                 .removeClass('show-anime')
                 .addClass('show-manga');
                 .addClass('show-manga');
             // Save preference in localStorage if available
             // Save preference
             if (window.localStorage) {
             if (window.localStorage) {
                 window.localStorage.setItem('contentPreference', 'manga');
                 window.localStorage.setItem('contentPreference', 'manga');
Line 43: Line 45:
         });
         });
          
          
         // Load saved preference if localStorage is available
         // Load saved preference if available
         if (window.localStorage) {
         if (window.localStorage) {
             var savedPreference = window.localStorage.getItem('contentPreference');
             var savedPreference = window.localStorage.getItem('contentPreference');

Revision as of 18:12, 6 February 2025

/* Any JavaScript here will be loaded for all users on every page load. */
// MediaWiki:Common.js
mw.loader.using(['mediawiki.util', 'jquery'], function() {
    $(function() {
        // Create the toggle interface
        var toggleHtml = 
            '<div class="version-toggle">' +
            '<div class="version-toggle-label">Content Version:</div>' +
            '<div class="version-toggle-buttons">' +
            '<button class="version-button anime-toggle">Anime</button>' +
            '<button class="version-button manga-toggle active">Manga</button>' +
            '</div>' +
            '</div>';
        
        // Insert the toggle into the navigation sidebar
        $('#p-navigation .body').prepend(toggleHtml);
        
        // Set initial state
        $('body').addClass('show-manga');
        
        // Anime toggle click handler
        $('.anime-toggle').on('click', function() {
            $('.version-button').removeClass('active');
            $(this).addClass('active');
            $('body')
                .removeClass('show-manga')
                .addClass('show-anime');
            // Save preference
            if (window.localStorage) {
                window.localStorage.setItem('contentPreference', 'anime');
            }
        });
        
        // Manga toggle click handler
        $('.manga-toggle').on('click', function() {
            $('.version-button').removeClass('active');
            $(this).addClass('active');
            $('body')
                .removeClass('show-anime')
                .addClass('show-manga');
            // Save preference
            if (window.localStorage) {
                window.localStorage.setItem('contentPreference', 'manga');
            }
        });
        
        // Load saved preference if available
        if (window.localStorage) {
            var savedPreference = window.localStorage.getItem('contentPreference');
            if (savedPreference === 'anime') {
                $('.anime-toggle').trigger('click');
            }
        }
    });
});