/*
* modifyLKs.js
*
* Autor: ]
* Quelle: ]
*
* 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 = "";/* Defaulttext für TOC-Button, falls gefiltert */
var txt_hide = ""; /* 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() {
/* nur auf LK-Seiten ausführen */
var pfx = "Wikipedia:Löschkandidaten/";
var len = pfx.length;
if((document.title.length < len) || (document.title.substring(0, len).indexOf(pfx) != 0))
return;
/* 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');
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');
/* nichts außerhalb der TOC */
var mlkclass = lelem.getAttribute("class");
if(!mlkclass || !mlkclass.match(/toclevel/)) {
continue;
}
var toctxt = lelem.getElementsByTagName('span').firstChild.nodeValue;
/* abgearbeitet? */
if(toctxt.match(/gelöscht/i)
|| toctxt.match(/\(*\berl/i)
|| toctxt.match(/\(*bleib/i)
|| toctxt.match(/\(.*redir/i)
|| toctxt.match(/URV/)
|| toctxt.match(/zurück(gezogen|genommen)/i)
|| toctxt.match(/:LAE/)
|| toctxt.match(/\(*QS*\)/)
|| toctxt.match(/\(*SLA.*\)/i)
|| toctxt.match(/\(*LAE.*\)/)
|| toctxt.match(/\(*LAZ.*\)/)
|| toctxt.match(/\(*BNR.*\)/)
|| toctxt.match(/\(*(LA|Löschantrag) 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;
}
}
}
$(document).ready(function() { 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 wasrfd() {
if (mw.config.get('wgNamespaceNumber') % 2 === 0) return;
/* Date given by url argument, extract, replace any %20 w/ spaces */
date = location.href.substr(location.href.indexOf("date=")+5);
date = date.replace(/%20/g, " ");
/* insert our beloved "this was an rfd"-brick */
if(document.editform) {
document.editform.wpTextbox1.value = "{{War Löschkandidat|"+date+"}}\n\n"+document.editform.wpTextbox1.value;
document.editform.wpSummary.value = "+ War Löschkandidat";
document.editform.wpSave.click();
}
return false;
}
function loescheimer() {
/* Terminate on non-RfD-pages */
var pfx = "Wikipedia:Löschkandidaten/";
var len = pfx.length;
if((document.title.length < len) || (document.title.substring(0, len).indexOf(pfx) != 0))
return;
/* right page, extract date, build delete url */
var date = document.title.substring(len).replace(/ .*/, "");
if ( mw.config.get( 'wgServer' ).indexOf('https://') == 0 ) {
var baseurl = "https://secure.wikimedia.org/wikipedia/" + mw.config.get( 'wgContentLanguage' ) + mw.config.get( 'wgScriptPath' ) + "/index.php?title=" ;
} else {
var baseurl = "//" + mw.config.get( 'wgContentLanguage' ) + ".wikipedia.org" + mw.config.get( 'wgScriptPath' ) + "/index.php?title=" ;
}
var params = "&action=delete&wpReason=siehe [[Wikipedia:Löschkandidaten/" + date + "%23";
var postfix = " (gelöscht)]]";
/* 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');
} else {
head = document.getElementsByTagName('h3');
}
var span = head.getElementsByTagName('span');
if(span.length != 2)
continue;
if(span.getAttribute("class") != "mw-editsection")
continue;
/* skip certain cases, i.e. no link in h2/h3, article already deleted */
var link = span.getElementsByTagName('a');
if(link.length == 0)
continue;
if(link.getAttribute("class") == "new")
continue;
var page = link.childNodes.nodeValue;
var colon = page.indexOf(':');
if (colon >= 0)
{
var disk = page.slice(0,colon)+"_Diskussion"+page.slice(colon);
} else {
var disk = "Diskussion:"+ page;
}
var fulltitletext = "";
if (span.childNodes && span.childNodes.nodeValue!=null)
fulltitletext = span.childNodes.nodeValue;
/* create keep link, unless a delete decision has already been made */
if(!fulltitletext.match(/\(gelöscht\)/i)) {
link = document.createElement("a");
link.setAttribute("href", baseurl + disk+ "&action=edit&date="+date);
link.setAttribute("style", "color:#00CD66;font-size:small;");
link.onclick = wasrfd;
link.appendChild(document.createTextNode(" "));
span.insertBefore(link, span.firstChild);
}
/* insert no other buttons when decision already is "keep" */
if(fulltitletext.match(/\(bleibt\)/i))
continue;
/* create history link */
link = document.createElement("a");
link.setAttribute("href", baseurl + page + "&action=history");
link.setAttribute("style", "font-size:small;");
link.appendChild(document.createTextNode(" "));
span.insertBefore(link, span.firstChild);
/* create delete-link */
link = document.createElement("a");
link.setAttribute("href", baseurl + page + params + page + postfix);
link.setAttribute("style", "color:#CD3700;font-size:small;");
link.appendChild( document.createTextNode(" "));
span.insertBefore(link, span.firstChild);
}
}
if(location.href.match(/date=/)) {
var csa = 0;
if(location.href.match(/\{\{/)) csa++;
if(location.href.match(/\}\}/)) csa++;
if (csa == 0) $(document).ready(wasrfd);
}
$(document).ready(loescheimer);
/** Ende des Loescheimers **/
// </nowiki>