Zum Inhalt springen

Benutzer:Fomafix/Gadget-redirecttitle.js

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 1. Juli 2012 um 21:46 Uhr durch Fomafix (Diskussion | Beiträge) (Variabe redirects eingespart). Sie kann sich erheblich von der aktuellen Version unterscheiden.

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 );
					} );
				} );
			}
		}
	} );
} );