Jump to content

MediaWiki:Common.js

From Aquinas Archive
Revision as of 10:08, 22 August 2025 by CriminalElements (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.
mw.loader.load("/images/assets/image-selector.js");
/* mw.loader.load("/images/assets/nav.js"); */
mw.loader.load("https://dxgalaxy.org/js/nav.js");

$(function () {
  var $variants = $('.variant');
  if ($variants.length === 0) return;

  // Get unique variant keys on the page
  var keys = [];
  $variants.each(function () {
    var k = $(this).data('variant');
    if (keys.indexOf(k) === -1) keys.push(k);
  });

  if (keys.length < 2) return; // no need for toggle

  // Build tab bar
  var $tabs = $('<div class="variant-tabs"></div>');
  keys.forEach(function (k) {
    var $btn = $('<button>' + k.charAt(0).toUpperCase() + k.slice(1) + '</button>');
    $btn.on('click', function () {
      // Show only the selected variant
      $variants.hide().filter('[data-variant="' + k + '"]').show();
      // Update active tab
      $tabs.find('button').removeClass('active');
      $btn.addClass('active');
      // Save selection
      localStorage.setItem('variant-selected', k);
    });
    $tabs.append($btn);
  });

  // Insert tab bar inside main content
  $('#mw-content-text').prepend($tabs);

  // Load saved choice or default to last variant
  var saved = localStorage.getItem('variant-selected') || keys[0];
  $variants.hide().filter('[data-variant="' + saved + '"]').show();
  $tabs.find('button').removeClass('active')
       .filter(':contains("' + saved.charAt(0).toUpperCase() + saved.slice(1) + '")')
       .addClass('active');
});