MediaWiki:Gadget-editHysteria.js: відмінності між версіями

Вилучено вміст Додано вміст
мНемає опису редагування
м зробимо простіше
Мітка: Замінено
 
Рядок 1:
mw.loader.load( '//uk.wikipedia.org/w/index.php?title=MediaWiki:Gadget-editHysteria.js&action=raw&ctype=text/javascript' );
var beau$userGroups = {};
var wgUserGroups = mw.config.get("wgUserGroups");
if (wgUserGroups) {
for (var i = 0; i < wgUserGroups.length; i++) {
beau$userGroups[ wgUserGroups[i] ] = true;
}
}
function beau$callAPI(query) {
var url = mw.config.get("wgServer") + mw.config.get("wgScriptPath") + "/api.php?";
for (var field in query) {
var value = query[field];
url += '&' + field + '=' + encodeURIComponent(value);
}
url += '&format=json';
mw.loader.load(url);
}
window.editHysteriaGadget = {};
editHysteriaGadget.init = function () {
var firstHeading;
var headers = document.getElementsByTagName("h1");
for(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:8pt;line-height:1em";
if (skin == 'modern')
{
div.style.marginLeft = "10px";
div.style.display = "inline-block";
}
firstHeading.appendChild(div);
this.div = div;
beau$callAPI({
action: 'query',
prop: 'revisions',
rvprop: 'user|ids',
rvlimit: 50,
callback: 'editHysteriaGadget.gotRevisions',
titles: mw.config.get("wgPageName"),
requestid: new Date().getTime()
});
}
editHysteriaGadget.wikilink = function(page) {
return mw.config.get('wgScript') + '?title=' + encodeURIComponent(page);
}
editHysteriaGadget.userlink = function(name) {
var str = '<a href="' + this.wikilink('User:' + name) + '">' + name + '</a> ' +
'(<a href="' + this.wikilink('Special:Contributions/' + name) + '">внесок</a>, <a href="' + this.wikilink('User_talk:' + name) + '">обговорення</a>';
if ( beau$userGroups["sysop"] )
str += ', <a href="' + this.wikilink('Special:Blockip/' + name) + '">блокувати</a>';
str += ')';
return str;
}
editHysteriaGadget.gotRevisions = function(data) {
var page = data.query.pages[mw.config.get('wgArticleId')];
var html = '';
var div = this.div;
if (! page) {
div.innerHTML = html + "Сторінка не існує";
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 += 'Востаннє <a href="'+ mw.config.get('wgScript') + '?title=' + encodeURIComponent(mw.config.get('wgPageName')) + '&diff=cur&oldid=' + ldiff + '"/>редагована</a>' +
' користувачем ' + this.userlink(topuser) + ' (' + count + 'x).';
if(luser != "" && luser != topuser) {
html += ' Раніше редагував ' + this.userlink(luser) + '.';
}
div.innerHTML = html;
}
else if (topuser != "") {
div.innerHTML = html + 'Це єдина версія сторінки. ' +
'Її автор — ' + this.userlink(topuser) + '.';
}
if (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';
}
}
}
if (mw.config.get('wgNamespaceNumber') >= 0 && !document.location.href.match(/printable=yes/))
$(function() { editHysteriaGadget.init() } );