Benutzer:PDD/eintragen.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
 importJavascriptL('PDD/alertOnChanges','de'); // [[Benutzer: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)
 
 // <nowiki>
 // Funktion eintragen(typ, grund)
 // Trägt, je nach Typ der Meldung, Bausteine bzw. Begründung auf den Seiten ein
 // (aufgerufen aus der monobook.js)
 //
 
 function eintragen(typ, grund) { // Littl, PDD
   var wpath = mw.util.wikiScript() + '?title=';
   var wnamesp = 'Wikipedia:';
   var wdnamesp = 'Wikipedia_Diskussion:';
 
   // function placeholders:
   // 4 = BildLA (obsolet)
   // 11 = Lemmasperrung (alt)
   // 12 = Lemmasperrung (neu)
   // 13 = Benutzersperrung (neues Konzept, nicht durchgesetzt)
   if (typ == 4)
       alert("Update: Bildlöschanträge gibt es nicht mehr, stattdessen wird der DÜP-Button verwendet. Bitte update deine monobook.js.");
   if ((typ == 11) || (typ == 12))
       alert("Update: Lemmasperren werden jetzt mit dem Karteireiter Schützen vorgenommen. Bitte update deine monobook.js.");
   if (typ == 13)
       alert("Update: Diese Benutzersperrfunktion wird nicht mehr verwendet. Bitte update deine monobook.js.");
   if (typ > 14)
       alert("Funktion " + typ + " noch nicht implementiert!");
   if ((typ == 4) || (typ == 11) || (typ == 12) || (typ == 13) || (typ > 14))
       return;
 
   // Variables that should be defined in your monobook
   if (typeof(autosave) == 'undefined')
       autosave = false;
   if (typeof(signogrundparam) == 'undefined')
       signogrundparam = false;
   if (typeof(emptylinesafterhr) == 'undefined')
       emptylinesafterhr = 1;
   if (typeof(grund) == 'undefined')
       grund = "";
   if (typeof(defaultSLA) == 'undefined')
       defaultSLA = "";
   if (typeof(defaultVandal) == 'undefined')
       defaultVandal = "vandaliert in [[]]";
   if (typeof(defaultAVandal) == 'undefined')
       defaultAVandal = "Edit-War";
 
   if (typeof(Monate) == 'undefined')
       Monate = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
   if (typeof(jetzt) == 'undefined')
       jetzt = new Date();
   if (typeof(Jahr) == 'undefined')
       Jahr = jetzt.getYear(); if (Jahr < 999)  Jahr += 1900;
   if (typeof(WPDatum) == 'undefined')
       WPDatum = jetzt.getDate() + '._' + Monate[jetzt.getMonth()] + '_' + Jahr;
   if (typeof(WPDatum2) == 'undefined')
       WPDatum2 = Jahr + '/' + Monate[jetzt.getMonth()] + '/' + jetzt.getDate();
 
   if (typeof(isEdit) == 'undefined')
       isEdit = (document.URL.indexOf('action=edit') > 0) || (document.URL.indexOf ('action=submit') > 0);
   if (typeof(isUserpage) == 'undefined')
       isUserpage = ( ( mw.config.get( 'wgCanonicalNamespace' ) == "User") || ( mw.config.get( 'wgCanonicalNamespace' ) == "User_talk") );
   if (typeof(isSpecial) == 'undefined')
       isSpecial  = ( mw.config.get( 'wgCanonicalNamespace' ) == "Special");
   if (typeof(isContrib) == 'undefined')
       isContrib = (isSpecial && ( mw.config.get( 'wgCanonicalSpecialPageName' ) == "Contributions") );
   if (typeof(isPHP) == 'undefined')
       isPHP = (document.URL.indexOf('index.php') > 0);
 
   // Variablen für die einzelnen Bausteine
   var kurz = "";
   var vorlage = "";
   var seite = "";
 
   // bei bestimmten Vorlagen wird Grund als Parameter übergeben
   // (momentan nur Vorlage:Löschantrag, Vorlage:Löschen, Vorlage:QS)
   // außerdem bei RENKAT: neuer Katname als "Grund"
   var grundparam = false;
   // bestimmte Subst-Vorlagen haben schon noincludes
   // (momentan nur Vorlage:Löschantrag)
   var substnoinclude = false;
   // bestimmte Vorlagen beinhalten bereits die Formatierung (Returns, Hline)
   // (momentan nur Vorlage:Löschantrag und Vorlage:Löschen)
   var dontformat = false;
 
   switch (typ) {
      case 1: { kurz="QS";
                vorlage="subst:QS";
                seite="Qualitätssicherung";
                if (!signogrundparam) {
                    grundparam = true;
                    dontformat = true;
                }
                break; }
      case 2: { kurz="LA";
                vorlage="subst:Löschantrag";
                seite="Löschkandidaten";
                grundparam = true;
                substnoinclude = true;
                dontformat = true;
                break; }
      case 3: { kurz="SLA";
                vorlage="Löschen";
                if (!signogrundparam) {
                    grundparam = true;
                    dontformat = true;
                }
                break; }
      case 4: { kurz="BildLA";
                vorlage="subst:Löschantrag";
                seite="Löschkandidaten/Bilder";
                grundparam = true;
                substnoinclude = true;
                dontformat = true;
                break; }
      case 5: { kurz="URV";
                vorlage="URV";
                seite="Löschkandidaten/Urheberrechtsverletzungen";
                break; }
      case 6: { kurz="Vandale";
                vorlage="Benutzer";
                seite="Vandalismusmeldung";
                break; }
      case 7: { kurz="LAKAT";
                vorlage="subst:Löschantrag";
                seite="WikiProjekt_Kategorien/Diskussionen";
                grundparam = true;
                substnoinclude = true;
                dontformat = true;
                break; }
      case 8: { kurz="LAVORL";
                vorlage="subst:Löschantrag";
                seite="Löschkandidaten";
                grundparam = true;
                substnoinclude = true;
                dontformat = true;
                break; }
      case 9: { kurz="Artikelvandalismus";
                vorlage="Artikel";
                seite="Vandalismusmeldung";
                break; }
      case 10: { kurz="Reset";
                vorlage="Bitte erst NACH dieser Zeile schreiben! (Begrüßungskasten)";
                break; }
      case 11: { kurz="Lemmasperrung"; // outdated, do not use!
                vorlage="gesperrtes Lemma";
                break; }
      case 12: { kurz="Lemmasperrung";
                seite="Gesperrte Lemmata";
                break; }
      case 13: { kurz="Benutzersperrung";
                seite="Unbegrenzt gesperrte Benutzer";
                break; }
      case 14: { kurz="Kategorieverschiebung";
                vorlage="subst:Umbenennen";
                seite="WikiProjekt_Kategorien/Diskussionen";
                grundparam = true;
                break; }
   }
 
   var standardsig = '-- \~\~\~\~';
   var customsig;
   if (typeof(usersignature) == 'undefined')
      customsig = standardsig;
   else
      customsig = usersignature;
 
   var lemma;
   if (isContrib)
      lemma = extractLemma();
   else
      lemma = getLemma();

   var lemma2;
   // special lemma handling for usernames (vandals, banned users):
   if ((typ == 6) || (typ == 13)) {
      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(' ');
 
   // zu öffnende Zielseite
   var uri = "";

   // für typ 14 (RENKAT): Zielkategorie
   var oldkat = mw.config.get( 'wgTitle' );
   var neukat = oldkat;
   if (typ == 14) {
       while (oldkat == neukat)
            neukat = prompt('Neuer Kategoriename:',neukat);
   }

   // Begründung für die Bausteinsetzung
   if(grund == "") {
      if (typ == 3) grund = defaultSLA;
 
      if (typ == 5)
         grund = prompt(kurz+'-Quelle (z.B. URL):','[]');
      else if (typ == 6)
         grund = prompt('VM-Grund:',defaultVandal);
      else if (typ == 9)
         grund = prompt('VM-Grund:',defaultAVandal);
      else if ((typ != 10) && (typ != 11) && (typ != 12) && (typ != 13))
         grund = prompt(kurz+'-Grund:',grund);
 
      /* Shortcuts für SLA*/
      if (typ == 3){ 
         switch (grund) {
            case "b": grund="Bandspam"; break;
            case "c": grund="Clanspam"; break;
            case "d": grund="Verwaiste Diskussionsseite"; break;
            case "i": grund="Offensichtliche Irrelevanz"; break;
            case "k": grund="Kein Artikel"; break;
            case "l": grund="Linkcontainer"; break;
            case "m": grund="Müll"; break;
            case "r": grund="Rapperspam"; break;
            case "t": grund="Tastaturtest"; break;
            case "u": grund="Unfug"; break;
            case "w": grund="Wörterbucheintrag"; break;
            case "x": grund="Wiedergänger"; break;
            case "z": grund="Werbeeintrag"; break;
         }
      }
   }
 
   // Parameter für die URI
   var speichernpa = (autosave) ? "&" + asuserp + "=" + generate_asuser() + "&" + astimep + "=" + generate_astime() : "";
   var nocreatepa = "&" + nocreatep + "=1";
 
   // ab hier wird eingetragen
   if (grund != null) {
      grund = trim(grund);
 
      // Eintragen auf der entsprechenden LK/QS/usw.-Seite
      // (wird dann ausgeführt von fillActionPage() in der monobook.js)
 
      //QS / LA / BildLA / LAKAT / LAVORL / RENKAT
      if (typ == 1 || typ == 2 || typ == 4 || typ == 7 || typ == 8 || typ == 14) {
         // Öffnen der QS- oder LK- oder BildLK-Seite, gleich zum Eintragen des QS/LA
         // Texte werden als Parameter übergeben
         uri = wpath
               + encodeURI(wnamesp + seite 
                                  + (( (typ == 7) || (typ == 14) )? ('/' + WPDatum2) : ('/' + WPDatum)))
               + "&action=edit" + "&section=new"
               + "&" + subjp + "="
                   + encodeURIComponent( '[['
                                         + ( ((typ == 4) || (typ == 7) || (typ == 14) ) ? ':' : '')
                                         + lemma2 + ']]'
                                         + ( (typ == 14)? (' nach [[:Kategorie:' + neukat + ']]' ) : '' ) )
               + "&" + textp + "="
                   + encodeURIComponent( grund + ' ' + customsig + '\n' )
               + speichernpa;
      }
 
      //URV
      if (typ == 5) {
         // Öffnen der URV-Seite gleich zum Eintragen der Meldung, Texte werden als Parameter übergeben
         uri = encodeURI(wpath + wnamesp + seite + '&action=edit')
                   + "&" + subjp + "="
                   + encodeURIComponent( '+[[' + lemma2 + ']]')
                   + "&" + addp + "="
                   + encodeURIComponent('# [[' + lemma2 + ']] von ' + grund + ' ' + customsig + '\n' )
                   + speichernpa;
      }
 
      //Vandale
      if (typ == 6) {
         // Öffnen der VM-Seite gleich zum Eintragen der Meldung, Texte werden als Parameter übergeben
         uri = encodeURI(wpath + wnamesp + seite +'&action=edit&section=new')
                   + "&" + subjp + "="
                   + encodeURIComponent( '[[Benutzer:' + lemma2 + ']]' )
                   + "&" + textp + "="
                   + encodeURIComponent( '{{' + vorlage + '|' + lemma2 + '}} ' + grund + ' ' + customsig + '\n' )
                   + speichernpa;
      }
 
      //AVandale
      if (typ == 9) {
         // Öffnen der VM-Seite gleich zum Eintragen der Meldung, Texte werden als Parameter übergeben
         uri = encodeURI(wpath + wnamesp + seite +'&action=edit&section=new')
                   + "&" + subjp + "="
                   + encodeURIComponent( 'Artikel [[' + lemma2 + ']]' )
                   + "&" + textp + "="
                   + encodeURIComponent( '{{' + vorlage + '|' + lemma2 + '}} ' + grund + ' ' + customsig + '\n' )
                   + speichernpa;
      }
 
      //Lemmasperrung
      if (typ == 12) {
         // Öffnen der Lemmasperrseite und Eintragen
         // Achtung: wdnamesp statt wnamesp
         uri = encodeURI(wpath + wdnamesp + seite + '/' + WPDatum4 + '&action=edit')
                   + "&" + subjp + "="
                   + encodeURIComponent( '+[[' + lemma2 + ']]')
                   + "&" + addp + "="
                   + encodeURIComponent('# {{:' + lemma2 + '}} ' + customsig + '\n' )
                   + speichernpa;
      }
 
      //Benutzersperrung
      if (typ == 13) {
         // Auswahl der Unterseite
         var ugspage = "Sonstige";
         if ((lemma2.charAt(0) >= 'A') && (lemma2.charAt(0) <= 'Z'))
             ugspage = lemma2.charAt(0);
         // Öffnen der Benutzersperrseite und Eintragen
         uri = encodeURI(wpath + wnamesp + seite + '/' + ugspage + '&action=edit')
                   + "&" + subjp + "="
                   + encodeURIComponent( '+[[Benutzer:' + lemma2 + ']]')
                   + "&" + addp + "="
                   + encodeURIComponent('# {{:Benutzer:' + lemma2 + '}} ' + customsig + '\n' + '# {{:Benutzer Diskussion:' + lemma2 + '}} ' + customsig + '\n' )
                   + speichernpa;
      }
 
      // neue Seite wird in neuem Fenster geöffnet
      if (uri != "") {
          window.open(uri);
          window.focus();
      }
 
      // bearbeiten der (aktuellen) Artikelseite und eintragen lassen
      // (wird dann ausgeführt von fillActionPage() in der monobook.js)
 
      // (bei Vandalenmeldung, Lemmasperrung, Benutzersperrung nichts auf aktueller Seite eintragen!!)
      if ((typ != 6) && (typ != 9) && (typ != 12) && (typ != 13)) {
 
         var grundsig = " \'\'" + grund + "\'\' " + customsig;
 
         // wenn grund als Parameter übergeben wird: | und = escapen
         if (grundparam) {
             grundsig = grundsig.split('|').join('{{!}}').split('=').join('&#61;');
         }
 
         // vereinheitlicht plus kursiv (PDD)
         var txt = "{{" + vorlage;
         if (grundparam)
            txt += "|1=";
         else
            txt += "}}";
 
         if ((typ != 10) && (typ != 11)) {
 
            if (typ == 14) txt += neukat;
            else txt += grundsig;

            if (grundparam)
               txt += "}}";
 
            if (!dontformat) {
               txt += "\n----\n\n";
               for (var i = 0; i < emptylinesafterhr; i++)
                   txt += "\n";
            }
            else if (!looksLikeTemplate(lemma2))
               txt += "\n";
 
            if (!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 ((typ == 5) || (typ == 10) || (typ == 11)) {
               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 (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 ((typ == 5) || (typ == 10) || (typ == 11)) {
               // URV-Baustein & Spielwiese-Reset ersetzen den kompletten Text
               uri = wpath + encodeURIComponent(lemma) + "&action=edit"
                     + "&" + subjp + "=" + encodeURIComponent(kurz + "+")
                     + "&" + textp + "=" + encodeURIComponent(txt)
                     + speichernpa;
            } else {
               // alle anderen Bausteine werden am Anfang eingefügt
               uri = wpath + encodeURIComponent(lemma) + "&action=edit"
                     + "&" + subjp + "=" + encodeURIComponent(kurz + "+")
                     + "&" + insp + "=" + encodeURIComponent(txt)
                     + speichernpa;
            }
            if (typ != 11) uri += nocreatepa;
 
            // neue Seite im aktuellen Fenster öffnen
            location.href = uri;
         } // END: if (isEdit)...else...
      } // END: if (typ != 6)...
   } // END: if (grund != null)...
 } // END: function eintragen(typ)...
 
 
 //
 // Funktion looksLikeTemplate()
 // Vorlagen-Check
 // (aufgerufen aus eintragen() )
 //
 
 function looksLikeTemplate(aktuelleslemma) {
    if ( ( mw.config.get( 'wgNamespaceNumber' ) == 10 ) ||
         ( aktuelleslemma.indexOf("Vorlage:") > -1 ) ||
         ( aktuelleslemma.indexOf(":Vorlage/") > -1 ) ||
         ( aktuelleslemma.indexOf("/Vorlage/") > -1 ) )
              return true;
    else
              return false;
 }
 
 // </nowiki>