Benutzer:PDD/modifyLKs.js

aus Wikipedia, der freien Enzyklopädie
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
 /*
  * modifyLKs.js
  *
  * Autor: [[Benutzer:mnh]]
  * Quelle: [[Benutzer:Mnh/monobook.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() {
    /* 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')[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 mlkclass = lelem.getAttribute("class");
        if(!mlkclass || !mlkclass.match(/toclevel/)) {
             continue;
        }
        var toctxt = lelem.getElementsByTagName('span')[1].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')[i];
        } else {
            head = document.getElementsByTagName('h3')[i-len];
        }
        var span = head.getElementsByTagName('span');
        if(span.length != 2)
            continue;
        if(span[1].getAttribute("class") != "mw-editsection")
            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].childNodes[0].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[0].childNodes[1] && span[0].childNodes[1].nodeValue!=null)
            fulltitletext = span[0].childNodes[1].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("[keep] "));        
            span[1].insertBefore(link, span[1].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("[hist] "));
        span[1].insertBefore(link, span[1].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("[del] "));
        span[1].insertBefore(link, span[1].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>