Benutzer:Sargoth/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
// Ursprünglich eine Kopie von [[Benutzer:DerHexer/addotrs.js]]
//
// Modernisiert, erweitert und anderweitig verwurstet

/** extract a URL parameter from the current URL 
 * From [[en:User:Lupin/autoedit.js]]
 *
 * paramName  : the name of the parameter to extract
 */
function getParamValue(paramName) 
{
  url = document.location.href;
  var cmdRe=RegExp( '[&?]' + paramName + '=([^&]*)' );
  var m=cmdRe.exec(url);
  if (m) 
  {
    try 
    {
      return decodeURIComponent(m[1]);
    } 
    catch (someError) 
    {
    }
  }
  return null;
}

if(!usersignature) 
  var usersignature = "\~\~\~\~";

var monthnames = new Array('Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember');
 
// 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);

function add_otrs(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'));
 
    if (type == 0)
      location.href = "http://de.wikipedia.org/w/index.php?title=" + linktoaddotrs + "&action=edit&otrs-subst=true";
    else
      location.href = "http://de.wikipedia.org/w/index.php?title=" + linktoaddotrs + "&action=edit&otrs-nosubst=true";
  } else {
    add_otrs2(type);
  }
}

function add_otrsaufschub() 
{
  if (wgAction != 'edit')
    location.href = "http://de.wikipedia.org/w/index.php?title=" + encodeURIComponent(mw.config.get('wgPageName')) + "&action=edit&otrsaufschub=true";
  else
    add_otrsaufschub2();
}
 
function add_otrs2(type) 
{
  var counter = 0;
  while(counter != 3) 
  {
    var ticketnummer=prompt('Ticketnummer:','').trim();
    if (ticketnummer.search(/[^\d] /) == -1) 
    {
      counter = 3;

      var otrs_datum = ticketnummer.match(/\b(\d{4})(\d{2})(\d{2})/);
      var otrsyear = RegExp.$1;
      var otrsmonth = RegExp.$2;
      var otrsday = RegExp.$3;

      if(otrsday.search(/0[0-9]/)!=-1) 
        otrsday = otrsday.match(/0([0-9])/)[1];
      if(otrsmonth.search(/0[0-9]/)!=-1) 
        otrsmonth = monthnames[parseInt(otrsmonth.match(/0([0-9])/)[1])-1]; 
      else
        otrsmonth = monthnames[parseInt(otrsmonth)-1]; 

      if ((wgNamespaceNumber == 1) || (wgNamespaceNumber == 3))
      {
        // OTRS für Texte

        otrs_text = "{"+"{subst:OTRS-Freigabe|" + otrsday + ". " + otrsmonth + " " + otrsyear + "|" + 
                    ticketnummer + "|" + usersignature + "}"+"}";

        document.editform.wpSummary.value = "OTRS-Freigabe";
        document.editform.wpWatchthis.checked=false;

        var text = document.editform.wpTextbox1.value;
        document.editform.wpTextbox1.value = otrs_text + '\n' + text;
      } else {
        // OTRS für Bilder

        if (type == 0)
          // Nach Löschung mit subst: und review
          otrs_text = "{"+"{subst:OTRS-review|" + otrsday + ". " + otrsmonth + " " + otrsyear + "|" + ticketnummer + "|" + usersignature + "}"+"}";
        else
          // Ohne Löschung brauchts kein review
          otrs_text = "{"+"{OTRS|" + otrsday + ". " + otrsmonth + " " + otrsyear + "|" + ticketnummer + "|" + usersignature + "}"+"}";

        document.editform.wpSummary.value = "OTRS-Freigabe";
        document.editform.wpWatchthis.checked=false;

        var foundduep = false;
        var text = document.editform.wpTextbox1.value;
        if(text.search(/Datei\überpr\üfung/)!=-1 || text.search(/D\ÜP/)!=-1) 
          foundduep = true;

        var replacedlicence = text.match(/\|Genehmigung\s?\=([^\n]*)(\n)/);
        replacedlicence = RegExp.$2.toString()+RegExp.$1.toString();
        text = text.replace(/\|Genehmigung\s?\=[^\n]*/, "|Genehmigung = " + otrs_text)
        text = text.replace(/\{\{Datei\überpr\üfung[^\n]*\n/g, '');
        text = text.replace(/\{\{[lL]\öschen[^\n]*\(CE[S]?T\)\s*/g, '');
        text = text.replace(/\{\{[lL]\öschen[^\}\n]*\}\}\b/g, '');
        text = text.replace(/\{\{SLA[^\n]*\(CE[S]?T\)\s*/g, '');
        text = text.replace(/\{\{SLA[^\}\n]*\}\}\s*/g, '');
        text = text.replace(/\{\{D\ÜP[^\n]*\(CE[S]?T\)\s*/g, '');
        text = text.replace(/\{\{D\ÜP[^\}\n]*\}\}\s*/g, '');
        if(foundduep) 
          text = text.replace(/(\n)\}\}(\n)/, '$1$2');

        text = text.replace(/\=\=[^\n]*Verwendung[^\n]des[^\n]Bildes[^\*]*(\*\[\[[^\]]*\]\])*\s*/g, '');
        text = text.replace(/\=\= Beschreibung, Quelle[^\n]*/,'');
        if (text.search(/\=\=.*Lizenz/)==-1)
          text = text +'\n'+replacedlicence;
        else 
          text = text.replace(/\=\=.*Lizenz[^\n]*/,replacedlicence.toString());

        document.editform.wpTextbox1.value = text;
      }
    } else {
      counter = counter + 1;
    } 	
  }
}
   
function add_otrsaufschub2() 
{
  var counter = 0;
  while(counter != 3) 
  {
    var ticketnummer=prompt('Ticketnummer:','');
    if (ticketnummer.search(/[^\d] /) == -1) 
    {
      counter = 3;
      var otrsaufschub_text = "{"+"{Dateiüberprüfung (OTRS ausstehend)|" + ticketnummer + "}"+"} " + usersignature;

      document.editform.wpSummary.value = "OTRS-Aufschub";
      document.editform.wpWatchthis.checked=false;

      var text = document.editform.wpTextbox1.value;
      document.editform.wpTextbox1.value = otrsaufschub_text + '\n' + 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;
}