Benutzer:Meister-Lampe/monobook.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
/** TODO: Fremdcode loswerden
Imports a user javascript page from any wikipedia project into the actual document.
 
@version 0.1
@date 2007/03/22
@author: based on function importPage from [[de:User:PDD]]s monobook.js, extended by [[de:User:Revvar]]
@param page Name of the user page without the "user:" prefix and the ".js" appendix
@param lang (optional) Language code of the corresponding wikipedia project. Default is the callers project.
@return "true" on success, "false" otherwise
*/
 
function importJavascriptL(page, lang) {
    try {
        /* check the parameters and set defaults */
        if(!page) throw("importJavascriptL: Missing parameter page.");
        if(!lang) lang = wgContentLanguage;
 
        /* create import url */
        var import_url = 'https://' + lang + '.wikipedia.org' + wgScriptPath + '/index.php?title=User:' + page +
           '.js&action=raw&ctype=text/javascript&smaxage=0';
 
        /* import page */
        var Head = document.getElementsByTagName('head').item(0);
        var Script = document.createElement('script');
        Script.setAttribute('type', 'text/javascript');
        Script.setAttribute('src', import_url);
        Script.setAttribute('charset', 'utf-8');
        Head.appendChild(Script);
 
        return true;
    } catch(e) {
        alert(e.message);
        return false;
    }
}

/**
 * Bietet in Diffs zusätzliche Revertknöpfe mit wählbarer Begründung. 
 * Sind die Arrays rvl_linktexts und rvl_revtexts extern definiert, werden Linkbeschriftungen und Revertgründe aus diesen Arrays 
 * übernommen. Der erste Arrayeintrag ist hierbei der reguläre Zurücksetzen-Knopf.
 */ //<nowiki>

var NOT_THERE = -1;
/* extern definierbare Optionen */
var rvl_linktexts;     /* Linkbeschriftungen */
var rvl_revtexts;      /* Revertgründe       */ 

 
/* Falls Parameter extern nicht oder fehlerhaft definiert, konstruiere Default.
 * Ein vorangestelltes A, W, D oder O (mit | abgetrennt) bestimmt, wo der Knopf jeweils
 * angezeigt wird: A = in Artikeln, W = im Wikipedia:-Namensraum, D = auf Diskussionsseiten (beliebiger Namespace) 
 * oder S: überall sonst.
 */
function setrevdefaults() {
   rvl_linktexts = new Array('WDS|Revert', 'A|Revert', 'WADS|VAND', 'A|Quelle?', 'A|WP:WEB', 'A|WP:WEB/O', 'A|WP:BIO', 'WD|Offtopic', 'WD|KPA');
   rvl_revtexts  = new Array('default', // beim normalen Adminknopf die Standardbegründung lassen
                             'Änderungen von [[Benutzer:$2|$2]] rückgängig gemacht und letzte Version von [[Benutzer:$1|$1]] wiederhergestellt: Keine Verbesserung des Artikels',
                             'Änderungen von [[Benutzer:$2|$2]] rückgängig gemacht und letzte Version von [[Benutzer:$1|$1]] wiederhergestellt: [[WP:Vandalismus|Vandalismus]]',
                             'Änderungen von [[Benutzer:$2|$2]] rückgängig gemacht und letzte Version von [[Benutzer:$1|$1]] wiederhergestellt: Bitte [[WP:QA|Quelle angeben]].',
                             'Änderungen von [[Benutzer:$2|$2]] rückgängig gemacht und letzte Version von [[Benutzer:$1|$1]] wiederhergestellt: Bitte [[Wikipedia:Weblinks]] beachten',
                             'Änderungen von [[Benutzer:$2|$2]] rückgängig gemacht und letzte Version von [[Benutzer:$1|$1]] wiederhergestellt: Bitte [[Wikipedia:Weblinks/Ortsartikel]] beachten',
                             'Änderungen von [[Benutzer:$2|$2]] rückgängig gemacht und letzte Version von [[Benutzer:$1|$1]] wiederhergestellt: Bitte die [[WP:BIO|Informationen zu Artikeln über lebende Personen]] beachten.',
                             'Änderungen von [[Benutzer:$2|$2]] rückgängig gemacht und letzte Version von [[Benutzer:$1|$1]] wiederhergestellt: Beitrag für die Diskussion nicht weiterführend.',
                             'Änderungen von [[Benutzer:$2|$2]] rückgängig gemacht und letzte Version von [[Benutzer:$1|$1]] wiederhergestellt: Bitte [[WP:Keine persönlichen Angriffe]] und [[WP:Wikiquette]] beachten.');
 
}
 
/* Links Hinzufügen */ 
function revlink() {
    var namespace;
 
    /* Falls kein diff: Fertig. */
    if (location.href.indexOf("diff=") == NOT_THERE)
        return;
 
    /* Namespace feststellen */
    if(wgCanonicalNamespace == "")
        namespace = "A";
    else if (wgCanonicalNamespace.toLowerCase().indexOf("talk") != NOT_THERE)
        namespace = "D";
    else if(wgCanonicalNamespace == "Project")
        namespace = "W";
    else
        namespace = "S";
 
    /* Gibt es externe Argumente? */
    if( (typeof(rvl_linktexts)=='undefined') || (typeof(rvl_revtexts)=='undefined') )
        setrevdefaults();
 
    /* Falls nicht beide Arrays die gleiche Anzahl enthalten, lieber defaults nehmen */
    if(rvl_linktexts.length != rvl_revtexts.length)
        setrevdefaults();
 
    /* Gibt es einen Zurücksetzen-Button? Wenn nicht, kann auch nicht revertiert werden. */
    var divs = document.getElementById('mw-diff-ntitle2');
    if(divs == null) /* kann passieren, wenn Benutzer die Seite anlegt */
        return;
 
    var dpos, dpos2;
    if( (dpos=divs.innerHTML.indexOf('mw-rollback-link')) == NOT_THERE)
        return; /* kein Knöppchen da */
 
    /* normales Knöppchen extrahieren */
    dpos  = divs.innerHTML.indexOf('<a href=', dpos);
    dpos2 = divs.innerHTML.indexOf(']', dpos);
    var rlink = divs.innerHTML.substr(dpos, dpos2-dpos);
 
    /* /w/index.php?title=PAGE&action=rollback&from=WHOM&token=TOKEN extrahieren */
    var pos  = rlink.indexOf('"') + 1;
    var pos2 = rlink.indexOf('"', pos);
    var href = rlink.substr(pos, pos2-pos); 
 
    /* Linkbar bauen */
    var linkbar = "";
    var spaces, label;
    for(var i=0; i<rvl_linktexts.length; i++) {
        /* Richtiger Namespace für diesen Knopf? */
        if( (pos=rvl_linktexts[i].indexOf("|")) != NOT_THERE) {
            label = rvl_linktexts[i].substr(pos+1);
            spaces = rvl_linktexts[i].substr(0, pos);
        } else {
            label = rvl_linktexts[i];
            spaces = "AWDS";
        }
        if(spaces.indexOf(namespace) == NOT_THERE)
            continue; /* Nö. */
 
        /* Knopf bauen */
        if(rvl_revtexts[i] == "default")
            linkbar+= '[<a href="' + href + '">' + label + '</a>]&nbsp;';
        else
            linkbar+= '[<a href="' + href + '&summary=' + rvl_revtexts[i] + '">'
                    + label + '</a>]&nbsp;';
     }
     /* In die Seite einfügen */
     divs.innerHTML = divs.innerHTML.substr(0, dpos-1) + "<br />" 
                    + linkbar + divs.innerHTML.substr(dpos2+1);
 
}
 
$(revlink);
// </nowiki>

/* Importiert ein SLA-Script: */
importJavascriptL('Meister-Lampe/antivandal', 'de');

/* Importiert ein Sichtungs-Tab-Script von Codeispoetry */
importScript('Benutzer:Codeispoetry/supportFuncs.js'); // [[Benutzer:Codeispoetry/supportFuncs.js]]
importScript('Benutzer:D/monobook/api.js'); // [[Benutzer:D/monobook/api.js]]

if (['', 'Image', 'Template'].indexOf(wgCanonicalNamespace) > -1 && wgAction === 'view') {
    importScript('Benutzer:Codeispoetry/flagtab.js'); // [[Benutzer:Codeispoetry/flagtab.js]]
}

/* SLA-Script von ireas */
importScript( 'Benutzer:Ireas/irset.js' ); // [[Benutzer:Ireas/irset.js]] 


// Modul: markAdmins.js von PDD
 var markadmins = true;          // Admins u.ä. besonders hervorheben?
 var marksubpages = true;              // auch Links auf Admin-Unterseiten markieren?
 var mawatchlist = true;               // auch auf der Beobachtungsliste?
 var macontribs = true;                // auch auf den Benutzerbeiträgen?
 var markatxt = "A";              // Markierung für Admins
 var markrenatxt = "A-Ren";       // Markierung für umbenannte Admins
 var markbureautxt = "B";         // Markierung für Bürokraten
 var markstewtxt = "S";           // Markierung für Stewards
 
 var markcomadmins = true;      // zusätzlich: Commons-Admins besonders hervorheben?
 var markcomatxt = "Com-A";       // Markierung für Commons-Admins
 
 var markexadmins = true;       // zusätzlich: Ex-Admins besonders hervorheben?
 var markexatxt = "Ex-A";         // Markierung für Ex-Admins
 var markexbureautxt = "Ex-B";    // Markierung für Ex-Bürokraten
 
 var markarbcom = true;         // zusätzlich: Schiedsgericht besonders hervorheben?
 var markarbcomtxt = "SG";        // Markierung für Schiedsgerichtler
 
 var markcheckuser = true;      // zusätzlich: CheckUser besonders hervorheben?
 var markcheckusertxt = "CU";     // Markierung für Checkuser-Berechtigte
 var markombudsmantxt = "Omb";      // Markierung für Ombudspersonen

 var markoversight = true;      // zusätzlich: Oversights besonders hervorheben?
 var markoversighttxt = "OS";     // Markierung für Oversight-Berechtigte
 
 function importPage(page) {
    importScript("Benutzer:" + page);
 }
 
 // get URL parameters (used for page type variables)
 var UrlParameters = new Array ();
 readparams();
 
 function readparams() {
  var asReadInUrlParameters;
  var asReadInUrlParameter;
 
  // Get URL parameters
  asReadInUrlParameters = location.search.substring(1, location.search.length).split("&");
  for (i = 0; i < asReadInUrlParameters.length; i++) {
    asReadInUrlParameter = asReadInUrlParameters[i].split("=");
    UrlParameters[decodeURIComponent(asReadInUrlParameter[0])] = decodeURIComponent(asReadInUrlParameter[1]);
  }
 }
 
 // page type variables: namespace == -1
 var isSpecial  = (wgCanonicalNamespace == "Special");
 var isContrib = (isSpecial && (wgTitle == "Contributions"));
 var isWatchlist = (isSpecial && (wgTitle == "Watchlist"));

 var version = "Override";
 
 if (!(!mawatchlist && isWatchlist) && !(!macontribs && isContrib)) {
    if (markadmins)
       importScript("Benutzer:PDD/markAdmins.js"); // [[Benutzer:PDD/markAdmins.js]]
 }

/* Importiert ein Script, dass veränderungen bei Diffs farbig markiert */
mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Cacycle/wikEdDiff.js'+ '&action=raw&ctype=text/javascript');