Benutzer:Codeispoetry/modifyLKs.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
/*
* modifyLKs.js
*
* Autor: [[Benutzer:mnh]], [[Benutzer:PDD]], [[Benutzer:Codeispoetry]]
* Quelle: [[Benutzer:Mnh/monobook.js]], [[Benutzer:PDD/modifyLKs.js]]
*
* Dokumentation:
* - führt sich selbst aus, lediglich Einbindung ist nötig
* - dient zur Erleichterung der Löschkandidaten-Abarbeitung
*/
// <nowiki>
/** TOC-Filter
* Entfernt auf LK-Seiten erledigte Diskussionen aus dem Inhaltsverzeichnis
**/
/* Optionen */
var txt_show = "[alle zeigen]";/* Defaulttext für TOC-Button, falls gefiltert */
var txt_hide = "[filtern]"; /* Defaulttext sonst */
var filter_rfdtoc_by_default; /* Standardansicht gefiltert? */
/* Ende der Optionen */
var nfiltered = 0; /* wie viele werden auf der Seite gefiltert? */
/* Wechselt zwischen voller und gefilterter TOC */
function togglefilter() {
var display;
var link = document.anchors.toc_toggler.firstChild;
/* TOC normal oder gefiltert? */
if (link.nodeValue == txt_show) {
display = "";
link.nodeValue = txt_hide;
} else {
display = "none";
link.nodeValue = txt_show;
}
/* Sichtbarkeit der Elemente ändern */
for(var i = 0 ; i < nfiltered ; i++)
document.getElementById("invisible_toc"+i).style.display = display;
return false;
}
function filtertoc() {
/* Default setzen, falls Variable für Standardverhalten nicht extern gesetzt */
if(typeof(filter_rfdtoc_by_default) == 'undefined')
filter_rfdtoc_by_default = true;
/* Link zum Umschalten normal/gefiltert in die TOC einfügen */
toc_head = document.getElementsByTagName('h2')[0];
link = document.createElement("a");
link.href="javascript:void(0);";
link.onclick = togglefilter;
link.name = "toc_toggler";
link.setAttribute("style", "float:right;");
if(filter_rfdtoc_by_default)
link.appendChild(document.createTextNode(txt_show));
else
link.appendChild(document.createTextNode(txt_hide));
toc_head.insertBefore(link, toc_head.firstChild.nextSibling);
/* TOC-Elemente nach üblichen Zusätzen durchgehen und gefundene Elemente
* mit ID ausstatten
*/
for (var i = 0; i < document.getElementsByTagName("li").length; i++) {
var lelem = document.getElementsByTagName('li')[i];
/* nichts außerhalb der TOC */
var class = lelem.getAttribute("class");
if(!class || !class.match(/toclevel/)) {
continue;
}
var toctxt = lelem.getElementsByTagName('span')[1].firstChild.nodeValue;
/* abgearbeitet? */
if(toctxt.match(/gelöscht/i) || toctxt.match(/\([^\)]*erl/i) || toctxt.match(/\([^\)]*bleib/i) || toctxt.match(/\(.*redir/i)
|| toctxt.match(/URV/) || toctxt.match(/zurückgezogen/i) || toctxt.match(/:LAE/)
|| toctxt.match(/\([^\)]*QS[^\)]*\)/) || toctxt.match(/\([^\)]*SLA.*\)/)
|| toctxt.match(/\([^\)]*LA entfernt[^\)]*\)/) ) {
/* Ja, ID zuweisen und ausblenden, falls standardmäßig gefiltert */
lelem.id = "invisible_toc" + nfiltered;
if(filter_rfdtoc_by_default)
lelem.style.display = "none";
nfiltered += 1;
}
}
}
var pfx = "Wikipedia:Löschkandidaten/";
var len = pfx.length;
if((document.title.length >= len) && (document.title.substring(0, len).indexOf(pfx) == 0))
addOnloadHook(filtertoc);
/** Ende des Filters **/
/** Loescheimer: fügt auf LK-Seiten den Zwischenüberschriften (h2 und h3) zusätzliche Knöpfchen
** für Versionsgeschichte, War Löschkandidat und Löschen mit gesetztem Grund hinzu.
** Verwenden: Bis zur unteren Markierung kopieren und in die eigene Monobook.js einfügen.
**/
function loescheimer() {
/* sift through level-2-headings */
len = document.getElementsByTagName("h2").length;
var head = null;
for (var i = 0; i < len + document.getElementsByTagName("h3").length; i++) {
/* Isolate the RfDs title */
if(i < len) {
head = document.getElementsByTagName('h2')[i];
} else {
head = document.getElementsByTagName('h3')[i-len];
}
var span = head.getElementsByTagName('span');
if(span.length != 1)
continue;
if(span[0].getAttribute("class") != "mw-headline")
continue;
/* skip certain cases, i.e. no link in h2/h3, article already deleted */
var link = span[0].getElementsByTagName('a');
if(link.length == 0)
continue;
if(link[0].getAttribute("class") == "new")
continue;
var page = link[0].getAttribute("title");
/* insert no other buttons when decision already is "keep" */
if(span[0].getElementsByTagName('a')[0].getAttribute("title").match(/\(bleibt\)/i)) {
continue;
}
addLink(span[0], '[hist]', 'Springt zur Versionsgeschichte des Artikels', wgScript + '?title=' + page + "&action=history");
addLink(span[0], '[keep]', 'Behalten', '', 'eimer_keep("' + page + '");');
addLink(span[0], '[del]', 'Löscht sofort', '', 'eimer_delete("' + page + '");');
}
}
function addLink (parent, caption, title, href, onclick) {
var link = document.createElement('a');
if (href != '') link.href = href;
if (typeof onclick != 'undefined') {
link.setAttribute('onclick', onclick);
link.style.cursor = 'pointer';
}
link.innerHTML = caption;
link.title = title;
link.style.fontSize = 'small';
parent.insertBefore(document.createTextNode(' '), parent.firstChild);
parent.insertBefore(link, parent.firstChild);
}
function setSelectionRange(input, selectionStart, length) {
if (input.createTextRange) {
var range = input.createTextRange();
range.collapse(true);
range.moveEnd('character', selectionStart + length);
range.moveStart('character', selectionStart);
range.select();
}
else if (input.setSelectionRange) {
input.focus();
input.setSelectionRange(selectionStart, selectionStart + length);
}
input.scrollTop = input.scrollHeight;
}
function eimer_delete (page) {
var date = document.title.match(/Wikipedia:Löschkandidaten\/(\d{1,2}\. \w+ \d{4})/)[1];
deleting('siehe [[Wikipedia:Löschkandidaten/' + date + '#' + page + ' (gelöscht)]]', 0, page);
var textbox = document.getElementById('wpTextbox1');
textbox.value = textbox.value.replace(/^(={1,3})\s*(.+?)\s*={1,3}\n([\w\W]+)$/m, "$1 $2 (gelöscht) $1$3\n'''Gelöscht:''' <!-- Begründung -->. ~~~~");
setSelectionRange(textbox, textbox.value.length - 25, 19);
document.getElementById('wpSummary').value += 'gelöscht';
}
function eimer_keep (page) {
window.open(wgScript + '?title=' + page + '&action=edit', '_blank');
var textbox = document.getElementById('wpTextbox1');
textbox.value = textbox.value.replace(/^(={1,3})\s*(.+?)\s*={1,3}\n([\w\W]+)$/m, "$1 $2 (bleibt) $1$3\n'''Bleibt:''' <!-- Begründung -->. ~~~~");
setSelectionRange(textbox, textbox.value.length - 25, 19);
document.getElementById('wpSummary').value += 'bleibt';
}
var pfx = "Wikipedia:Löschkandidaten/";
var len = pfx.length;
if ((document.title.length >= len) && (document.title.match(/Wikipedia:Löschkandidaten\//)) && (wgAction == 'edit' || wgAction == 'submit') && UrlParameters['section'] > 0)
addOnloadHook(loescheimer);
/** Ende des Loescheimers **/
// </nowiki>