MediaWiki:WeblinkcheckErgebnis.js
Zur Navigation springen
Zur Suche springen
Beachten Sie: Nach dem Speichern müssen Sie Ihren Browser veranlassen, die neue Version zu laden: Mozilla/Firefox: Strg-Shift-R, IE: Strg-F5, Safari: Cmd-Shift-R, Konqueror: F5.
/*
komfortablere Nutzung der Ergebnisausgabe des pywikibot-Skripts weblinkchecker (https://www.mediawiki.org/wiki/Manual:Pywikibot/weblinkchecker.py)
Filtern der Ausgabe nach den betroffenen Seitentiteln
Repo: https://gitlab.genealogy.net/genwiki/wikibots/-/blob/main/gw-skripte/weblinkcheckergebnis.js
*/
function ToggleListitemsInludes(pagetitle) {
var urls = [];
var lis = $("#weblinkcheck > ul > li");
var h3s = $("#weblinkcheck h3");
if (pagetitle) {
h3s.hide();
lis.each(function(index, value){
if (this.innerText.indexOf(pagetitle) > -1) {
var url = $("> a", this).attr("href");
if (! urls.includes(url)) {
urls.push(url);
$(this).show();
} else {
$(this).hide();
}
} else {
$(this).hide();
}
});
} else {
h3s.show();
lis.show();
}
return urls;
}
function GetUniqPagetitles() {
var items = [];
$("#weblinkcheck ul li ul li a[href^='/']").each(function (i, item) { if (!items.includes(item.innerText)) {items.push(item.innerText); }});
return items.sort();
}
function AddPagetitleSelection() {
var pagetitles = GetUniqPagetitles();
if (pagetitles.length == 0) {return;}
var sel = $("#pagetitle-select");
if (sel.length != 0) { sel.remove(); }
sel = $('<select id="pagetitle-select"></select>');
sel.append($("<option>").attr('value','').text('--- Seitentitel zum Filtern auswählen oder diesen Eintrag um alles anzuzeigen ---'));
$(pagetitles).each(function() {
sel.append($("<option>").text(this));
});
sel.insertBefore("#weblinkcheck");
sel.on('change', function(){
var urls = ToggleListitemsInludes(this.value);
ShowText(`Betroffene URLs auf der Seite '${this.value}'`, urls);
});
}
function GetUniqUrls() {
var urls = [];
var lis = $("#weblinkcheck > ul > li");
lis.each(function(index, value){
var url = $("> a", this).attr("href");
if (! urls.includes(url)) { urls.push(url); }
});
return urls.sort();
}
function ShowText(title, text) {
var field = $("#weblinkcheck-text");
if (field.length == 0) {
field = $('<textarea id="weblinkcheck-text"></textarea>');
$("#weblinkcheck-clip").append(field);
}
if (Array.isArray(text)) {
field.text(`${title} (Anzahl: ${text.length})\n${text.join("\n")}`);
} else {
field.text(`${title}\n${text}`);
}
}
$(function() {
AddPagetitleSelection();
var urls = GetUniqUrls();
var pages = GetUniqPagetitles();
$("#weblinkcheck-urls").html(`<a href="#" title="Liste der Url anzeigen" onClick="void ShowText('Liste aller betroffenen Urls', GetUniqUrls())">${urls.length}</a>`);
$("#weblinkcheck-pages").html(`<a href="#" title="Liste der Seitennamen anzeigen" onClick="void ShowText('Liste aller betroffenen Seitennamen', GetUniqPagetitles())">${pages.length}</a>`);
});