MediaWiki:Common.js: Difference between revisions
(toggle prayge) |
No edit summary |
||
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. */ | ||
mw.loader.using(['mediawiki.api', 'mediawiki.util'], function() { | mw.loader.using(['mediawiki.api', 'mediawiki.util'], function() { | ||
$(function() { | $(function() { | ||
var $toggleButton = $('< | // Create the toggle button with a more modern style matching your toolbar | ||
var $toggleButton = $('<a id="content-toggle" class="mw-echo-notifications-badge">' + | |||
'<span>Content Mode</span>' + | |||
'< | '</a>'); | ||
'</ | |||
$(' | var $toggleMenu = $('<div class="content-toggle-menu vector-menu-content">' + | ||
'<ul>' + | |||
'<li data-mode="anime"><a>Caught up to Anime</a></li>' + | |||
'<li data-mode="manga"><a>Caught up to Manga</a></li>' + | |||
'</ul>' + | |||
'</div>'); | |||
// Get user's current preference | // Insert next to your other toolbar items | ||
$('.vector-user-links, #p-personal').append( | |||
$('<li class="mw-list-item" id="pt-content-toggle"></li>').append($toggleButton) | |||
); | |||
$toggleButton.after($toggleMenu); | |||
// Get user's current preference | |||
var currentMode = localStorage.getItem('contentMode') || 'anime'; | var currentMode = localStorage.getItem('contentMode') || 'anime'; | ||
updateContentDisplay(currentMode); | updateContentDisplay(currentMode); | ||
Line 27: | Line 34: | ||
function updateContentDisplay(mode) { | function updateContentDisplay(mode) { | ||
$('.manga-content, .anime-content').hide(); | $('.manga-content, .anime-content').hide(); | ||
if (mode === 'manga') { | if (mode === 'manga') { | ||
$('.manga-content, .anime-content').show(); | $('.manga-content, .anime-content').show(); | ||
Line 37: | Line 42: | ||
} | } | ||
// Update | // Update visual state in menu | ||
$('.content-toggle-menu li').removeClass('active'); | $('.content-toggle-menu li').removeClass('active'); | ||
$('.content-toggle-menu li[data-mode="' + mode + '"]').addClass('active'); | $('.content-toggle-menu li[data-mode="' + mode + '"]').addClass('active'); | ||
// Update button text to show current mode | |||
$('#content-toggle span').text('Mode: ' + (mode === 'manga' ? 'Manga' : 'Anime')); | |||
} | } | ||
Revision as of 17:53, 6 February 2025
/* Any JavaScript here will be loaded for all users on every page load. */
mw.loader.using(['mediawiki.api', 'mediawiki.util'], function() {
$(function() {
// Create the toggle button with a more modern style matching your toolbar
var $toggleButton = $('<a id="content-toggle" class="mw-echo-notifications-badge">' +
'<span>Content Mode</span>' +
'</a>');
var $toggleMenu = $('<div class="content-toggle-menu vector-menu-content">' +
'<ul>' +
'<li data-mode="anime"><a>Caught up to Anime</a></li>' +
'<li data-mode="manga"><a>Caught up to Manga</a></li>' +
'</ul>' +
'</div>');
// Insert next to your other toolbar items
$('.vector-user-links, #p-personal').append(
$('<li class="mw-list-item" id="pt-content-toggle"></li>').append($toggleButton)
);
$toggleButton.after($toggleMenu);
// Get user's current preference
var currentMode = localStorage.getItem('contentMode') || 'anime';
updateContentDisplay(currentMode);
// Handle toggle clicks
$('.content-toggle-menu li').on('click', function() {
var mode = $(this).data('mode');
localStorage.setItem('contentMode', mode);
updateContentDisplay(mode);
});
});
});
function updateContentDisplay(mode) {
$('.manga-content, .anime-content').hide();
if (mode === 'manga') {
$('.manga-content, .anime-content').show();
} else {
$('.anime-content').show();
}
// Update visual state in menu
$('.content-toggle-menu li').removeClass('active');
$('.content-toggle-menu li[data-mode="' + mode + '"]').addClass('active');
// Update button text to show current mode
$('#content-toggle span').text('Mode: ' + (mode === 'manga' ? 'Manga' : 'Anime'));
}