X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=resources%2Fsrc%2Fmediawiki%2Fmediawiki.js;h=6a218e3d25c0280d71d5b6ce686d17786cfb94ea;hb=46fa949b8b5e10b1843d4ea2930679a0d3999025;hp=b5224867d29b47e50fb1d387b909b682b0932cc3;hpb=5518d84c72ddec2784618a32012b5bc8a4149aac;p=lhc%2Fweb%2Fwiklou.git diff --git a/resources/src/mediawiki/mediawiki.js b/resources/src/mediawiki/mediawiki.js index b5224867d2..6a218e3d25 100644 --- a/resources/src/mediawiki/mediawiki.js +++ b/resources/src/mediawiki/mediawiki.js @@ -625,7 +625,7 @@ * @param {Function} callback */ trackUnsubscribe: function ( callback ) { - trackHandlers = $.grep( trackHandlers, function ( fns ) { + trackHandlers = trackHandlers.filter( function ( fns ) { if ( fns[ 1 ] === callback ) { trackCallbacks.remove( fns[ 0 ] ); // Ensure the tuple is removed to avoid holding on to closures @@ -879,8 +879,10 @@ // Cache marker = document.querySelector( 'meta[name="ResourceLoaderDynamicStyles"]' ); if ( !marker ) { - mw.log( 'Create dynamically' ); - marker = $( '' ).attr( 'name', 'ResourceLoaderDynamicStyles' ).appendTo( 'head' )[ 0 ]; + mw.log( 'Created ResourceLoaderDynamicStyles marker dynamically' ); + marker = document.createElement( 'meta' ); + marker.name = 'ResourceLoaderDynamicStyles'; + document.head.appendChild( marker ); } } return marker; @@ -902,7 +904,7 @@ if ( nextNode && nextNode.parentNode ) { nextNode.parentNode.insertBefore( s, nextNode ); } else { - document.getElementsByTagName( 'head' )[ 0 ].appendChild( s ); + document.head.appendChild( s ); } return s; @@ -1127,7 +1129,7 @@ registry[ module ].dependencies = [ registry[ module ].dependencies ]; } } - if ( $.inArray( module, resolved ) !== -1 ) { + if ( resolved.indexOf( module ) !== -1 ) { // Module already resolved; nothing to do return; } @@ -1138,7 +1140,7 @@ // Tracks down dependencies deps = registry[ module ].dependencies; for ( i = 0; i < deps.length; i++ ) { - if ( $.inArray( deps[ i ], resolved ) === -1 ) { + if ( resolved.indexOf( deps[ i ] ) === -1 ) { if ( unresolved.has( deps[ i ] ) ) { throw new Error( mw.format( 'Circular reference detected: $1 -> $2', @@ -1465,7 +1467,7 @@ if ( ready !== undefined || error !== undefined ) { jobs.push( { // Narrow down the list to modules that are worth waiting for - dependencies: $.grep( dependencies, function ( module ) { + dependencies: dependencies.filter( function ( module ) { var state = mw.loader.getState( module ); return state === 'registered' || state === 'loaded' || state === 'loading' || state === 'executing'; } ), @@ -1474,11 +1476,11 @@ } ); } - $.each( dependencies, function ( idx, module ) { + dependencies.forEach( function ( module ) { var state = mw.loader.getState( module ); // Only queue modules that are still in the initial 'registered' state // (not ones already loading, ready or error). - if ( state === 'registered' && $.inArray( module, queue ) === -1 ) { + if ( state === 'registered' && queue.indexOf( module ) === -1 ) { // Private modules must be embedded in the page. Don't bother queuing // these as the server will deny them anyway (T101806). if ( registry[ module ].group === 'private' ) { @@ -1718,7 +1720,10 @@ function splitModuleKey( key ) { var index = key.indexOf( '@' ); if ( index === -1 ) { - return { name: key }; + return { + name: key, + version: '' + }; } return { name: key.slice( 0, index ), @@ -1759,7 +1764,7 @@ // Only load modules which are registered if ( hasOwn.call( registry, queue[ q ] ) && registry[ queue[ q ] ].state === 'registered' ) { // Prevent duplicate entries - if ( $.inArray( queue[ q ], batch ) === -1 ) { + if ( batch.indexOf( queue[ q ] ) === -1 ) { batch.push( queue[ q ] ); // Mark registered modules as loading registry[ queue[ q ] ].state = 'loading'; @@ -1782,7 +1787,7 @@ if ( mw.loader.store.enabled ) { implementations = []; sourceModules = []; - batch = $.grep( batch, function ( module ) { + batch = batch.filter( function ( module ) { var implementation = mw.loader.store.get( module ); if ( implementation ) { implementations.push( implementation ); @@ -1807,7 +1812,7 @@ mw.track( 'resourceloader.exception', { exception: err, source: 'store-eval' } ); // Re-add the failed ones that are still pending back to the batch - failed = $.grep( sourceModules, function ( module ) { + failed = sourceModules.filter( function ( module ) { return registry[ module ].state === 'loading'; } ); batchRequest( failed ); @@ -1960,7 +1965,7 @@ registry[ name ].messages = messages || null; registry[ name ].templates = templates || null; // The module may already have been marked as erroneous - if ( $.inArray( registry[ name ].state, [ 'error', 'missing' ] ) === -1 ) { + if ( registry[ name ].state !== 'error' && registry[ name ].state !== 'missing' ) { registry[ name ].state = 'loaded'; if ( allReady( registry[ name ].dependencies ) ) { execute( name ); @@ -2056,7 +2061,7 @@ l = document.createElement( 'link' ); l.rel = 'stylesheet'; l.href = modules; - $( 'head' ).append( l ); + document.head.appendChild( l ); return; } if ( type === 'text/javascript' || type === undefined ) { @@ -2071,7 +2076,7 @@ } // Filter out top-level modules that are unknown or failed to load before. - filtered = $.grep( modules, function ( module ) { + filtered = modules.filter( function ( module ) { var state = mw.loader.getState( module ); return state !== 'error' && state !== 'missing'; } ); @@ -2108,7 +2113,7 @@ mw.loader.register( module ); } registry[ module ].state = state; - if ( $.inArray( state, [ 'ready', 'error', 'missing' ] ) !== -1 ) { + if ( state === 'ready' || state === 'error' || state === 'missing' ) { // Make sure pending modules depending on this one get executed if their // dependencies are now fulfilled! handlePending( module ); @@ -2123,10 +2128,7 @@ * in the registry. */ getVersion: function ( module ) { - if ( !hasOwn.call( registry, module ) || registry[ module ].version === undefined ) { - return null; - } - return registry[ module ].version; + return hasOwn.call( registry, module ) ? registry[ module ].version : null; }, /** @@ -2137,10 +2139,7 @@ * in the registry. */ getState: function ( module ) { - if ( !hasOwn.call( registry, module ) || registry[ module ].state === undefined ) { - return null; - } - return registry[ module ].state; + return hasOwn.call( registry, module ) ? registry[ module ].state : null; }, /** @@ -2346,11 +2345,13 @@ // Module failed to load descriptor.state !== 'ready' || // Unversioned, private, or site-/user-specific - ( !descriptor.version || $.inArray( descriptor.group, [ 'private', 'user' ] ) !== -1 ) || + !descriptor.version || + descriptor.group === 'private' || + descriptor.group === 'user' || // Partial descriptor // (e.g. skipped module, or style module with state=ready) - $.inArray( undefined, [ descriptor.script, descriptor.style, - descriptor.messages, descriptor.templates ] ) !== -1 + [ descriptor.script, descriptor.style, descriptor.messages, + descriptor.templates ].indexOf( undefined ) !== -1 ) { // Decline to store return false; @@ -2754,7 +2755,7 @@ // If we have an exception object, log it to the warning channel to trigger // proper stacktraces in browsers that support it. if ( e && console.warn ) { - console.warn( String( e ), e ); + console.warn( e ); } } /* eslint-enable no-console */ @@ -2773,7 +2774,7 @@ $( function () { var loading, modules; - modules = $.grep( mw.loader.getModuleNames(), function ( module ) { + modules = mw.loader.getModuleNames().filter( function ( module ) { return mw.loader.getState( module ) === 'loading'; } ); // We only need a callback, not any actual module. First try a single using()