Benutzer:SirPrize/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
 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:SirPrize]] (Keine doppelten QS-/SLA-/Löschanträge mehr)
 
 // Achtung: verwendet Variablen autosave, reloadme und isEdit/isUserpage/isContrib (aus der monobook.js)
 
 // <nowiki>
 
 // 
 // Funktion eintragen(typ)
 // Trägt, je nach Typ der Meldung, Bausteine bzw. Begründung auf den Seiten ein
 // (aufgerufen aus der monobook.js)
 //
 
 function eintragen(typ) { // Littl, PDD
   var wpath = 'http://de.wikipedia.org/w/index.php?title=';
   var wnamesp = 'Wikipedia:';
 
 // alert (for old monobooks)
 if (minimalVersion(20)<20) return;
 
   // Variables that should be defined in your monobook
   if (typeof(autosave) == 'undefined')
       autosave = false;
   if (typeof(usekatproject) == 'undefined')
       usekatproject = true;
   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();
 
   switch (typ) {
      case 1: { var kurz="QS";
                var vorlage="subst:Qualitätssicherung";
                var seite="Qualitätssicherung";
                break; }
      case 2: { var kurz="LA";
                var vorlage="subst:Löschantrag";
                var seite="Löschkandidaten";
                break; }
      case 3: { var kurz="SLA";
                var vorlage="Löschen";
                var seite="";
                break; }
      case 4: { var kurz="BildLA";
                var vorlage="subst:Löschantrag";
                var seite="Löschkandidaten/Bilder";
                break; }
      case 5: { var kurz="URV";
                var vorlage="subst:URV";
                var seite="Löschkandidaten/Urheberrechtsverletzungen";
                break; }
      case 6: { var kurz="Vandale";
                var vorlage="Vandale";
                var seite="Vandalensperrung";
                break; }
      case 7: { var kurz="LAKAT";
                if (usekatproject) {
                    var vorlage="subst:Löschantrag";
                    var seite="WikiProjekt_Kategorien/Diskussionen";
                } else {
                    var vorlage="subst:Löschantrag";
                    var seite="Löschkandidaten";
                }
                break; }
      case 8: { var kurz="LAVORL";
                var vorlage="subst:Löschantrag";
                var seite="Löschkandidaten";
                break; }
   }
 
   var standardsig = '-- \~\~\~\~';
   var customsig;
   if (typeof(usersignature) == 'undefined')
      customsig = standardsig;
   else
      customsig = usersignature;
 
   var lemma = getLemma();
   // special lemma handling for vandals (usernames):
   if (typ == 6) {
      if (isUserpage) {
         // leading stuff
         lemma = lemma.replace(/Benutzer.Diskussion./,'');
         lemma = lemma.replace(/Benutzer./,'');
         // trailing stuff
         lemma = lemma.replace(/\/.*/,'').replace(/&action.*/,'');
      }
      if (isContrib) {
         lemma = lemma.replace(/.*\//,'');
      }
   }
   var lemma2 = lemma.split('_').join(' ');
 
   if (typ == 5)
      var grund=prompt(kurz+'-Quelle (z.B. URL):','[]');
   else if (typ == 6)
      var grund=prompt('Vandalismusbelege:','vandaliert in [[]]');
   else
      var grund=prompt(kurz+'-Grund:','');
 
   if (grund != null) {
      grund=trim(grund); 
      var speichernpa = (autosave) ? "&" + speichernp + "=1" : "";
 
      // Eintragen auf der entsprechenden LK/QS/usw.-Seite
 
      //QS / LA / BildLA / LAKAT / LAVORL
      if (typ == 1 || typ == 2 || typ == 4 || typ == 7 || typ == 8) {
         // Öffnen der QS- oder LK- oder BildLK-Seite, gleich zum Eintragen des QS/LA
         // Texte werden als Parameter übergeben
         var uri = encodeURI(wpath + wnamesp + seite
                             + ((typ == 7 && usekatproject)? ('/' + WPDatum2):('/' + WPDatum)) + '&action=edit&section=new')
                   + "&" + subjp + "="
                   + encodeURIComponent( '[['
                                      /* + ((typ == 4)? ':Bild:':'') + ((typ == 7)? ':Kategorie:':'') */
                                         + ( ((typ == 4)||(typ == 7)) ? ':' : '')
                                         + lemma2 + ']]' )
                   + "&" + textp + "="
                   + encodeURIComponent( grund + ' ' + customsig + '\n' )
                   + speichernpa;
         window.open(uri);
      }
 
      //URV
      if (typ == 5) {
         // Öffnen der URV-Seite gleich zum Eintragen des LA, Texte werden als Parameter übergeben
         var uri = encodeURI(wpath + wnamesp + seite + '&action=edit')
                   + "&" + subjp + "="
                   + encodeURIComponent( '+[[' + lemma2 + ']]')
                   + "&" + addp + "="
                   + encodeURIComponent('# [[' + lemma2 + ']] - ' + grund + ' ' + customsig + '\n' )
                   + speichernpa;
         window.open(uri);
      }
 
      //Vandale
      if (typ == 6) {
         // Öffnen der VS-Seite gleich zum Eintragen der Meldung, Texte werden als Parameter übergeben
         var uri = encodeURI(wpath + wnamesp + seite +'&action=edit&section=new')
                   + "&" + subjp + "="
                   + encodeURIComponent( '[[Benutzer:' + lemma2 + ']]' )
                   + "&" + textp + "="
                   + encodeURIComponent( '{{' + vorlage + '|' + lemma2 + '}} ' + grund + ' ' + customsig + '\n' )
                   + speichernpa;
         window.open(uri);
      }
 
      // bearbeiten der Artikelseite und eintragen lassen (macht aktion() weiter unten)     
 
      // (bei Vandalenmeldung nichts auf aktueller Seite eintragen!!)
      if (typ != 6) {
 
         // Vorlage eintragen 
         window.focus(); 
 
         // vereinheitlicht plus kursiv (PDD)
         var txt = '{{' + vorlage + '}} \'\'' + grund + '\'\' ' + customsig + '\n----\n\n\n';    
 
         if (isEdit) {
            // wir sind schon im Edit-Modus
            
            if (typ == 5) {
               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 (antragGestellt(typ)) {
                  alert("Es wurde bereits ein solcher Antrag gestellt!");
               } else if (typ==3) {
                  if (document.getElementById("newarticletext")) {
                     alert("Artikel wurde bereits gelöscht!");
                  } else absenden();
               } else absenden();
            }
         } else {
            // Wir müssen die Seite erst zum editieren öffnen
            if (typ != 5) {
               uri = wpath + encodeURIComponent( /* ((typ == 7)? 'Kategorie:':'') +*/ lemma) + "&action=edit"
                     + "&" + subjp + "=" + encodeURIComponent(kurz + "+")
                     + "&" + insp + "=" + encodeURIComponent(txt)
                     + "&typ=" + typ // TODO: vielleicht so etwas wie typp an geeigneter Stelle definieren
                     + speichernpa;
            } else {
               uri = wpath + encodeURIComponent(lemma) + "&action=edit"
                     + "&" + subjp + "=" + encodeURIComponent(kurz + "+")
                     + "&" + textp + "=" + encodeURIComponent(txt)
                     + "&typ=" + typ // TODO: vielleicht so etwas wie typp an geeigneter Stelle definieren
                     + speichernpa;
            }
            location.href = uri;
         } // END: if (isEdit)...else...
      } // END: if (typ != 6)...
   } // END: if (grund != null)...
 } // END: function eintragen(typ)...
 
 
 //
 // Funktion nowcomm()
 // Trägt NowCommons-Baustein ein
 // (aufgerufen aus der monobook.js)
 //
 
 function nowcomm() {
  var lemma = getLemma();
  if (lemma.substring(0, 5) == "Bild:") lemma=lemma.slice(5);
  var lemmaneu = prompt('Neuer Dateiname',lemma);
  if (lemmaneu != null )
      newtext('NowCommons','{{NowCommons|' + lemmaneu +'}}',3);
 }
 
 //
 // Helper-Funktion getLemma()
 // extrahiert Lemma, entfernt "Bild:" und "Kategorie:"
 // (aufgerufen von eintragen() und nowcomm() aus der eintragen.js)
 //
 
 function getLemma () { //Littl
   var lemma;
   if ((isContrib) && ( UrlParameters["target"] > "" ))
     lemma = UrlParameters["target"];
   else if ( UrlParameters["title"] > "" )
     lemma = UrlParameters["title"];
   else 
     lemma = decodeURIComponent(location.href.substring(location.href.indexOf("/wiki/") + 6)).split('#')[0];          
   // if (lemma.substring(0, 5) == "Bild:") lemma=lemma.slice(5);
   // if (lemma.substring(0, 10) == "Kategorie:") lemma=lemma.slice(10);
   if (isPHP) lemma=lemma.split('+').join('_');
   return lemma;
 }
 
 // 
 // Funktion aktion (früher "loeschkandidat")
 // Entnimmt Parameter aus der URI, fügt sie in die Textfelder ein und klickt ggf. auf "Speichern"
 // (aufgerufen in der Init()-Funktion der monobook.js)
 //
 
 function aktion() {  //Littl, (k)Revvar
   var abbruch = false;
   if (UrlParameters["typ"]>"") // TODO: typp statt "typ" verwenden
      abbruch = antragGestellt(UrlParameters["typ"]); // TODO: typp statt "typ" verwenden
   if (UrlParameters[subjp]>"")
      document.editform.wpSummary.value = UrlParameters[subjp];
   if (UrlParameters[textp]>"")
      document.editform.wpTextbox1.value = UrlParameters[textp];
   if (UrlParameters[insp]>"")
      document.editform.wpTextbox1.value = UrlParameters[insp]
                                           + document.editform.wpTextbox1.value;
   if (UrlParameters[addp]>"")
      document.editform.wpTextbox1.value = document.editform.wpTextbox1.value
                                           + UrlParameters[addp];
   if (UrlParameters[minorp] == "1")
      document.editform.wpMinoredit.checked=true;
   if (UrlParameters[speichernp] == "1") {
      if (abbruch) {
         // TODO: nach dem alert evtl. zur Seite zurückkehren
         alert("Es wurde bereits ein solcher Antrag gestellt!");
      } else if (UrlParameters[subjp].search("SLA")==0) {
         if (document.getElementById("newarticletext")) {
            alert("Artikel wurde bereits gelöscht!");
         } else absenden();
      } else absenden();
   }
 }
 
 //
 // Funktion antragGestellt
 // Die Funktion schaut, ob schon ein entsprechender Baustein auf der Seite ist.
 // typ ist derselbe Wert, der auch in der Funktion eintragen() benutzt wird.
 //

 function antragGestellt(typ) {

   if(!isEdit)
     return false;

   if(typ==1 && document.editform.wpTextbox1.value.search(/\{\{Qualitätssicherungstext\}\}/) != -1) { 
      return true;
   } else if(typ==2 && document.editform.wpTextbox1.value.search(/\{\{Löschantragstext\|/) != -1) {
      return true;
   } else if(typ==3 && document.editform.wpTextbox1.value.search(/\{\{Löschen\}\}/) != -1) {
      return true;
   } else if(typ==4 && document.editform.wpTextbox1.value.search(/\{\{Löschantragstext\|/) != -1) {
      return true;
   } else if(typ==5 &&
    (document.editform.wpTextbox1.value.search(/\{\{URV\}\}/) != -1 ||
     document.editform.wpTextbox1.value.search(/\{\{Urheberrecht ungeklärt\}\}/) != -1 )) {
      return true;
   } else if(typ==6) {
     // TODO: Auf [[WP:VS]] nach dem passenden Vandalenbaustein suchen
     return false;
   } else if(typ==7 && document.editform.wpTextbox1.value.search(/\{\{Löschantragstext\|/) != -1) {
     return true;
   } else if(typ==8 && document.editform.wpTextbox1.value.search(/\{\{Löschantragstext\|/) != -1) {
     return true;
   }
 
   return false;
 }
 // </nowiki>