MediaWiki:Common.js: Difference between revisions
No edit summary Tag: Reverted |
No edit summary Tag: Reverted |
||
| Line 4: | Line 4: | ||
$(function () { | $(function () { | ||
var $ | 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 | // Build tab bar | ||
var $tabs = $('<div class="variant-tabs"></div>'); | var $tabs = $('<div class="variant-tabs"></div>'); | ||
var $ | 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 | |||
$tabs. | localStorage.setItem('variant-selected', k); | ||
}); | |||
$tabs.append($btn); | |||
}); | }); | ||
// Insert tab bar inside main content | |||
// Insert | |||
$('#mw-content-text').prepend($tabs); | $('#mw-content-text').prepend($tabs); | ||
// Load saved choice | // Load saved choice or default to last variant | ||
var saved = localStorage.getItem('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'); | |||
}); | }); | ||
Revision as of 10:08, 22 August 2025
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');
});