Benutzer:GuandalugTest/addOTRS.js

aus Wikipedia, der freien Enzyklopädie

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
// Hilfsmittel für die OTRS-Queue-Abarbeitung
//
// Ursprungscode basierend auf [[Benutzer:DerHexer/addotrs.js]]
//
// Modernisiert, erweitert und anderweitig verwurstet
// durch [[Benutzer:Guandalug]]
//
// Letzte Änderung: jQuery-Nutzung (geplant, im Bau)

$i.extend({
  
  monthnames: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],

  // Some 'constants'
  C_OTRS:         0,
  C_OTRS_NOSUBST: 1,
  C_OTRS_DELAY:   2,

  addOTRS: function(type)
  {
    if (wgAction != 'edit')
    {
      if(wgNamespaceNumber == 0) 
        linktoaddotrs = 'Diskussion:'+encodeURIComponent(wgTitle);
      else if (wgNamespaceNumber == 2) 
        linktoaddotrs = 'Benutzer Diskussion:'+encodeURIComponent(wgTitle);
      else
        linktoaddotrs = encodeURIComponent(mw.config.get('wgPageName'));
 
      location.href = wgScript + "?title=" + linktoaddotrs + "&action=edit&otrs=" + type;
    } else {

      if (this.usersignature === undefined)
        this.usersignature = '\~\~\~\~';

      var counter = 0;
      while(counter != 3) 
      {
        var ticketnummer=prompt('Ticketnummer:','').trim();
        if (ticketnummer.search(/[^\d] /) == -1) 
        {
          counter = 3;

          var otrsyear  = ticketnummer.substr(0,4);
          var otrsmonth = this.monthnames[0 + ticketnummer.substr(4,2)];
          var otrsday   = 0 + ticketnummer.substr(6,2);

          if ((wgNamespaceNumber == 1) || (wgNamespaceNumber == 3) || (type == C_OTRS_DELAY))
          {
            // OTRS für Texte, auf der Diskussionsseite zu vermerken.
            // Entweder NS 1 (Diskussion) oder NS 3 (Benutzer Diskussion)
            //  oder
            // OTRS-Aufschub für Bilder

            if (type == C_OTRS_DELAY)
              $('#wpSummary').text("OTRS-Freigabe");
            else
              $('#wpSummary').text("OTRS-Aufschub");

            $('#wpWatchthis').attr('checked',false);

            if (type == C_OTRS_DELAY)
              $j['#wpTextbox1').text("{"+"{Dateiüberprüfung (OTRS ausstehend)|" + ticketnummer + "}"+"} " + this.usersignature + "\n" +
                                     $j['#wpTextbox1').text());
            else
              $j['#wpTextbox1').text("{"+"{subst:OTRS-Freigabe|" + otrsday + ". " + otrsmonth + " " + otrsyear + "|" + 
                                     ticketnummer + "|" + this.usersignature + "}"+"}\n" +
                                     $j['#wpTextbox1').text());
          } else {
            // OTRS für Bilder
            var fullReplace = true;
            $('#wpSummary').text("OTRS-Freigabe");
            $('#wpWatchthis').attr('checked',false);

            switch(type)
            {
              case C_OTRS: 
                // Nach Löschung mit subst: und review
                otrs_text = "{"+"{subst:OTRS-review|" + otrsday + ". " + otrsmonth + " " + otrsyear + "|" + ticketnummer + "|" + this.usersignature + "}"+"}"; 
                break;
              case C_OTRS_NOSUBST:
                // Ohne Löschung brauchts kein review
                otrs_text = "{"+"{OTRS|" + otrsday + ". " + otrsmonth + " " + otrsyear + "|" + ticketnummer + "|" + this.usersignature + "}"+"}";
                break;
            }

            var text = $('#wpTextbox1').text();

            text = text.replace(/\{\{Datei\überpr\üfung[^\r\n]*/g, '')
                       .replace(/\{\{[lL]\öschen[^\n]*\(CE[S]?T\)\s*/g, '')
                       .replace(/\{\{[lL]\öschen[^\}\n]*\}\}\b/g, '')
                       .replace(/\{\{SLA[^\n]*\(CE[S]?T\)\s*/g, '')
                       .replace(/\{\{SLA[^\}\n]*\}\}\s*/g, '')
                       .replace(/\{\{D\ÜP[^\n]*\(CE[S]?T\)\s*/g, '')
                       .replace(/\{\{D\ÜP[^\}\n]*\}\}\s*/g, '')
                       .replace(/\=\=[^\n]*Verwendung[^\n]des[^\n]Bildes[^\*]*(\*\[\[[^\]]*\]\])*\s*/g, '')
                       .replace(/\=\= Beschreibung, Quelle[^\n]*/,'');
 
            var replacedlicence = /\|Genehmigung\s*\=([^\r\n]*)/.exec(text);
            replacedlicence = replacedlicence[1].trim();
 
            text = text.replace(/\|Genehmigung(\s*)\=[^\r\n]*/, "|Genehmigung$1= " + otrs_text)

            if (text.search(/\=\=.*Lizenz/)==-1)
              text = text +'\n'+replacedlicence;
            else 
              text = text.replace(/\=\=.*Lizenz[^\n]*/,replacedlicence);

            $('#wpTextbox1').text(text)
          }
        } else {
          counter = counter + 1;
        } 	
      }
    }
  },

   
function add_license(vorlage)
{
  if (document.editform.wpTextbox1.value.search(/\=\=.*Lizenz/)==-1)
    document.editform.wpTextbox1.value += "\n\{\{"+vorlage+"\}\}";
  else 
    document.editform.wpTextbox1.value = document.editform.wpTextbox1.value.replace(/\=\=.*Lizenz[^\n]*/,"\n\{\{"+vorlage+"\}\}");
}

function add_template() 
{
  document.editform.wpTextbox1.value = 
     "{"+"{Information\n|Beschreibung=\n|Quelle=\n|Urheber=\n|Datum=\n|Genehmigung=\n|Andere Versionen=\n|Anmerkungen=\n}"+"}\n\n"+
     document.editform.wpTextbox1.value;
}


 
// OTRS gilt für Artikel (NS 0 / 1), Benutzer(unter)seiten (NS 2/3) und Bilder (NS 6)
if ((wgNamespaceNumber == 0)||(wgNamespaceNumber == 1)||
    (wgNamespaceNumber == 2)||(wgNamespaceNumber == 3)||
    (wgNamespaceNumber == 6))
{
  addOnloadHook(function() 
  { 
    var node = document.getElementById('t-whatlinkshere');
    if (skin == "vector")
      mw.util.addPortletLink('p-cactions', "javascript:add_otrs(0);", "OTRS", 't-otrs', 'OTRS-Freigabe nach Wiederherstellung', '');
    else
      mw.util.addPortletLink('p-tb', "javascript:add_otrs(0);", "OTRS", 't-otrs', 'OTRS-Freigabe nach Wiederherstellung', '', node);

    // Bei Bildern gibt es noch ein paar Optionen
    if (wgNamespaceNumber == 6)
    {
    if (skin == "vector")
    {
      mw.util.addPortletLink('p-cactions', "javascript:add_otrs(1);", "OTRS-nosubst", 't-otrsnosubst', 'OTRS-Freigabe eintragen ohne Botarbeit danach', '');
      mw.util.addPortletLink('p-cactions', "javascript:add_otrsaufschub();", "OTRS-Aufschub", 't-otrsaufschub', 'OTRS-Aufschub eintragen', '');
    } else {
      mw.util.addPortletLink('p-tb', "javascript:add_otrs(1);", "OTRS-nosubst", 't-otrsnosubst', 'OTRS-Freigabe eintragen ohne Botarbeit danach', '');
      mw.util.addPortletLink('p-tb', "javascript:add_otrsaufschub();", "OTRS-Aufschub", 't-otrsaufschub', 'OTRS-Aufschub eintragen', '');
    }
      if (wgAction == 'edit')
      {
        mw.util.addPortletLink('p-tb', "javascript:add_template();","{"+"{Information|..}"+"}", 't-otrs', 'Vorlage:Information eintragen', '',  node);
        mw.util.addPortletLink('p-tb', "javascript:add_license('Bild-CC-by-sa/3.0/de');", "+CC-by-sa", 't-ccbysa', 'Lizenz CC-by-sa eintragen', '',  node);
        mw.util.addPortletLink('p-tb', "javascript:add_license('Bild-GFDL-Neu');", "+GFDL", 't-bildgfdl', 'Lizenz Bild-GFDL-Neu eintragen', '',  node);
      }
    }
  });
}

if ((getParamValue("otrs-subst")== "true") && (wgAction=='edit'))
  window.setTimeout('add_otrs2(0)', 500);
else if ((getParamValue("otrs-nosubst")== "true") && (wgAction=='edit'))
  window.setTimeout('add_otrs2(1)', 500);
else if ((getParamValue("otrsaufschub") == "true")  && (wgAction=='edit'))
  window.setTimeout('add_otrsaufschub2()', 500);