MediaWiki:Mobile.js: Difference between revisions

From Ekatra Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 53: Line 53:
}
}
// Enhanced table sorting for mobile
// Enhanced table sorting for mobile
// Debug version - table sorting for mobile
mw.hook('wikipage.content').add(function($content) {
mw.hook('wikipage.content').add(function($content) {
    console.log('Hook fired, skin:', mw.config.get('skin'));
   
     if (mw.config.get('skin') === 'minerva') {
     if (mw.config.get('skin') === 'minerva') {
         // Find all tables that should be sortable
         console.log('Minerva skin detected');
       
         var $tables = $content.find('.wikitable, table.sortable');
         var $tables = $content.find('.wikitable, table.sortable');
        console.log('Found tables:', $tables.length);
          
          
         if ($tables.length > 0) {
         if ($tables.length > 0) {
            console.log('Loading tablesorter...');
             mw.loader.using('jquery.tablesorter').done(function() {
             mw.loader.using('jquery.tablesorter').done(function() {
                 $tables.each(function() {
                console.log('Tablesorter loaded successfully');
               
                 $tables.each(function(index) {
                     var $table = $(this);
                     var $table = $(this);
                    console.log('Processing table', index, $table);
                   
                     if (!$table.hasClass('sortable')) {
                     if (!$table.hasClass('sortable')) {
                         $table.addClass('sortable');
                         $table.addClass('sortable');
                        console.log('Added sortable class to table', index);
                     }
                     }
                      
                      
                     // Initialize tablesorter with mobile-friendly options
                     try {
                    $table.tablesorter({
                        $table.tablesorter();
                         theme: 'blue',
                         console.log('Tablesorter applied to table', index);
                        headerTemplate: '{content} {icon}',
                    } catch (e) {
                         widgets: ['zebra'],
                         console.error('Error applying tablesorter to table', index, e);
                        widgetOptions: {
                     }
                            zebra: ["even", "odd"]
                        }
                     });
                 });
                 });
            }).fail(function() {
                console.error('Failed to load tablesorter module');
             });
             });
        } else {
            console.log('No tables found to sort');
         }
         }
    } else {
        console.log('Not Minerva skin, current skin:', mw.config.get('skin'));
     }
     }
});
});
});
});

Revision as of 20:27, 26 August 2025

/* All JavaScript here will be loaded for users of the mobile site */
$( function(){
	
	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);
		}
	}
	
	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');
				});
			}
		
		});
	}
// Enhanced table sorting for mobile
// Debug version - table sorting for mobile
mw.hook('wikipage.content').add(function($content) {
    console.log('Hook fired, skin:', mw.config.get('skin'));
    
    if (mw.config.get('skin') === 'minerva') {
        console.log('Minerva skin detected');
        
        var $tables = $content.find('.wikitable, table.sortable');
        console.log('Found tables:', $tables.length);
        
        if ($tables.length > 0) {
            console.log('Loading tablesorter...');
            mw.loader.using('jquery.tablesorter').done(function() {
                console.log('Tablesorter loaded successfully');
                
                $tables.each(function(index) {
                    var $table = $(this);
                    console.log('Processing table', index, $table);
                    
                    if (!$table.hasClass('sortable')) {
                        $table.addClass('sortable');
                        console.log('Added sortable class to table', index);
                    }
                    
                    try {
                        $table.tablesorter();
                        console.log('Tablesorter applied to table', index);
                    } catch (e) {
                        console.error('Error applying tablesorter to table', index, e);
                    }
                });
            }).fail(function() {
                console.error('Failed to load tablesorter module');
            });
        } else {
            console.log('No tables found to sort');
        }
    } else {
        console.log('Not Minerva skin, current skin:', mw.config.get('skin'));
    }
});
});