MediaWiki:Common.js

Vun Wikipedia

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
// MediaWiki Software: $ = jQuery;

// Utility
function $id(id) {
  return document.getElementById(id);
}
function $t(tag) {
  return document.getElementsByTagName(tag);
}

url = document.URL;
barnStar = "//upload.wikimedia.org/wikipedia/commons/a/a2/Tireless_Contributor_Barnstar.gif";

// [[Ajax (Programmierung)|Ajax]] import feature
mw.util.addCSS( '#interProject, #properTitle, #subTitle {display: none; speak: none;} .grayTitle, #grayTitle { color: #E9E9E9 ;}' );


window.impArr = ["NavBar", "pTitle", "sTitle", "sincere-visitor", "pt-login", "patrolLink", "markedPatrolled", "onlyRcID", "sidebar-bug"];
window.done = [];

function jsImp(i) {
  var script = document.createElement("script");
  script.type = "text/javascript";
  script.src = "/w/index.php?title=MediaWiki:If-"+impArr[i]+".js&action=raw&ctype=text/javascript&dontcountme=s";
  $t("head")[0].appendChild(script);
}

if (url.indexOf("&rcid=") > 0 && url.indexOf("action=") < 0 && url.indexOf("diff=") < 0) {
  jsImp(7);
}
if (url.indexOf("?diff=next&rcid=") > 0) {
  jsImp(5);
}

function ifID() {
  var impVar;
  var groupArray = '#'+mw.config.get( 'wgUserGroups' );
  for (var i = 0; i < impArr.length; i++) {
    varArr = impArr[i];
    if ($id(varArr)) {
      impVar = i;
    }
    if ($id("pTitle")) {
      $t("h1")[0].id = "grayTitle";
    }
    if (varArr == "sidebar-bug" && (groupArray.indexOf("sysop") > 0 && !$id("n-villagepump")) || window.name.indexOf("flushSidebar=") > -1) {
      impVar = i;
    }
    if (impVar == i) {
      jsImp(i);
    }
    if ($id("vorlachTitel")) { //rheifränggische Titel, vgl. [[Vorlach:Titel]]
      $(".firstHeading").empty().append($("#vorlachTitel"));
      $("#vorlachTitel").removeAttr("style"); //Unsichtbarkeit fort
      $("#vorlachTitel").attr('id', 'pTitle'); //braucht’s fer de Titel im Browserfenschter
    }
  }
}
$(document).ready(ifID);

function replaceInit() {
  if (mw.config.get( 'wgAction' ) == "edit" || mw.config.get( 'wgAction' ) == "submit") {
   $("#replace").html('(<a href="javascript:replaceFunc()">+/-<\/a>)');
  }
}
$(document).ready(replaceInit);

function replaceFunc() {
  searchPrompt = prompt("Gib zerscht y, was gsuecht werre soll (alt)!", "");
  if (searchPrompt != "" && searchPrompt != null) {
   replacePrompt = prompt("Gib jetz y, mit was ersätzt werre soll (nej)!", "");
   if (replacePrompt != "" && replacePrompt != null) {
    var editForm = document.editform.wpTextbox1;
    var regEx = new RegExp(searchPrompt, "g");
    editForm.value = editForm.value.replace(regEx, replacePrompt);
    alert("Dong!");
   }
  }
}

// [[BugZilla:18704]]
if (mw.config.get( 'wgCanonicalSpecialPageName' ) == "Recentchanges") {
  jQuery( document ).ready(function() {
  var nsinvert = $id("nsinvert").parentNode.parentNode.parentNode.getElementsByTagName("tr")[1];
  if (nsinvert && nsinvert.innerHTML.indexOf("tagfilter") > 0) {
   nsinvert.style.display = "none";
   nsinvert.previousSibling.firstChild.nextSibling.innerHTML += ' <input type="submit" value="Sueche" \/>';
  }
});
}

/**
 * Sortierung von Umlauten und ß auch ohne [[Vorlage:SortKey]] ermöglichen
 * For jquery.tablesorter.js
 */
mw.config.set( 'tableSorterCollation', {'Ä':'A', 'Ö':'O', 'Ü':'U', 'ä':'a', 'ö':'o', 'ü':'u', 'ß':'ss'} );


//*** Configuration for "star" logo in front of interwiki links to Featured Articles
//*** and green symbol in front of interwiki links to Good Articles
/** set in Special:Mypage/common.js to switch off this "feature"
mw.user.options.set( 'linkFA_enabled', false );
 * star logo for featured articles in other languages,
 * see Template:Link_FA / Template:Link_GA and MediaWiki:Common.css
 */
mw.loader.using( [ 'user', 'mediawiki.user', 'user.options' ], function() { $(function() {
    /** description that is displayed when cursor hovers above FA interwiki links */
    var linkFA_description = "Därdo Ardiggl is als bsunnaschd glunge gweerd worn.";
    var linkGA_description = "Därdo Ardiggl is als guud gweerd worn.";

    // linkFA_bullet/linkGA_bullet and linkFA_style/linkGA_Style wird nur für cologneblue verwendet,
    // für monobook, modern siehe [[MediaWiki:Common.css]], vector hat in [[MediaWiki:Vector.css]] eigene Definitionen

    /** image to use instead of the standard bullet (for cologneblue) */
    var linkFA_bullet = "//upload.wikimedia.org/wikipedia/commons/d/d0/Monobook-bullet-star-transparent.png";
    var linkGA_bullet = "//upload.wikimedia.org/wikipedia/commons/a/a1/Monobook-bullet-star-gray.png";

    /** style to use for the linkFA_bullet/LinkGA_bullet img */
    var linkFA_style = "margin-right: 0.2em;";
    var linkGA_style = "margin-right: 0.2em;";

    // early exit when disabled
    if ( !mw.user.options.get( 'linkFA_enabled', true ) ) {
        return;
    }

    /** skin == "monobook" || skin="modern" || skin== "vector" */
    function linkFA_CSS() {
        // links are to replaced in p-lang only
        var pLang = document.getElementById("p-lang");
        if (!pLang) return;
        var lis = pLang.getElementsByTagName("li");
        for (var i = 0; i < lis.length; i++) {
            var li = lis[i];
            //extract necessary classname
            var matches = li.className.match( /(?:^| )(interwiki-[^ ]+)(?: |$)/ );
            if ( !matches || matches.length != 2 ) {
                 continue;
            }
            var className = matches[1];
            // only links with a corresponding Link_FA template are interesting
            if (document.getElementById(className + "-fa") && li.className.indexOf("badge-featuredarticle") === -1) {
              li.className += " FA";         // additional class so the template can be hidden with CSS
              li.title = linkFA_description; // change title
              continue;
            }
            if (document.getElementById(className + "-ga") && li.className.indexOf("badge-goodarticle") === -1) {
              li.className += " GA";         // additional class so the template can be hidden with CSS
              li.title = linkGA_description; // change title
              continue;
            }
        }
    }

    /** skin == "cologneblue" */
    function linkFA_decorate() {
        // these root elements can contain FA-/GA-links
        var rootIds = new Array("topbar", "footer");
        for (var i=0; i<rootIds.length; i++) {
            var root    = document.getElementById(rootIds[i]);
            if (!root)  continue;

            // if the root exists, try to decorate all the links within
            var links   = root.getElementsByTagName("a");
            for (var j=0; j<links.length; j++) {
                decorate(links[j], "-fa", linkFA_bullet, linkFA_description, linkFA_style);
                decorate(links[j], "-ga", linkGA_bullet, linkGA_description, linkGA_style);
            }
        }
    }

    // skins that can be handled the CSS class way
    var skin = mw.config.get( 'skin' );
    if (skin === "monobook" || skin === "modern" || skin === "vector" ) {
        linkFA_CSS();
    }
    else if (skin === "cologneblue") {
        linkFA_decorate();
    }

    /** id necessary, modify a link to show the FA- or GA-star (older) */
    function decorate(link, idSuffix, bullet, description, style) {
        var lang    = link.hostname.split(".")[0];
        var fa      = document.getElementById("interwiki-" + lang + idSuffix);
        if (!fa)	return;

	// build an image-node for the FA-star
	var img = document.createElement("img");
	img.setAttribute("src",     bullet);
	img.setAttribute("alt",     description);
	img.setAttribute("style",   style);
	// decorate the link with the image
	link.appendChild(img);
	link.appendChild(link.removeChild(link.firstChild));
	link.setAttribute("title", description);
    }
})});


/**
 * Verwendung von OpenStreetMap in Wikipedia.
 * (c) 2008 by Magnus Manske, Released under GPL
 */
// The function to toggle
function openStreetMapToggle() {
  var c = $( '#coordinates' );
  if ( !c.length) {
   return;
  }
  var cs = $( '#contentSub' );
  var osm = $( '#openstreetmap' );

  if ( cs.length && osm.length ) {
   if ( osm.css( 'display' ) === 'none' ) {
    osm.css( 'display', 'block' );
   } else {
    osm.css( 'display', 'none' );
   }
   return false;
  }

  var found_link = false;
  var a = c.find( 'a' );
  var h;
  for (var i = 0; i < a.length; i++) {
   h = a[i].href;
   if (!h.match(/geohack/)) continue;
   found_link = true;
   break;
  }
  if ( !found_link ) {
   return; // No geohack link found
  }

  h = h.split('params=')[1];

  var url = 'http://toolserver.org/~kolossos/openlayers/kml-on-ol.php?lang=pfl&uselang='
          + mw.util.rawurlencode( mw.config.get( 'wgUserLanguage' ) )
          + '&params=' + h
          + '&title=' + mw.util.wikiUrlencode( mw.config.get( 'wgTitle' ) );
          + ( window.location.protocol == 'https:' ? '&secure=1' : '' ) ;
          
  var iframe = $( document.createElement( 'iframe' ) );
  iframe.attr( 'id', 'openstreetmap' );
  iframe.css({
   'width': '100%',
   'height': '350px',
   'clear': 'both'
  });
  iframe.attr( 'src', url );
  cs.append( iframe );
  return false;
}

//mediawiki.util is used by openStreetMapToggle
mw.loader.using( [ 'mediawiki.util' ], function() { $( function() {
  var c = $( '#coordinates' );
  if ( !c.length ) {
   return;
  }

  var a = c.find( 'a' );
  var geohack = false;
  for (var i = 0; i < a.length; i++) {
    var h = a[i].href;
    if (!h.match(/geohack/)) continue;
    if (h.match(/skyhack/)) continue;
    if (h.match(/_globe:/)) continue; // no OSM for moon, mars, etc
    geohack = true;
    break;
  }
  if ( !geohack ) {
   return;
  }

  var separator = $( document.createElement( 'span' ) );
  separator.text( ' | ' );
  separator.attr( 'class', 'noprint coordinates-separator' );
  c.append( separator );
  var img = $( document.createElement( 'img' ) );
  img.attr( {
   'src': '//upload.wikimedia.org/wikipedia/commons/thumb/c/c9/OpenStreetMapLogo.png/17px-OpenStreetMapLogo.png',
   'width': '17px',
   'height': '17px'
  } );
  var a = $( document.createElement( 'a' ) );
  a.attr( {
   'href': '#',
   'title': 'Zeig d Koordinate uf ere Charte vu OpenStreetMap',
   'class': 'noprint osm-icon-coordinates'
  } );
  a.click( openStreetMapToggle );
  a.append( img );
  c.append( a );
})});