MediaWiki:Weblinkcheckergebnis.js: Unterschied zwischen den Versionen

aus wiki, dem genealogischen Lexikon zum Mitmachen.
Zur Navigation springen Zur Suche springen
(Erster Script-Import)
 
(Die Seite wurde geleert.)
Markierung: Geleert
Zeile 1: Zeile 1:
/*
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>`);
});

Version vom 30. Mai 2023, 19:10 Uhr