MediaWiki:Mobile.js: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
/* All JavaScript here will be loaded for users of the mobile site */ | /* All JavaScript here will be loaded for users of the mobile site */ | ||
// Define table sorting function outside the main block | |||
function initMobileSorting() { | function initMobileSorting() { | ||
console.log('Initializing mobile sorting...'); | console.log('Initializing mobile sorting...'); | ||
| Line 64: | Line 13: | ||
if (tables.length > 0) { | if (tables.length > 0) { | ||
if (typeof mw !== 'undefined' && mw.loader) { | if (typeof mw !== 'undefined' && mw.loader) { | ||
mw.loader.using('jquery.tablesorter').then(function() { | mw.loader.using('jquery.tablesorter').then(function() { | ||
| Line 92: | Line 40: | ||
} | } | ||
// | // Main initialization function | ||
$( | $( function(){ | ||
// Mobile/Desktop view switching logic | |||
if (window.matchMedia("(max-width: 768px)").matches) { | |||
if( mw.config.get("skin") !== "minerva" ){ | |||
const currWikiUrl = new URL(window.location.href); | |||
currWikiUrl.searchParams.set('mobileaction', 'toggle_view_mobile'); | |||
window.location.replace(currWikiUrl); | |||
} | |||
$("#footer-places-desktop-toggle").remove(); | |||
} else { | |||
if( mw.config.get("skin") !== "vector" ){ | |||
const currWikiUrl = new URL(window.location.href); | |||
currWikiUrl.searchParams.set('mobileaction', 'toggle_view_desktop'); | |||
window.location.replace(currWikiUrl); | |||
} | |||
} | |||
// Poem formatting code | |||
var countPoem2 = $(".Poem2-Ekatra"); | |||
if( countPoem2.length > 0 ){ | |||
var Poem2lenghtArray = []; | |||
for (var k = 0; k <= countPoem2.length; k++) { | |||
Poem2lenghtArray.push(k); | |||
} | |||
Poem2lenghtArray.forEach(function(j) { | |||
var poemElement = $(".Poem2-Ekatra").eq(j); | |||
if( poemElement.length ){ | |||
var poemText = poemElement.html(); | |||
var poemArray = poemText.split("\n"); | |||
poemElement.text(""); | |||
// First measure | |||
poemArray.forEach( function(i) { | |||
poemElement.append( '<p style="text-indent: 2em;">' + i + '</p>' ); | |||
}); | |||
// Second measure | |||
poemElement.children('p').each(function () { | |||
$(this).css('text-indent', '2em'); | |||
}); | |||
} | |||
}); | |||
} | |||
// Initialize table sorting | |||
initMobileSorting(); | initMobileSorting(); | ||
// Also reinitialize when new content loads (like after editing) | |||
// Also | mw.hook('wikipage.content').add(function() { | ||
mw.hook('wikipage.content').add(function() { | initMobileSorting(); | ||
}); | |||
}); | |||
}); | }); | ||
Revision as of 20:36, 26 August 2025
/* All JavaScript here will be loaded for users of the mobile site */
// Define table sorting function outside the main block
function initMobileSorting() {
console.log('Initializing mobile sorting...');
console.log('Current skin:', mw.config.get('skin'));
if (mw.config.get('skin') === 'minerva') {
console.log('Minerva detected, looking for tables...');
var tables = document.querySelectorAll('.wikitable, table.sortable');
console.log('Found tables:', tables.length);
if (tables.length > 0) {
if (typeof mw !== 'undefined' && mw.loader) {
mw.loader.using('jquery.tablesorter').then(function() {
console.log('Tablesorter module loaded');
$(tables).each(function(index, table) {
var $table = $(table);
console.log('Processing table', index);
if (!$table.hasClass('sortable')) {
$table.addClass('sortable');
}
try {
$table.tablesorter();
console.log('Tablesorter applied to table', index);
} catch (e) {
console.error('Error applying tablesorter:', e);
}
});
}).catch(function(e) {
console.error('Failed to load tablesorter:', e);
});
}
}
}
}
// Main initialization function
$( function(){
// Mobile/Desktop view switching logic
if (window.matchMedia("(max-width: 768px)").matches) {
if( mw.config.get("skin") !== "minerva" ){
const currWikiUrl = new URL(window.location.href);
currWikiUrl.searchParams.set('mobileaction', 'toggle_view_mobile');
window.location.replace(currWikiUrl);
}
$("#footer-places-desktop-toggle").remove();
} else {
if( mw.config.get("skin") !== "vector" ){
const currWikiUrl = new URL(window.location.href);
currWikiUrl.searchParams.set('mobileaction', 'toggle_view_desktop');
window.location.replace(currWikiUrl);
}
}
// Poem formatting code
var countPoem2 = $(".Poem2-Ekatra");
if( countPoem2.length > 0 ){
var Poem2lenghtArray = [];
for (var k = 0; k <= countPoem2.length; k++) {
Poem2lenghtArray.push(k);
}
Poem2lenghtArray.forEach(function(j) {
var poemElement = $(".Poem2-Ekatra").eq(j);
if( poemElement.length ){
var poemText = poemElement.html();
var poemArray = poemText.split("\n");
poemElement.text("");
// First measure
poemArray.forEach( function(i) {
poemElement.append( '<p style="text-indent: 2em;">' + i + '</p>' );
});
// Second measure
poemElement.children('p').each(function () {
$(this).css('text-indent', '2em');
});
}
});
}
// Initialize table sorting
initMobileSorting();
// Also reinitialize when new content loads (like after editing)
mw.hook('wikipage.content').add(function() {
initMobileSorting();
});
});