|
Tags: Manual revert Mobile edit Mobile web edit |
| (14 intermediate revisions by the same user not shown) |
| 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. */ |
|
| |
| // Function to get a URL parameter's value
| |
| function getUrlParameter( name ) {
| |
| name = name.replace( /[\[]/, '\\[' ).replace( /[\]]/, '\\]' );
| |
| var regex = new RegExp( '[\\?&]' + name + '=([^&#]*)' );
| |
| var results = regex.exec( location.search );
| |
| return results === null ? '' : decodeURIComponent( results[1].replace( /\+/g, ' ' ) );
| |
| }
| |
|
| |
| // Check if we are on Special:AllPages
| |
| if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Allpages' ) {
| |
|
| |
| // Get the current 'from' parameter
| |
| var currentFrom = getUrlParameter( 'from' );
| |
|
| |
| // Regular expression to check if the 'from' parameter is numeric (or empty, which defaults to numeric titles)
| |
| var startsWithNumberRegex = /^\d/i; // Starts with a digit
| |
|
| |
| if ( currentFrom === '' || startsWithNumberRegex.test( currentFrom ) ) {
| |
| // --- STEP 1: FORCE REDIRECT/RELOAD ---
| |
| // If the 'from' parameter is empty or starts with a number,
| |
| // we redirect the user to the same page but starting from 'A'
| |
|
| |
| var newUrl = window.location.href.split( /[?#]/ )[0]; // Base URL
| |
| var query = 'from=A&namespace=' + mw.config.get( 'wgNamespaceNumber' ); // Force start at 'A'
| |
|
| |
| // Preserve any other parameters like the namespace
| |
| var existingParams = window.location.search.substring(1).split('&');
| |
| for ( var i = 0; i < existingParams.length; i++ ) {
| |
| var pair = existingParams[i].split('=');
| |
| var key = pair[0];
| |
| if ( key !== 'from' && key !== 'namespace' && key !== '' ) {
| |
| query += '&' + key + '=' + pair[1];
| |
| }
| |
| }
| |
|
| |
| window.location.replace( newUrl + '?' + query );
| |
|
| |
| } else {
| |
| // --- STEP 2: APPLY FILTER (ONLY ONCE WE'RE PAST NUMBERS) ---
| |
| // The list starts from a letter, now we apply the filter to hide any
| |
| // numeric-only titles that might still appear (less likely, but safe).
| |
| $( function() {
| |
| var numericRegex = /^[0-9]+$/; // Match titles that are ONLY digits
| |
|
| |
| $( '#mw-content-text li a' ).each( function() {
| |
| var title = $( this ).attr( 'title' );
| |
|
| |
| // Check if the title is strictly composed of digits
| |
| if ( title && numericRegex.test( title ) ) {
| |
| $( this ).parent( 'li' ).hide();
| |
| }
| |
| } );
| |
| } );
| |
| }
| |
| }
| |