Benutzer:Fomafix/Gadget-redirecttitle.js
Erscheinungsbild
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
/*
* Dieses Gadget fügt bei Links auf Weiterleitungen das Weiterleitungsziel im Tooltip hinzu.
*/
mw.messages.set( 'redirect-title', '$1 → $2' );
/* If you just want the redirect destination as title use mw.messages.set( 'redirect-title', '$2' ); */
mw.loader.using( [ 'mediawiki.util', 'mediawiki.api' ], function () {
"use strict";
$( function () {
var api = new mw.Api(), target, targets = {}, titles = [];
mw.util.$content
.find( 'a.mw-redirect' )
.each( function ( index, object ) {
var title = $( object ).data( 'title' ) || object.title;
if ( targets[ title ] ) {
targets[ title ].push( object );
} else {
targets[ title ] = [ object ];
}
} );
for ( target in targets ) {
titles.push( target );
if ( titles.length >= 50 ) {
query( titles );
titles = [];
}
}
if ( titles.length > 0 ) {
query( titles );
}
function query( titles ) {
api.post( {
action: 'query',
titles: titles.join( '|' ),
redirects: true
}, {
ok: ok
} );
}
function ok( res ) {
if ( res.query && res.query.redirects ) {
$.each( res.query.redirects, function ( index, redirect ) {
$.each( targets[ redirect.from ], function ( index, object ) {
if ( ! $( object ).data( 'title' ) ) {
$( object ).data( 'title', object.title );
}
object.title = mw.msg( 'redirect-title', redirect.from, redirect.to );
} );
} );
}
}
} );
} );