User:Incnis Mrsi/edithysteria.js

// Ported from commons:User:Incnis Mrsi/edithysteria.js and, ultimately, from w:pl:MediaWiki:Gadget-edithysteria.js window.editHysteriaGadget = { version: 5, init: function { var ns; if ( (ns = 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 = '' + name + ' ' + '(talk' +		 ' · contribs';		if ( jQuery.inArray( 'sysop', mw.config.get( 'wgUserGroups' ) ) != -1 ) {			str += ' · block';		}		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) { if (ns == 4) { div.innerHTML = ""; } else { div.innerHTML = html + "Page not exists."; } div.style.color = "red"; 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 += 'Last edited' + ' by ' + this.userlink(topuser) + ' (' + count + '×)'; if(luser !== "" && luser != topuser) { html += ', previous edit by ' + this.userlink(luser); }			html += '.'; div.innerHTML = html; }		else if (topuser !== "") { div.innerHTML = html + 'This is the only version by ' + 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;