Benutzer:$traight-$hoota/bapperl.js

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
 importPage('PDD/alertOnChanges.js'),
 
 // LA (generisch, Bild, Kategorie, Vorlage) / QS / URV / Vandalen eintragen
 //
 // Fragt nach der Begründung, füllt die Eingabefelder aus, und ruft die Löschkandidatenseite/QSSeite auf.
 // Ursprünglich von [[Benutzer:BLueFiSH.as]]
 // Modifiziert von [[Benutzer:Littl]]
 // Modifiziert von [[Benutzer:Revvar]] (Aufpassen, falls bei SLA Seite bereits gelöscht)
 // Modifiziert von [[Benutzer:PDD]] (Vandalensperrmeldung, Kategorien-LAs, viele kleine Fixes)
 // Modifiziert von [[Benutzer:C-M]] (SLA-Shortcuts)
 // kompletter Neubau von [[Benutzer:$traight-$hoota]]
 
 // <nowiki>
 // Funktion setBapperl(typ)
 // Trägt, je nach Typ der Meldung, Bausteine bzw. Begründung auf den Seiten ein
 // (aufgerufen aus der monobook.js)
 //
 Bapperl =  {
     types:  {
         "QS": {
                template: "subst:QS",
                page: "Qualitätssicherung",
                reason: {
                question: 'QS-Grund'
             },
                dontformat :  true
         },
         "LA": {
                vorlage: "subst:Löschantrag",
                seite: "Löschkandidaten",
                reason: {
                question: 'QS-Grund'
             },
                substnoinclude: true,
                dontformat: true
         },
        "SLA": {
                vorlage: "Löschen",
                reason: {
                question: 'QS-Grund',
                 defaultValue: 'kein Artikel',
                 shortcuts: {
                    'b': 'Bandspam',
                    'c': 'Clanspam',
                    'd': 'Verwaiste Diskussionsseite',
                    'i': 'Offensichtliche Irrelevanz',
                    'k': 'Kein Artikel',
                    'l': 'Linkcontainer',
                    'm': 'Müll',
                    'r': 'Rapperspam',
                    't': 'Tastaturtest',
                    'u': 'Unfug',
                    'w': 'Wörterbucheintrag',
                    'x': 'Wiedergänger',
                    'z': 'Werbeeintrag'
                 }
             },
                dontformat:  true,
             reason: 'kein Artikel'
        },
        /*"BildLA": {
                vorlage: "subst:Löschantrag",
                seite: "Löschkandidaten/Bilder",
                useReason :  true,
                substnoinclude :  true,
                dontformat :  true
        },*/
        "URV": {
                vorlage: "URV",
                seite: "Löschkandidaten/Urheberrechtsverletzungen",
                reason: {
                question: 'URV-Quelle (z.B. URL)',
                 defaultValue: '[]'
             },
             generateURI: function(type, reason, settings, lemma, lemma2) {
                 return encodeURI(settings.wpath + settings.wnamesp + type.seite + '&action=edit')
                   + "&" + settings.subjp + "="
                   + encodeURIComponent( '+[[' + lemma2 + ']]')
                   + "&" + settings.addp + "="
                   + encodeURIComponent('# [[' + lemma2 + ']] von ' + reason + ' ' + settings.customsig + '\n' )
                   + settings.speichernpa;
             },
             replaceText: true
        },
        "Vandale": {
                vorlage: "Benutzer",
                seite: "Vandalismusmeldung",
                reason: {
                question: 'VM-Grund',
                 defaultValue: ''
             },
 generateURI: function(type, reason, settings, lemma, lemma2) {
                 return encodeURI(settings.wpath + settings.wnamesp + type.seite +'&action=edit&section=new')
                    + "&" + settings.subjp + "="
                    + encodeURIComponent( '[[Benutzer:' + lemma2 + ']]' )
                    + "&" + settings.textp + "="
                    + encodeURIComponent( '{{' + type.vorlage + '|' + lemma2 + '}} ' + reason + ' ' + settings.customsig + '\n' )
                    + settings.speichernpa;
             },
             editArticle: false
        },
        "LA-KAT": {
                vorlage: "subst:Löschantrag",
                seite: "WikiProjekt_Kategorien/Diskussionen",
                reason: {
                question: 'LA-Grund'
             },
                substnoinclude :  true,
                dontformat :  true
        },
        "LA-VORL": {
                vorlage: "subst:Löschantrag",
                seite: "Löschkandidaten",
                reason: {
                question: 'LA-Grund'
             },
                substnoinclude :  true,
                dontformat :  true
        },
        "Artikelvandalismus": {
                vorlage: "Artikel",
                seite: "Vandalismusmeldung",
                reason: {
                question: 'VM-Grund',
                 defaultValue: ''
             },
             editArticle: false
        },
        "Reset": {
                vorlage: "Bitte erst NACH dieser Zeile schreiben! (Begrüßungskasten)",
             replaceText: true
        },
        /*"Lemmasperrung": { // outdated, do not use!
                vorlage: "gesperrtes Lemma",
             editArticle: false
        },
        "Lemmasperrung": {
                seite: "Gesperrte Lemmata",
             editArticle: false
        },*/
        "Benutzersperrung": {
                seite: "Unbegrenzt gesperrte Benutzer",
             editArticle: false
        }
     },
     addType: function(key, data){
         this.types[key] = data;
     },
     settings: {
         wpath: 'http://de.wikipedia.org/w/index.php?title=',
         wnamesp: 'Wikipedia:',
         wdnamesp: 'Wikipedia_Diskussion:',
         autosave: true
     },
     createBapperl: function(typeKey) {
         if(!this.types[typeKey]) {
             throw new Exception("Bapperl type '" + typeKey + "' is not available");
         }
         var type = this.types[typeKey];
         var lemma = getLemma();
         
        if ((type == "Vandale") || (typ == "Benutzersperrung")) {
            if (isUserpage) {
                // leading stuff
                lemma2 = lemma.replace(/Benutzer.Diskussion./,'');
                if (lemma2 == lemma)
                    lemma2 = lemma.replace(/Benutzer./,'');
                lemma = lemma2;
                // trailing stuff
                lemma = lemma.replace(/\/.*/,'').replace(/&action.*/,'');
            }
            if (isContrib) {
                lemma = lemma.replace(/.*\//,'');
            }
           }
           lemma2 = lemma.split('_').join(' ');

         if(type.reason) {
             var reason = prompt(type.reason.question ? type.reason.question : "Reason", type.reason.defaultValue ? type.reason.defaultValue : "");
             reason = trim(reason);
             if(type.reason.shortcuts) {
                 if(type.reason.shortcuts[reason]) {
                     reason = type.reason.shortcuts[reason];
                 }
             }
         }
         
        var settings = this.settings;
        settings.speichernpa = (settings.autosave) ? "&" + settings.speichernp + "=1" : "";
         settings.nocreatepa = "&" + settings.nocreatep + "=1";
         
         if(type.generateURI && typeof type.generateURI == "function") {
             var uri = type.generateURI(type, reason, settings, lemma, lemma2);
         } else {
             var uri = this.generateDefaultURI(type, reason, settings, lemma, lemma2);
         }
         if (uri != "") {
             alert(uri);
            /*window.open(uri);
            window.focus();*/
            }
         if(type.editArticle !== false) {
            var grundsig = " \'\'" + reason + "\'\' " + settings.customsig;

            var txt = "";
            // vereinheitlicht plus kursiv (PDD)
             if(type.grundparam) {
                // wenn grund als Parameter übergeben wird: | und = escapen
                txt += "{{" + type.vorlage + '|' + grundsig.split('|').join('{{!}}').split('=').join('&#61;') + '}}';
            }else{
                txt += "{{" + type.vorlage + '}}' + grundsig;
            }

            if (! type.dontformat) {
                txt += "\n----\n\n";
                for (var i = 0; i < settings.emptylinesafterhr; i++)
                    txt += "\n";
                }
            }else if (! this.looksLikeTemplate(lemma2)) {
                txt += "\n";
            }

            if (! type.substnoinclude) {
                if (looksLikeTemplate(lemma2))
                    txt = "<noinclude>\n" + txt + "</noinclude>";
                }
            } else { // typ==10 oder 11
                txt += "\n";
            }

            if (isEdit) {
                // wir sind schon im Edit-Modus
                   if (type.replaceText) {
                    document.editform.wpTextbox1.value = txt;
                } else {
                    document.editform.wpTextbox1.value = txt + document.editform.wpTextbox1.value;
                }
                document.editform.wpSummary.value = kurz + '+';
                document.editform.wpWatchthis.checked = false;
                if (settings.autosave) {
                    if ((typ != 11) && (document.getElementById("newarticletext"))) {
                        alert("Artikel wurde bereits gelöscht!");
                }
                else document.editform.wpSave.click();
            } else {
                // Wir müssen die Seite erst zum Editieren öffnen
                if (type.replaceText) {
                   // URV-Baustein & Spielwiese-Reset ersetzen den kompletten Text
                   uri = settings.wpath + encodeURIComponent(lemma) + "&action=edit"
                     + "&" + settings.subjp + "=" + encodeURIComponent(typeKey + "+")
                     + "&" + settings.textp + "=" + encodeURIComponent(txt)
                     + settings.speichernpa;
                } else {
                   // alle anderen Bausteine werden am Anfang eingefügt
                   uri = settings.wpath + encodeURIComponent(lemma) + "&action=edit"
                     + "&" + settings.subjp + "=" + encodeURIComponent(typeKey + "+")
                     + "&" + settings.insp + "=" + encodeURIComponent(txt)
                     + settings.speichernpa;
                }
                if (typ != 11) uri += nocreatepa;
         
                // neue Seite im aktuellen Fenster öffnen
                 alert(uri);
                //location.href = uri;
            } // END: if (isEdit)...else...
         }
     },
     generateDefaultURI: function(type, reason, settings, lemma, lemma2) {
         return settings.wpath
               + encodeURI(settings.wnamesp + type.seite + '/' + settings.WPDatum)
               + "&action=edit" + "&section=new"
               + "&" + settings.subjp + "="
                   + encodeURIComponent( '[[' + lemma2 + ']]' )
               + "&" + settings.textp + "="
                   + encodeURIComponent( reason + ' ' + settings.customsig + '\n' )
               + settings.speichernpa;
     },
    looksLikeTemplate: function (aktuelleslemma) {
        return (wgNamespaceNumber == 10) ||
         (aktuelleslemma.indexOf("Vorlage:") > -1) ||
         (aktuelleslemma.indexOf(":Vorlage/") > -1) ||
         (aktuelleslemma.indexOf("/Vorlage/") > -1);
     }
 }
 function setBapperl(type) {
     Bapperl.createBapperl();
 }