Benutzer:Gymel/MaintMents.js
Zur Navigation springen
Zur Suche springen
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
- Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Strg+F5
/**
* Konfiguration mit
mw.user.options.set('wartungslisten', [
'Wikipedia:PND/Fehlermeldung/*'
]);
* in [[Spezial:Meine Benutzerseite/common.js]]
* Möglich sind * und ? als Wildcards,
* alternativ können auch reguläre Ausdrücke angegeben werden
*** (c) schnark
*** cf. http://de.wikipedia.org/wiki/Wikipedia:Technik/Skin/Werkstatt#Gadget-.2FScript-Idee
*/
(function ($, mw) {
"use strict";
var regEx = [];
function filter (titel) {
for (var i = 0; i < regEx.length; i++) {
if (regEx[i].test(titel)) {
return true;
}
}
return false;
}
function anzeige (seiten) {
var html = '<p>Diese Seite ist auf ' +
(seiten.length === 1 ? 'einer Wartungsliste' : seiten.length + ' Wartungslisten') +
' eingetragen:</p><ul>' +
$.map(seiten, function (titel) {
return '<li>' +
mw.html.element('a', {href: mw.util.getUrl(titel)}, titel) +
'</li>';
}).join('') +
'</ul>';
$(function() {
mw.util.$content.prepend($.parseHTML(html));
});
}
function fehler (meldung) {
mw.util.jsMessage(meldung);
}
function apiQuery () {
$.getJSON(mw.util.wikiScript('api'), {
action: 'query',
list: 'backlinks',
bltitle: mw.config.get('wgTitle'),
blnamspace: '2|4|100', //Benutzer:, Wikipedia:, Portal:
blfilterredir: 'nonredirects',
bllimit: 'max',
format: 'json'
}, function (json) {
var wartungsseiten = [], i;
if (json && json.query && json.query.backlinks) {
for (i = 0; i < json.query.backlinks.length; i++) {
if (filter(json.query.backlinks[i].title)) {
wartungsseiten.push(json.query.backlinks[i].title);
}
}
}
if (wartungsseiten.length) {
anzeige(wartungsseiten);
}
});
}
function init () {
var liste = mw.user.options.get('wartungslisten', []), i;
if (liste.length === 0) {
fehler('Du hast keine Wartungslisten konfiguriert!');
return;
}
for (i = 0; i < liste.length; i++) {
if ($.type(liste[i]) === 'regexp') {
regEx.push(liste[i]);
} else {
regEx.push(new RegExp(
'^' + $.escapeRE(liste[i])
.replace(/\\\*/g, '.*')
.replace(/\\\?/g, '.') + '$'
));
}
}
apiQuery();
}
if (mw.config.get('wgNamespaceNumber') === 0 && mw.config.get('wgAction') === 'view') {
mw.loader.using(['mediawiki.util', 'jquery.mwExtension', 'user', 'mediawiki.user', 'user.options'], init);
}
})(jQuery, mediaWiki);