MediaWiki:Common.js: Difference between revisions
MediaWiki interface page
More actions
Strayerror (talk | contribs) No edit summary |
Strayerror (talk | contribs) No edit summary |
||
| Line 26: | Line 26: | ||
mw.hook('wikipage.content').add(function ($content) { | mw.hook('wikipage.content').add(function ($content) { | ||
const tabs = | const $tabs = $content.find('ul.version-tabs'); | ||
if (!$tabs) return; | |||
const allow = ['21', '0.20.16']; | |||
pref = | |||
if (location.hash) { | |||
if (location.hash.slice(1).endsWith('-0.20.16')) { | |||
const pref = '0.20.16'; | |||
} else { | |||
const pref = '21'; | |||
} else { | |||
const pref = localStorage.getItem('preferredVersion') || 'current'; | |||
} | } | ||
function activateTab(tab) { | function activateTab(tab) { | ||
if ( | if (allow.indexOf(tab) === -1) return; | ||
$content.find('div.vt-content').hide(); | $content.find('div.vt-content').hide(); | ||
$content.find('div.vt-' + tab.replaceAll('.', '-')).show(); | $content.find('div.vt-' + tab.replaceAll('.', '-')).show(); | ||
$ | $tabs.find('li').removeClass('active'); | ||
$ | $tabs.find('li[data-tab="' + tab + '"]').addClass('active'); | ||
localStorage.setItem('preferredVersion', tab); | localStorage.setItem('preferredVersion', tab); | ||
| Line 55: | Line 61: | ||
activateTab(pref); | activateTab(pref); | ||
if ( | if (location.hash) { | ||
location.hash = | location.hash = location.hash; | ||
} | } | ||
}); | }); | ||
Revision as of 13:24, 11 October 2025
/* Any JavaScript here will be loaded for all users on every page load. */
// Wait for document ready
$(function() {
var htmle = function(str) {
return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
};
if ($('body').hasClass('page-Summertime_Saga_Wiki') && $('body').hasClass('action-view') && $('body').hasClass('skin-vector') && $('#ajax-posts').length && $('#ajax-version').length) {
var maxPosts = 5;
$.getJSON('/ssdata.json', function(data) {
$('#ajax-version').text(data.version);
$('#ajax-posts').html('');
data.posts.forEach(function(post, i) {
if (i >= maxPosts) {
return;
}
$('#ajax-posts').append('<dd><b>▪ ' + htmle(post.date) + ':</b> <a rel="nofollow" class="external text" href="https://www.patreon.com' + htmle(post.url) + '">' + htmle(post.title) + '</a></dd>');
});
});
}
}());
mw.hook('wikipage.content').add(function ($content) {
const $tabs = $content.find('ul.version-tabs');
if (!$tabs) return;
const allow = ['21', '0.20.16'];
if (location.hash) {
if (location.hash.slice(1).endsWith('-0.20.16')) {
const pref = '0.20.16';
} else {
const pref = '21';
} else {
const pref = localStorage.getItem('preferredVersion') || 'current';
}
function activateTab(tab) {
if (allow.indexOf(tab) === -1) return;
$content.find('div.vt-content').hide();
$content.find('div.vt-' + tab.replaceAll('.', '-')).show();
$tabs.find('li').removeClass('active');
$tabs.find('li[data-tab="' + tab + '"]').addClass('active');
localStorage.setItem('preferredVersion', tab);
}
$content.find('ul.version-tabs li').click(function (e) {
e.preventDefault();
const selected = this.dataset.tab;
activateTab(selected);
});
activateTab(pref);
if (location.hash) {
location.hash = location.hash;
}
});