MediaWiki:Common.js

Z Wikiźródeł, wolnej biblioteki

Uwaga: aby zobaczyć zmiany po opublikowaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.

  • Firefox / Safari: Przytrzymaj Shift podczas klikania Odśwież bieżącą stronę, lub naciśnij klawisze Ctrl+F5, lub Ctrl+R (⌘-R na komputerze Mac)
  • Google Chrome: Naciśnij Ctrl-Shift-R (⌘-Shift-R na komputerze Mac)
  • Internet Explorer / Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5
  • Opera: Naciśnij klawisze Ctrl+F5.
/* Umieszczony tutaj kod JavaScript zostanie załadowany przez każdego użytkownika, podczas każdego ładowania strony. */
/* Skrypt sprzątający śmieci pozostające w VE */
mw.hook( 've.activate' ).add( function() {
		/* użytkownik edytuje właśnie w VE */
		/* poprawka dla Skrypt odpowiedzialny za wyświetlanie
		szablonu Nagłówek -> usuwa stopke podczas edycji */
		var elem = document.getElementById("mojaStopka");
		if (elem) {
			elem.parentElement.removeChild(elem);
		}
} );
/* Koniec skryptu sprzątającego śmieci w VE */

/* Skrypt łatający błąd zgłoszony na https://phabricator.wikimedia.org/T206190 */
if( $.inArray( mw.config.get('wgArticleId'), [ /* 20210518 */ 758170 ] ) !== -1 ){
	$(".prp-page-image img").attr("src", function(i, origValue){
		return origValue.replace("878px","877px") /* .replace("1024px","1023px") */ ;
	});
}
/* Koniec skryptu łatającego błąd T206190 */

jQuery(document).ready(function() {
/* Skrypt odpowiedzialny za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */
	var hideAll = document.getElementById('mojNaglowekUryj');
	var noFooter = false;
	var footers = 0;

	var tags = document.getElementsByTagName('div');
	for (var i = 0; i < tags.length; i++) {
		var el=tags[i].getAttribute("id");
		if (el=='mojaStopka')
			footers++;
		else if (hideAll && (el=='mojNaglowek')) {
			tags[i].innerHTML="";
			noFooter=true;
		}
	}
	if (noFooter) return;

	var footer = document.getElementById('mojaStopka');
	if ((footer !== null) && (footers==1)) {
		var content = document.getElementById('content');
		if (content !== null) {
			var s0=document.getElementById('mojaStopka0');
			var s1=document.getElementById('mojaStopka1');
			if ((s1 !== null) ||
			    ((s0 === null) && (content.innerHTML.length>8000)))
				 content.appendChild(footer);
		}
	}

/* Koniec skryptu odpowiedzialnego za wyświetlanie szablonu Nagłówek [[Szablon:Nagłówek]] */

/**
 * Hide prefix in category
 * @source www.mediawiki.org/wiki/Snippets/Hide_prefix_in_category
 * @rev 5
 * @author: Krinkle
 * adapt for pl ws Zdzislaw
 */
 
	var prefix = $.trim( $( '#mw-cat-hideprefix' ).text() );
	if ( prefix !== '' ) {
		$( '#mw-pages' ).find( 'a' ).text( function ( i, val ) {
		    return val.slice( 0, prefix.length ) === prefix ? val.slice( prefix.length ) : val;
		} );
	}
/* Koniec skryptu Hide prefix in category */

/* Skrypt ładujący informację o usunięciu starego paska narzędzi (zob. https://phabricator.wikimedia.org/T207986) */
/* if (
		$.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 &&
		mw.user.options.get( 'usebetatoolbar' ) !== 1 &&
		mw.user.options.get( 'gadget-LegacyToolbar2006' ) !== 1
	)
	{
		var div_old_tbr = '<div style="color:red; border-bottom: 1px solid #a2a9b1;">"Stary" (standardowy) pasek narzędzi edycyjnych został usunięty z oprogramowania mediawiki. Zamiast niego można włączyć w <a href="/wiki/Specjalna:Preferencje#mw-prefsection-editing" title="Specjalna:Preferencje">Preferencjach</a> opcję "Włącz rozszerzony pasek narzędzi edycyjnych" lub gadżet "Stary pasek narzędzi edycyjnych".</div>';
		$("#editform").before(div_old_tbr);

	}
*/
/* Koniec skryptu ładującego informację o usunięciu starego paska narzędzi */

 });

/* Skrypt odpowiedzialny za zmianę napisu na zakładce treść - pierwszej od lewej [[Szablon:Postęp prac]] */
jQuery(document).ready(function() {
	var tab1 = document.getElementById("ca-nstab-main");
	if (!tab1)
		return;

	var t = tab1.firstChild;
	var q = document.getElementById("textquality");
	if (!q)
		return;

	var src = {
		"0%":   "//upload.wikimedia.org/wikipedia/commons/8/8f/00%25.png",
		"25%":  "//upload.wikimedia.org/wikipedia/commons/5/5b/25%25.png",
		"50%":  "//upload.wikimedia.org/wikipedia/commons/3/3a/50%25.png",
		"75%":  "//upload.wikimedia.org/wikipedia/commons/c/cd/75%25.png",
		"100%": "//upload.wikimedia.org/wikipedia/commons/6/64/100%25.png"
	};

	// hack dla skróki vector
	if (mw.config.get('skin') == 'vector') {
		var items = jQuery("#ca-nstab-main a");
		if (items.length > 0)
			t = items[0];
	}

	if (src[q.className]) {
		var i = document.createElement("img");
		i.className = "textquality-image";
		i.src = src[q.className];
		i.width = 9;
		i.height = 9;
		i.style.padding = "3px";
		t.appendChild(i);
	}
});
/* Koniec skryptu odpowiedzialnego za zmianę napisu na zakładce treść - pierwszej od lewej */
/*Dodaj sekcję "W innych językach", jeżeli jej nie ma*/
if (mw.config.get('skin') != "vector-2022") {
	if ($('#p-lang').length === 0) {
	    $('#mw-panel').append('<div id="p-lang" role="navigation" class="vector-menu-portal portal" aria-labelledby="p-lang-label">'
		+'<h3 id="p-lang-label">W innych językach</h3>'
		+'<div class="body">'
		+'<ul></ul>'
		+'</div></div>');
	}
}
/*Koniec - Dodaj sekcję "W innych językach", jeżeli jej nie ma*/
/* Dodanie dodatkowych linków interwiki i informacji z szablonu {{interwiki-extra}} */
if (mw.config.get('skin') != "vector-2022") {
	jQuery( function() {
		jQuery( 'span.interwiki-extra a' ).removeClass().each( function() {
			var oldlink = jQuery( '#p-lang a[href="' + $( this ).attr( 'href' ) + '"]' );
			if ( oldlink.length ) {
				oldlink.text( $( this ).text() );
			} else {
				var lang = $( this ).parent().attr( 'lang' );
				var title =  $( this ).parent().attr( 'title' );
				$( this ).attr( {
					'lang': lang,
					'hreflang': lang,
					'title': title 
				} );
				jQuery( '<li>' ).addClass( 'interlanguage-link interwiki-' + lang ).append( this ).appendTo('#p-lang ul');
			}
		});
		
		// Linki do wersji polskich do osobnej sekcji
		jQuery( 'li.interwiki-pl' )
		.insertBefore( '#p-lang' )
		.wrapAll( '<div id="p-versions" class="portal portlet" role="navigation" ><div class="body pBody"><ul></ul></div></div>' );
		jQuery( '#p-versions' ).prepend( '<h3>Inne wersje</h3>' );	
	});
}
/* Koniec skryptu Dodającego dodatkowe linki interwiki i informacje z szablonu {{interwiki-extra}} */


/* Skrypt odpowiedzialny za dodatkowe informacje interwiki [[Szablon:Interwiki-info]] */
/* na razie wyłączone
jQuery(document).ready(function() {
	// iterate over all <span>-elements
	var items = jQuery('span.interwiki-info');
	for(var i = 0; i < items.length; i++) {
		var item = items[i];

		if (!item.id) {
			continue;
		}

		var match = item.id.match(/^(\D+)(\d+)$/);
		var code;
		var number;
		if (match) {
			code = match[1];
			number = match[2];
		}
		else {
			code = item.id;
			number = 1;
		}
		number -= 1;

		var listItems = jQuery('li.interwiki-' + code);
		if (listItems.length > number) {
			var listItem = listItems[number];
			listItem.appendChild(document.createTextNode(' ' + item.title));
			if (item.title == "(org.)") {
				listItem.title = "Tekst oryginalny";
			}
		}
	}
});
*/
/* Koniec skryptu odpowiedzialnego za dodatkowe informacje interwiki */

var owk_wgserver = '//wikisource.org';
/* poniżej Skrypt odpowiedzialny za dodanie do wszystkich interwiki możliwości porównania wersji językowych - ⇔ */
mw.loader.load(owk_wgserver + '/w/index.php?title=MediaWiki:DoubleWiki.js&action=raw&ctype=text/javascript');
mw.loader.load(owk_wgserver + '/w/index.php?title=MediaWiki:InterWikiTransclusion.js&action=raw&ctype=text/javascript');

//link txt i pdf a5; komunikat dla ws-export (EPUB); dla <>ns0, redir-ów oraz disamb-ów ukrywa "Pobierz jako"
if (mw.config.get('wgNamespaceNumber') === 0) {
	$(document).ready( function () {
		if(document.getElementById('disamb-info-js')!==null || document.getElementById('redirectsub')!==null) {
			$("#p-coll-print_export [id*='wikisource-download']").hide();
		}else if (document.getElementsByClassName('iwpages').length===0) {
			mw.loader.using( 'mediawiki.util' ).then( function () {
				mw.util.addPortletLink(
					'p-coll-print_export',
					'//wsexport.wmflabs.org/?lang=pl&format=pdf-a5&page=' + mw.config.get('wgPageName'),
					'Pobierz jako PDF(A5)',
					'wikisource-download-pdf-a5',
					'Pobierz ten utwór jako plik PDF (format A5)',
					'',
					'#wikisource-download-choose');
				$('#wikisource-download-pdf-a5 > a').attr('rel', 'nofollow');
				mw.util.addPortletLink(
					'p-coll-print_export',
					'//wsexport.wmflabs.org/?lang=pl&format=txt&page=' + mw.config.get('wgPageName'),
					'Pobierz jako TXT',
					'wikisource-download-txt',
					'Pobierz ten utwór jako plik TXT',
					'',
					'#wikisource-download-choose');
				$('#wikisource-download-pdf-txt > a').attr('rel', 'nofollow');
				/* Dodaj komunikat do wszystkich linków prowadzących do wsexportera */
				$("[href*='wsexport'][href*='format']").click(function(){
					mw.notify($('<span><b>Trwa przygotowywanie pliku do pobrania...</b><br>Może to potrwać kilkadziesiąt sekund.<br>Dziękujemy za cierpliwość.<br>Jesli pobieranie nie powiedzie się,<br>spróbuj pobrać plik w innym formacie.</span><br><br><span style="font-size:80%">kliknij, aby ukryć komunikat...</span>'), {autoHide: false, tag: 'wsExport', type: 'warn'});
				});
			} );
		}else{
			$("#p-coll-print_export [id*='wikisource-download']").hide();
			$( document.body ).toggleClass( 'ukryj-przycisk-pobierz' );
		}
	});
} else {
	/* Usuń linki pobierania dla ns<>0 */
	$("#p-coll-print_export [id*='wikisource-download']").hide();
	/* Dodaj komunikat do wszystkich linków prowadzących do wsexportera także w ns<>0 */
	$("[href*='wsexport'][href*='format']").click(function(){
		mw.notify($('<span><b>Trwa przygotowywanie pliku do pobrania...</b><br>Może to potrwać kilkadziesiąt sekund.<br>Dziękujemy za cierpliwość.<br>Jesli pobieranie nie powiedzie się,<br>spróbuj pobrać plik w innym formacie.</span><br><br><span style="font-size:80%">kliknij, aby ukryć komunikat...</span>'), {autoHide: false, tag: 'wsExport', type: 'warn'});
	});
}

/* Kod tworzący listę błędów w druku */
self.ws_messages = { 
	'corr_list':"Lista poprawionych błędów w druku na stronie",
	'corr_link':"Błędy w druku",
	'corr_link_toggle':"Wyświetl bez korekty",
	'corr_link_toggle_r':"Wyświetl po korekcie",
	'corr_link_tooltip':"Pokaż listę błędów w druku",
	'corr_link_toggle_tooltip':"Wyświetl treść bez poprawionych błędów w druku",
	'corr_link_toggle_tooltip_r':"Wyświetl treść z poprawionymi błędami w druku",
	'corr_msg':"Wyświetlono treść bez poprawionych błędów w druku",
	'corr_msg_r':"Wyświetlono treść z poprawionymi błędami w druku",
};
mw.loader.load('/w/index.php?title=MediaWiki:Corrections.js&action=raw&ctype=text/javascript');

/* Kod usuwający "żółty" status przy tworzeniu nowej strony oraz wszystkie przyciski zmiany statusu dla już istniejącej strony dla IP */
if ( ( mw.config.get('wgNamespaceNumber') === 100 ) && ( $.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1 ) ) {
	if ( mw.config.get('wgArticleId') === 0 ) {
		$("#wpQuality-container .quality3").remove();
	}
	else if ( mw.config.get('wgUserId') == null ) {
		$("#wpQuality-container").remove();
	} 
}
/* koniec kodu usuwającego "żółty" status przy tworzeniu nowej strony oraz wszystkie przyciski zmiany statusu dla już istniejącej strony dla IP */

/* Obsługa rezerwacji */
if ( ( mw.config.get('wgNamespaceNumber') === 100 ) && ( $.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1 ) ) {
	if ($('#lmw_reserve').length) {
		if ($('#lmw_me_reserve').attr('data-reserved').toLowerCase()===(mw.config.get('wgUserName') == null ? '' : mw.config.get('wgUserName')).toLowerCase()) {
			$('#lmw_me_reserve').show();
		} else {
/*			$('#editform').hide(); */
			$('#lmw_reserve').show();
		}
	}
}
/* koniec - Obsługa rezerwacji */

/* Kod przełączający dla {{Sscore|resizable=1}} */
$( function ()
{
	el = document.getElementsByClassName("prp-page-content");
	if (el.length) {
		maxwidth = el[0].clientWidth;
	} else {
		maxwidth = document.getElementById("mw-content-text").clientWidth;
	}
	screslistslist = document.getElementsByClassName("score-resizable-container");
	scressizelist = [];
	for (i = 0; i < screslistslist.length; i++) {
		//maxwidth = screslistslist[i].parentNode.clientWidth;
		screslist = screslistslist[i].getElementsByClassName("score-resizable");
		fitwidth = 0;
		fitelement = -1;
		for (j = 0; j < screslist.length; j++) {
			s = screslist[j].className.match(/score-resizable-size-\d+/);
			scressizelist[j] = parseInt(s[0].match(/\d+/), 10);
			//find largest score that has width < parent width
			if (scressizelist[j] > fitwidth && scressizelist[j] <= maxwidth) {
				fitwidth = scressizelist[j];
				fitelement = j;
			}
		}
		if (fitelement < 0) {
			fitelement = 0;
		}
		for (j = 0; j < screslist.length; j++) {
			if (j != fitelement) {
				screslist[j].style.display = "none";
			}
		}
		screslist[fitelement].style.display = "block";
	}
});
/* koniec kodu przełączającego dla {{Sscore|resizable=1}} */