Benutzer:SpielefreakJ/common.js

Aus PokéWiki
Zur Navigation springen Zur Suche springen

Hinweis: Leere nach dem Speichern 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: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Extras → Internetspuren löschen … → Individuelle Auswahl → Den kompletten Cache löschen
  • Konqueror: Aktualisieren anklicken oder F5 drücken
// Die Skripte stammen ab hier von Jones, der sie von Shadowtweaker hat, sie wurden jedoch angepasst und personalisiert: Vielen Dank an der Stelle!

/*
####################################### Shortlinks für den SearchInput #######################################
# Beim Suchfeld in der Sidebar kann es nervig sein, andauernd "PokéWiki:" oder "Benutzer:" tippen zu müssen. #
# Mit diesem Code muss nicht mehr der ganze Text eingegeben werden, sondern es reichen Shortlinks:           #
#   "B:" wird umgewandelt in "Benutzer:"                                                                     #
#   "BD:" wird umgewandelt in "Benutzer Diskussion:"                                                         #
#   "D:" wird umgewandelt in "Datei:"                                                                        #
#   "DD:" wird umgewandelt in "Datei Diskussion:"                                                            #
#   "H:" wird umgewandelt in "Hilfe:"                                                                        #
#   "HD:" wird umgewandelt in "Hilfe Diskussion:"                                                            #
#   "K:" wird umgewandelt in "Kategorie:"                                                                    #
#   "KD:" wird umgewandelt in "Kategorie Diskussion:"                                                        #
#   "M:" wird umgewandelt in "MediaWiki:"                                                                    #
#   "MD:" wird umgewandelt in "MediaWiki Diskussion:"                                                        #
#   "P:" wird umgewandelt in "PokéWiki:"                                                                     #
#   "PD:" wird umgewandelt in "PokéWiki Diskussion:"                                                         #
#   "S:" wird umgewandelt in "Spezial:"                                                                      #
#   "T:" wird umgewandelt in "Diskussion:"                                                                   #
#   "V:" wird umgewandelt in "Vorlage:"                                                                      #
#   "VD:" wird umgewandelt in "Vorlage Diskussion:"                                                          #
# Der Code überprüft das Suchfeld jede Sekunde und ersetzt ggf. den Text.                                    #
# Dabei wird Groß- und Kleinschreibung ignoriert und der Shortlink muss am Anfang stehen.                    #
############################################################################################################## */
var shortlinks = window.setInterval("replaceshortlinks()", 1000);
function replaceshortlinks()
{
  if (Math.floor(($("#searchInput").val().indexOf(":")+1)/2) == 1) {
    var text = $("#searchInput").val();
    text = text.replace(/^[BbUu]:/, "Benutzer:");
    text = text.replace(/^[BbUu][DdTt]:/, "Benutzer Diskussion:");
    text = text.replace(/^[Dd]:/, "Datei:");
    text = text.replace(/^[Dd][DdTt]:/, "Datei Diskussion:");
    text = text.replace(/^[Hh]:/, "Hilfe:");
    text = text.replace(/^[Hh][DdTt]:/, "Hilfe Diskussion:");
    text = text.replace(/^[Kk]:/, "Kategorie:");
    text = text.replace(/^[Kk][DdTt]:/, "Kategorie Diskussion:");
    text = text.replace(/^[Mm]:/, "MediaWiki:");
    text = text.replace(/^[Mm][DdTt]:/, "MediaWiki Diskussion:");
    text = text.replace(/^[Pp]:/, "PokéWiki:");
    text = text.replace(/^[Pp][DdTt]:/, "PokéWiki Diskussion:");
    text = text.replace(/^[Ss]:/, "Spezial:");
    text = text.replace(/^[Tt]:/, "Diskussion:");
    text = text.replace(/^[Vv]:/, "Vorlage:");
    text = text.replace(/^[Vv][DdTt]:/, "Vorlage Diskussion:");
    $("#searchInput").val(text);
  }
}


/*
####################### Einzelnen Benutzer in den letzten Änderungen ausblenden ############################
# Wenn ein einzelner Benutzer sehr viele Bearbeitungen in kurzer Zeit tätigt, kann es nützlich sein,       #
# wenn man die Möglichkeit hat, diesen Benutzer in den Letzten Änderungen vorübergehend auszublenden.      #
# In MediaWiki kann man nur sich selbst ausblenden, mit diesem Code aber jeden beliebigen Benutzer.        #
# Dazu muss in den Letzten Änderungen einfach "?hideuser=<Benutzername>" hinten an die URL gehängt werden. #
############################################################################################################ */
if (mw.config.get("wgPageName") == "Spezial:Letzte_Änderungen") {
  if (window.location.href.indexOf("hideuser=") > 0) {
    var hideuser = window.location.href.substring(window.location.href.indexOf("hideuser=")+9);
    hideuser = hideuser.replace(/(\?|\&).*/, "");
    var listofcontribs = $(".mw-userlink");
    for (var i=0;i<listofcontribs.length;i++) {
      if (listofcontribs[i].innerHTML.replace(" ","_") == hideuser) { listofcontribs[i].parentNode.style.display = "none"; }
    }
  }
}

// Top Bar (Links)
// Filb in neuem Tab
$("#gl-topbar-f").find("a").attr("target", "_blank");

//Top Bar (rechts)
// LÄ zwischen Beobachtete Seiten und Beiträge
$("#pt-watchlist").after('<li><a id="rc" href="/Spezial:Letzte_Änderungen?hidebots=1&limit=250" title="Letzte Änderungen">Letzte Änderungen</a></li>')

// Top Bar (Rechts)
// Beobachtete Seiten -> LÄ
$("#pt-watchlist").after('<li><a id="rc" href="/Spezial:Beobachtungsliste?days=900&hidebots=1&hidemyself=1" title="Beobachtung">Beobachtung</a></li>');

// Top Bar (Rechts)
// Beobachtete Seiten -> To-Do
$("#pt-watchlist").replaceWith('<li><a id="rc" href="/Benutzer:SpielefreakJ/To-Do" title="To-Do">To-Do</a></li>');

// Änderungen an der LÄ Seite (Rest im CSS)
// Kommentar und Benutzer eine Zeile tiefer
$(".mw-special-Recentchanges .comment, .mw-special-Recentchanges .mw-userlink").before("<br />");
// Aktuelles über Tabelle
//$(".rcoptions").after("<div id=\"rc-aktuelles\" class=\"center\">"+$("#recentchanges-news").html()+"</div>");

// Test
$(function() {
  toggleInit();
});


/* Code bei SpielefreakJ
#################### Aktualisierung der LÄ per URL ##########################################
# Untenstehender Code bewirkt, dass die Letzten Änderungen regelmäßig aktualisiert werden. #
# Die Aktualisierung erfolgt alle 30 Sekunden.                                            #
############################################################################################ */
if (mw.config.get("wgPageName") == "Spezial:Letzte_Änderungen")
{
  if (window.location.href.indexOf("reload=1") > 0 || window.location.href.indexOf("reload=true") > 0) 
    {
      var sekunden = 120;
      var count = window.setInterval("countdown()", 1000);
      var loading = false;
      function countdown()
        {
          sekunden--;
          if (sekunden <= 0 && $("#searchInput").val() == "" && !loading) { loading = true; location.reload(); }
        }
    }
}


/* Nun hab ich hier Code, den ich bei Ryu fand */

// Import von HotCat
mw.loader.load("https://commons.wikimedia.org/w/index.php?title=MediaWiki:Gadget-HotCat.js&action=raw&ctype=text/javascript&maxage=604800",
               "text/javascript"); // Lädt HotCat aus Commons

/*
################################################# Liste von Artikeln abarbeiten ####################################################
# Dieses JavaScript ist hilfreich dabei, wenn man viele Artikel nacheinander abarbeiten muss.                                      #
# Drückt man Strg + Ö, öffnet sich ein Dialogfenster, in das man eine Liste von Artikel eingibt.                                   #
# Hierbei trennt man verschiedene Artikel mit einem senkrechten Strich | voneinander.                                              #
# Diese Zeichenkette wird in den Cookies gespeichert.                                                                              #
# ACHTUNG: Ist die Artikelliste zu lang, werden die Login-Cookies überschrieben und der Benutzer wird ausgeloggt!                  #
# Drückt man Strg + Ä, erscheint ein Ja/Nein-Dialog, ob das Abarbeiten der Liste gestartet werden soll.                            #
# Bei "Ja" gelangt man zum Quelltext des ersten Artikels und kann mit dem Bearbeiten loslegen.                                     #
# Sobald die Seite gespeichert wurde, wird man zum Quelltext des nächsten Artikels weitergeleitet, bis die Liste abgearbeitet ist. #
# Mit Strg + Ä und dem Auswählen von "Nein" kann man pausieren und das Abarbeiten kann später fortgesetzt werden.                  #
# Vorteile: Dadurch, dass man sofort den Quelltext einer Seite abruft, spart man nicht nur Zeit,                                   #
# sondern auch der Server wird weniger belastet.                                                                                   #
# Man muss nicht jedes Mal schauen, welcher Artikel als nächstes dran ist, sondern wird automatisch weitergeleitet.                #
#################################################################################################################################### */
var listactive = false;
var listcountdown = window.setInterval("listkeydown()", 1000);
function listkeydown() {
  document.onkeydown=listwindow;
}
function listwindow(e) {
  if (!e) e=window.event;
  //Start Find & Replace (ist hier nochmal eingebaut, da es sonst überschrieben werden würde)
  if (e.keyCode==73 && e.ctrlKey) {
    if (wgAction == "submit" || wgAction == "edit" || wgPageName == "Spezial:Vorlagen_expandieren") {
      var findtext = /null/;
      findtext.compile(prompt('Text, der gefunden werden soll:'), "g");
      var replacetext = prompt('Text, der eingesetzt werden soll:');
      replacetext = replacetext.replace(/\\n/g, "\n");
      if (findtext != /null/ && replacetext != null) {
        if (wgPageName == "Spezial:Vorlagen_expandieren") {
          document.getElementById("input").value = document.getElementById("input").value.replace(findtext, replacetext);
        }
        else {
          document.getElementById("wpTextbox1").value = document.getElementById("wpTextbox1").value.replace(findtext, replacetext);
        }
      }
    }
    else {
      alert("Du musst erst auf „Bearbeiten“ klicken!");
    }
  }
  //Ende Find & Replace
  //Liste erzeugen (Strg + ö)
  if (e.keyCode==192 && e.ctrlKey) {
    articlelist = prompt('Liste von Artikeln (verschiedene Artikel durch | trennen):');
    document.cookie = "list="+articlelist;
  }
  //Liste abarbeiten (Strg + ä)
  if (e.keyCode==222 && e.ctrlKey) {
    if (confirm("Abarbeiten der Liste starten?") == true) {
      listactive = true;
      document.cookie = "listactive=true";
      nextarticle = document.cookie.substring(document.cookie.indexOf("list=")+5);
      nextarticle = nextarticle.substring(0, nextarticle.indexOf("|"));
      if (nextarticle != "") {
        window.location.href = "https://pokewiki.de/index.php?action=edit&title="+nextarticle;
      }
      else {
        listactive = false;
        document.cookie = "listactive=false";
        alert("Liste wurde erfolgreich abgearbeitet!");
      }
    }
    else {
      listactive = false;
      document.cookie = "listactive=false";
    }
  }
  //Artikel überspringen (Strg + ü)
  if (e.keyCode==186 && e.ctrlKey) {
    if (confirm("Artikel überspringen?") == true) {
      listactive = true;
      document.cookie = "listactive=true";
      nextarticle = document.cookie.substring(document.cookie.indexOf("list=")+5);
      if (nextarticle.indexOf("|") > -1) nextarticle = nextarticle.substring(0, nextarticle.indexOf("|"));
      if (nextarticle.indexOf(";") > -1) nextarticle = nextarticle.substring(0, nextarticle.indexOf(";"));
      articlelist = document.cookie.substring(document.cookie.indexOf("list=")+5);
      if (articlelist.indexOf(";") > -1) articlelist = articlelist.substring(0, articlelist.indexOf(";"));
      document.cookie = "list="+articlelist.replace(nextarticle + "|", "");
      if (articlelist == nextarticle) {
        listactive = false;
        document.cookie = "listactive=false";
        document.cookie = "list=";
        alert("Liste wurde erfolgreich abgearbeitet!");
      }
      else {
        nextarticle = document.cookie.substring(document.cookie.indexOf("list=")+5);
        if (nextarticle.indexOf("|") > -1) nextarticle = nextarticle.substring(0, nextarticle.indexOf("|"));
        if (nextarticle.indexOf(";") > -1) nextarticle = nextarticle.substring(0, nextarticle.indexOf(";"));
        window.location.href = "https://pokewiki.de/index.php?action=edit&title="+nextarticle;
      }
    }
  }     
}

if (document.cookie.indexOf("listactive=true") >= 0) {
  nextarticle = document.cookie.substring(document.cookie.indexOf("list=")+5);
  if (nextarticle.indexOf("|") > -1) nextarticle = nextarticle.substring(0, nextarticle.indexOf("|"));
  if (nextarticle.indexOf(";") > -1) nextarticle = nextarticle.substring(0, nextarticle.indexOf(";"));
  if (wgPageName == nextarticle && wgAction == "view") {
    articlelist = document.cookie.substring(document.cookie.indexOf("list=")+5);
    if (articlelist.indexOf(";") > -1) articlelist = articlelist.substring(0, articlelist.indexOf(";"));
    document.cookie = "list="+articlelist.replace(wgPageName + "|", "");
    nextarticle = document.cookie.substring(document.cookie.indexOf("list=")+5);
    if (nextarticle.indexOf("|") > -1) nextarticle = nextarticle.substring(0, nextarticle.indexOf("|"));
    if (nextarticle.indexOf(";") > -1) nextarticle = nextarticle.substring(0, nextarticle.indexOf(";"));
    if (nextarticle != "") {
      window.location.href = "https://pokewiki.de/index.php?action=edit&title="+nextarticle;
    }
    else {
      listactive = false;
      document.cookie = "listactive=false";
      alert("Liste wurde erfolgreich abgearbeitet!");
    }
  }
}

// Quelle: [[Benutzer:T§/PurgePortlet.js]] und [[Benutzer:T§/PurgePortlet]], Autor ist T§.
if (mw.config.get('wgNamespaceNumber') > -1) {
 jQuery(document).ready(function() {
            mw.loader.using( [ 'mediawiki.util' ],
                             function () {
                  mw.util.addPortletLink( 'pw-menubar-views',
                                          mw.config.get( 'wgScript' ) +
                                          '?action=purge&title=' +
                                          mw.util.wikiUrlencode( mw.config.get( 'wgPageName' ) ),
                                          'Purge',
                                          'ca-purge',
                                          'Servercache dieser Seite leeren',
                                          null,
                                          null); //Alternativ '#t-pagelog' oder '#ca-watch'
                                         } );   // .using()
                                       } );   // .ready() 
}

// Quelle: [[Benutzer:T§/PurgePortlet.js]] und [[Benutzer:T§/PurgePortlet]], Autor ist T§.
if (mw.config.get('wgNamespaceNumber') > -1) {
 jQuery(document).ready(function() {
            mw.loader.using( [ 'mediawiki.util' ],
                             function () {
                  mw.util.addPortletLink( 'p-cactions',
                                          mw.config.get( 'wgScript' ) +
                                          '?action=purge&title=' +
                                          mw.util.wikiUrlencode( mw.config.get( 'wgPageName' ) ),
                                          'Purge',
                                          'ca-purge',
                                          'Servercache dieser Seite leeren',
                                          null,
                                          null); //Alternativ '#t-pagelog' oder '#ca-watch'
                                         } );   // .using()
                                       } );   // .ready() 
}