MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus ÖsterreichWiki
Zur Navigation springen Zur Suche springen
(Änderung 187892 von Karl Gruber (Diskussion) rückgängig gemacht.)
(Erweiterung EditTools)
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 96: Zeile 96:
}
}
})});
})});
/**
* 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'} );


/**
/**
  * load the Edittools on [[Special:Upload]] and prefill the summary textarea
  * load the Edittools on [[Special:Upload]] and prefill the summary textarea
  * Load pages: [[MediaWiki:Onlyifuploading.js]], [[MediaWiki:Onlyifediting.js]]
  * Load pages: [[MediaWiki:Gadget-uploadtools.js]], [[MediaWiki:Onlyifediting.js]]
  */
  */
if (mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Upload') {
if (mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Upload') {
  importScript("MediaWiki:Onlyifuploading.js");
  mw.loader.load('ext.gadget.uploadtools');
  importScript("MediaWiki:Onlyifediting.js");
  mw.loader.load('/w/index.php?title=MediaWiki:Onlyifediting.js&action=raw&ctype=text/javascript');
}
}
 
/**
/**
  * load the Edittools ([[MediaWiki:Edittools]], the part under the edit form)
  * load the Edittools ([[MediaWiki:Edittools]], the part under the edit form)
  * Load page: [[MediaWiki:Onlyifediting.js]]
  * Load page: [[MediaWiki:Onlyifediting.js]]
  */
  */
if ( mw.config.get( 'wgAction' ) === 'edit' || mw.config.get( 'wgAction' ) === 'submit' ) {
/**
  importScript("MediaWiki:Onlyifediting.js");
*if ( mw.config.get( 'wgAction' ) === 'edit' || mw.config.get( 'wgAction' ) === 'submit' ) {
* mw.loader.load('/w/index.php?title=MediaWiki:Onlyifediting.js&action=raw&ctype=text/javascript');
*}
*/
if ( $.inArray( mw.config.get( 'wgAction' ), [ 'edit' , 'submit' ]) > -1
|| mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Upload'
) {
  importScript('MediaWiki:Edittools.js');
}
}
//NavigationBarShowDefault = 2; // Bis zu 10 Leisten ausklappen
//NavigationBarShowDefault = 2; // Bis zu 10 Leisten ausklappen
//================================================================================
//================================================================================

Aktuelle Version vom 30. Juli 2018, 16:35 Uhr

/* Das folgende JavaScript wird für alle Benutzer geladen. */
//================================================================================
//*** Dynamic Navigation Bars
 
// set up max count of Navigation Bars on page,
// if there are more, all will be hidden
// mw.user.options.set( 'NavigationBarShowDefault', 0 ); // all bars will be hidden
// mw.user.options.set( 'NavigationBarShowDefault', 1 ); // on pages with more than 1 bar all bars will be hidden
 
// adds show/hide-button to navigation bars
// using 'jquery.makeCollapsible': for messages
// using 'user', 'mediawiki.user', 'user.options': wait for overrides in user.js
mw.loader.using( [ 'mediawiki.util', 'jquery.makeCollapsible', 'user', 'mediawiki.user', 'user.options' ], function() { $(function() {
	// allow setting NavigationBarShowDefault
	var showDefaultCount = mw.user.options.get( 'NavigationBarShowDefault',
		typeof NavigationBarShowDefault !== 'undefined' ? NavigationBarShowDefault : 1 );
	// allow user overrides for b/c
	var textHide = typeof NavigationBarHide === 'string' ? NavigationBarHide : mw.msg( 'collapsible-collapse' );
	var textShow = typeof NavigationBarShow === 'string' ? NavigationBarShow : mw.msg( 'collapsible-expand' );
 
	// shows and hides content and picture (if available) of navigation bars
	// Parameters:
	//     indexNavigationBar: the index of navigation bar to be toggled
	function toggleNavigationBar(NavToggle, NavFrame)
	{
	   if (!NavFrame || !NavToggle) {
		   return false;
	   }
 
	   // if shown now
	   if (NavToggle.firstChild.data === textHide) {
		   for (
				   var NavChild = NavFrame.firstChild;
				   NavChild !== null;
				   NavChild = NavChild.nextSibling
			   ) {
			   if (NavChild.className === 'NavPic') {
				   NavChild.style.display = 'none';
			   }
			   if (NavChild.className === 'NavContent') {
				   NavChild.style.display = 'none';
			   }
			   if (NavChild.className === 'NavToggle') {
				   NavChild.firstChild.data = textShow;
			   }
		   }
 
	   // if hidden now
	   } else if (NavToggle.firstChild.data === textShow) {
		   for (
				   var NavChild = NavFrame.firstChild;
				   NavChild !== null;
				   NavChild = NavChild.nextSibling
			   ) {
			   if (NavChild.className === 'NavPic') {
				   NavChild.style.display = 'block';
			   }
			   if (NavChild.className === 'NavContent') {
				   NavChild.style.display = 'block';
			   }
			   if (NavChild.className === 'NavToggle') {
				   NavChild.firstChild.data = textHide;
			   }
		   }
	   }
	}
 
	function toggleNavigationBarFunction(NavToggle, NavFrame) {
		return function() {
			toggleNavigationBar(NavToggle, NavFrame);
			return false;
		};
	}
	// iterate over all NavFrames
	var NavFrames = mw.util.$content.find( 'div.NavFrame' );
 
	// if more Navigation Bars found and not template namespace than Default: hide all
	var initiallyToggle	= showDefaultCount < NavFrames.length && mw.config.get( 'wgNamespaceNumber' ) !== 10;
	for (var i=0;  i<NavFrames.length; i++) {
		var NavFrame = NavFrames[i];
		var NavToggle = document.createElement("a");
		NavToggle.className = 'NavToggle';
		NavToggle.setAttribute('href', '#');
 
		var NavToggleText = document.createTextNode(textHide);
		NavToggle.appendChild(NavToggleText);
 
		// add NavToggle-Button as first div-element
		// in < div class="NavFrame" >
		NavFrame.insertBefore(NavToggle, NavFrame.firstChild);
 
		NavToggle.onclick = toggleNavigationBarFunction(NavToggle, NavFrame);
		if (initiallyToggle) {
			toggleNavigationBar(NavToggle, NavFrame);
		}
	}
})});

/**
 * 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'} );

/**
 * load the Edittools on [[Special:Upload]] and prefill the summary textarea
 * Load pages: [[MediaWiki:Gadget-uploadtools.js]], [[MediaWiki:Onlyifediting.js]]
 */
if (mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Upload') {
 mw.loader.load('ext.gadget.uploadtools');
 mw.loader.load('/w/index.php?title=MediaWiki:Onlyifediting.js&action=raw&ctype=text/javascript');
}

/**
 * load the Edittools ([[MediaWiki:Edittools]], the part under the edit form)
 * Load page: [[MediaWiki:Onlyifediting.js]]
 */
/** 
*if ( mw.config.get( 'wgAction' ) === 'edit' || mw.config.get( 'wgAction' ) === 'submit' ) {
* mw.loader.load('/w/index.php?title=MediaWiki:Onlyifediting.js&action=raw&ctype=text/javascript');
*}
*/
 
if ( $.inArray( mw.config.get( 'wgAction' ), [ 'edit' , 'submit' ]) > -1
	|| mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Upload'
) {
 importScript('MediaWiki:Edittools.js');
}

//NavigationBarShowDefault = 2; // Bis zu 10 Leisten ausklappen
//================================================================================

/** Skript für [[Vorlage:Galerie]] */
jQuery( document ).ready(function() {
  if (document.URL.match(/printable/g)) return;

  function toggleImageFunction(group,  remindex, shwindex) {
    return function() {
      document.getElementById("ImageGroupsGr" + group + "Im" + remindex).style["display"] = "none";
      document.getElementById("ImageGroupsGr" + group + "Im" + shwindex).style["display"] = "block";
      return false;
    };
  }

  var divs = document.getElementsByTagName("div");
  var i = 0, j = 0;
  var units, search;
  var currentimage;
  var UnitNode;
  for (i = 0; i < divs.length; i++) {
    if (divs[i].className !== "ImageGroup") { continue; }
    UnitNode = undefined;
    search = divs[i].getElementsByTagName("div");
    for (j = 0; j < search.length; j++) {
      if (search[j].className !== "ImageGroupUnits") { continue; }
      UnitNode=search[j];
      break;
    }
    if (UnitNode === undefined) { continue; }
    units = [];
    for (j = 0 ; j < UnitNode.childNodes.length ; j++ ) {
      var temp = UnitNode.childNodes[j];
      if (temp.className === "center") { units.push(temp); }
    }
    var rightlink = undefined;
    var commentText = undefined;
    for (j = 0; j < units.length; j++) {
      currentimage = units[j];
      currentimage.id = "ImageGroupsGr" + i + "Im" + j;
      var leftlink = document.createElement("a");
      if (commentText !== undefined) {
        leftlink.setAttribute("title", commentText);
      }
      var comment;
      if (typeof(currentimage.getAttribute("title")) !== "string") {
        commentText = (j+1) + "/" + units.length;
        comment = document.createElement("tt").appendChild(document.createTextNode("("+ commentText + ")"));
      } else {
        commentText = currentimage.getAttribute("title");
        comment = document.createElement("span").appendChild(document.createTextNode(commentText));
        currentimage.removeAttribute("title");
      }
      if(rightlink !== undefined) {
        rightlink.setAttribute("title", commentText);
      }
      var imghead = document.createElement("div");
      rightlink = document.createElement("a");
      if (j !== 0) {
        leftlink.href = "#";
        leftlink.onclick = toggleImageFunction(i, j, j-1);
        leftlink.appendChild(document.createTextNode("◀"));
      }
      if (j !== units.length - 1) {
        rightlink.href = "#";
        rightlink.onclick = toggleImageFunction(i, j, j+1);
        rightlink.appendChild(document.createTextNode("▶"));
      }
      imghead.style["fontSize"] = "110%";
      imghead.style["fontweight"] = "bold";
      imghead.appendChild(leftlink);
      imghead.appendChild(document.createTextNode("\xA0"));
      imghead.appendChild(comment);
      imghead.appendChild(document.createTextNode("\xA0"));
      imghead.appendChild(rightlink);
      if (units.length > 1) {
        currentimage.insertBefore(imghead,currentimage.childNodes[0]);
      }
      if (j !== 0) {
        currentimage.style["display"] = "none";
      }
    }
  }
});

/**
 * Fügt eine Betreffzeile auf leeren Artikel-Diskussionsseiten ein
 */
if( mw.config.get( 'wgNamespaceNumber' ) === 0 || mw.config.get( 'wgNamespaceNumber' ) === 1 ) {
 $(function() {
  $( '#ca-talk.new a' ).attr( 'href', function( index, attr ) {
   return attr + '&section=new';
  });
 });
}

/**
 * Lokaler Dateidiskussionsseitenlink eines Commonsbildes verweist nach Commons
 */
if (mw.config.get( 'wgNamespaceNumber' ) === 6) {
 mw.loader.using( [ 'mediawiki.util', 'user', 'mediawiki.user' ], function() { $( function() { //wait for overrides in user.js
	if ( mw.config.get( 'keepLocalFileTabs', false ) ) {
		return;
	}
	if ( $( '#ca-history' ).length ) {
		return; //Lokale Dateibeschreibung vorhanden?
	}
	if ( !$( 'div.sharedUploadNotice' ).length ) {
		return; //Nur bei Commons-Bildern
	}

	var path = '//commons.wikimedia.org/wiki/';

	// Ändere Link auf Diskussionsseite
	var talkLink = $( '#ca-talk.new a' );
	talkLink.attr( 'href', path + 'File_talk:' + mw.util.wikiUrlencode( mw.config.get( 'wgTitle' ) ) + '?uselang=' + mw.util.rawurlencode( mw.config.get( 'wgUserLanguage' ) ) );
	talkLink.addClass( 'commonstab' );

	// Ändere Bearbeiten-Link
	var editLink = $( '#ca-edit a, #ca-viewsource a' );
	editLink.attr( 'href', path + 'File:' + mw.util.wikiUrlencode( mw.config.get( 'wgTitle' ) ) + '?action=edit&uselang=' + mw.util.rawurlencode( mw.config.get( 'wgUserLanguage' ) ) );
	editLink.addClass( 'commonstab' );
	editLink.text( 'Bearbeiten' );
 })});
}

/**
 * Fügt bei SVG-Grafiken Links zu gerenderten PNGs in verschiedenen Breiten hinzu
 */
if (mw.config.get( 'wgNamespaceNumber' ) === 6) {
 $( function() {
  var file = $( '#file' ); // might fail if MediaWiki can't render the SVG
  if( file.length && mw.config.get( 'wgIsArticle' ) && mw.config.get( 'wgTitle' ).match( /\.svg$/i ) ) {
   var thumbsrc = file.find( 'img' ).attr( 'src' );
   if( !thumbsrc ) {
    return;
   }

   var svgAltSize = function( w, title ) {
    var path = thumbsrc.replace( /\/\d+(px-[^\/]+$)/, "/" + w + "$1" );
    var a = $( document.createElement("a") );
    a.attr( 'href', path );
    a.text( title );
    return a;
   };

   var p = $( document.createElement("p") );
   p.addClass( "SVGThumbs" );
   p.append( document.createTextNode( "Aus SVG automatisch erzeugte PNG-Grafiken in verschiedenen Auflösungen"+": " ) );
   var l = [ 200, 500, 1000, 2000 ];
   for( var i = 0; i < l.length; i++ ) {
    if( i !== 0 ) {
     p.append( document.createTextNode( ", " ) );
    }
    p.append( svgAltSize( l[i], l[i] + "px" ) );
   }
   p.append( document.createTextNode( "." ) );
   $( file.parent() ).find( 'div.fullMedia' ).append( p );
  }
 });
}

/**
 * Ändere den Spenden-Link im Sidebar für Besucher aus Deutschland
 */
$( function() {
 if ( typeof( Geo ) === "object" && Geo.country === 'DE' && mw.config.get( 'wgUserLanguage' ) === 'de' ) {
  var baseUrl = 'https://spenden.wikimedia.de/';
  var queryString = $.param({
      'piwik_campaign': 'de.wikipedia.org',
      'piwik_kwd': 'sidebar',
      'language': mw.config.get( 'wgUserLanguage' ),
      'country': Geo.country
  });
  $("#n-sitesupport a").attr("href", baseUrl + '?' + queryString);
 }
});

/**
 * erzeuge einen "Neuen Abschnitt"-Link an der letzten Überschrift
 */
mw.loader.using( [ 'jquery.accessKeyLabel' ], function() { $( function() {
 var newSectionLink = $( '#ca-addsection a' );
 if( newSectionLink.length ) {
  var link = newSectionLink.clone(); //create a copy
  //avoid duplicate accesskey
  link.removeAttr( 'accesskey' ).updateTooltipAccessKeys();
  //add it within the brackets
  var lastEditsectionLink = $( 'span.mw-editsection:last a:last' );
  lastEditsectionLink.after( link );
  lastEditsectionLink.after( ' | ' ); //see [[MediaWiki:Pipe-separator]]
 }
})});

/**
 * Entferne [[Vorlage:Anker]] aus der Zusammenfassungszeile,
 * damit diese beim generieren der Auto-Zusammenfassung nicht das Linkziel mit beeinflusst
 */
if ( mw.config.get( 'wgAction' ) === 'edit' ) {
 $( function() {
  $( '#wpSummary' ).val( function( i, val ) {
   //Nur aktiv werden, wenn es auch eine Autozusammenfassung gibt
   if( val.length <= 2 || val.substring( 0, 2 ) !== '/*' ) {
    return val;
   }
   return val.replace( /\{\{[\s_]*:?[\s_]*(?:(?:Template|Vorlage)[\s_]*:[\s_]*)?Anker[\s_]*\|[^}]*\}\}\s*/gi, '' );
  });
 });
}

// Fix für gecachte Seite, damit Anons den Teestubeb-Link sehen. 
// Kann ab dem 20.10.2015 wieder enfernt werden
if ( mw.config.get( 'wgUserName' ) === null /* inlined mw.user.isAnon() */ ) {
	mw.loader.load("ext.gadget.teahouse");
}