MediaWiki:Gadget-edithysteria.js

Wikimedia Polska, polski partner Fundacji Wikimedia.
Przejdź do nawigacji Przejdź do wyszukiwania

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.
// UWAGA! Z tego gadżetu korzystają także inne projekty
// Original version:
// - EditHysteria script by [[:pl:User:ChP94]]
// - Released under the [http://www.gnu.org/licenses/gpl.txt GNU Public License (GPL)]
// Modified by [[:pl:User:Beau]]

window.editHysteriaGadget = {
	version: 5,

	init: function() {
		if ( mw.config.get( 'wgNamespaceNumber' ) < 0 || mw.util.getParamValue('printable') === 'yes' ) {
			return;
		}

		var that = this;

		var request = {
			action:	'query',
			prop:	'revisions',
			rvprop:	'user|ids',
			format:	'json',
			titles:	mw.config.get( 'wgPageName' ),
			rvlimit:	50,
			requestid:	new Date().getTime()
		};
		jQuery.getJSON( mw.util.wikiScript( 'api' ), request, function(result) {
			jQuery(document).ready(function() {
				if (result) {
					that.showResults(result);
				}
			});
		});
	},
	userlink: function(name) {
		var str = '<a href="' + mw.util.getUrl('User:' + name) + '">' + name + '</a> ' +
		  '(<a href="' + mw.util.getUrl('Special:Contributions/' + name) + '">wkład</a>, <a href="' + mw.util.getUrl('User talk:' + name) + '">dyskusja</a>';

		if ( jQuery.inArray( 'sysop', mw.config.get( 'wgUserGroups' ) ) != -1 ) {
			str += ', <a href="' + mw.util.getUrl('Special:Blockip/' + name) + '">zablokuj</a>';
		}

		str += ')';

		return str;
	},
	showResults: function(data) {
		var page = data.query.pages[ mw.config.get( 'wgArticleId' ) ];
		var firstHeading;
		var headers = document.getElementsByTagName( 'h1' );

		for ( var i = 0; i < headers.length; i++ ) {
			var header = headers[i];
			if(header.className == "firstHeading" || header.id == "firstHeading" || header.className == "pagetitle") {
				firstHeading = header; break;
			}
		}

		if( !firstHeading ) {
			firstHeading = document.getElementById("section-0");
		}

		if( !firstHeading ) {
			return;
		}

		var div = document.createElement("div");
		div.style.cssText = "font-size:0.5em;line-height:1em";
		div.className = 'plainlinks';
		if ( mw.config.get( 'skin' )  == 'modern' ) {
			div.style.marginLeft = "10px";
			div.style.display = "inline-block";
		}

		firstHeading.appendChild(div);

		var html = '';
		if (! page) {
			return;
		}

		var topuser = page.revisions[0].user;
		var ldiff;
		var luser;
		var count = 1;

		for (var i = 1; i < page.revisions.length; i++) {
			ldiff = page.revisions[i].revid;
			luser = page.revisions[i].user;
			if (luser != topuser)
				break;
			count++;
		}

		if (ldiff) {
			html += 'Ostatnio <a href="'+ mw.util.getUrl( mw.config.get('wgPageName') ) + '?diff=cur&oldid=' + ldiff + '"/>edytowany</a>' +
				' przez ' + this.userlink(topuser) + ' (' + count + 'x)';

			if(luser !== "" && luser != topuser) {
				html += ', a wcześniej przez  ' + this.userlink(luser);
			}
			html += '.';
			div.innerHTML = html;
		}
		else if (topuser !== "") {
			div.innerHTML = html + 'To jest jedyna wersja tego artykułu utworzona przez ' + this.userlink(topuser) + '.';
		}
		if ( mw.config.get('skin') == 'modern' ) {
			var links = div.getElementsByTagName('a');
			for (var i = 0; i < links.length; i++) {
				links[i].style.color = 'white';
				links[i].style.textDecoration = 'underline';
			}
		}
	}
};

editHysteriaGadget.init();