Участник:ShinePhantom/history.js
Перейти к навигации
Перейти к поиску
// 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]]
mw.loader.using( 'mediawiki.util' ).done( function() {
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) + '">вклад</a>, <a href="' + mw.util.getUrl('User talk:' + name) + '">обс</a>';
if ( jQuery.inArray( 'sysop', mw.config.get( 'wgUserGroups' ) ) != -1 ) {
str += ', <a href="' + mw.util.getUrl('Special:Blockip/' + name) + '">блок</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) {
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.util.getUrl( mw.config.get('wgPageName') ) + '?diff=cur&oldid=' + ldiff + '"/> правка сделана </a>' +
'' + this.userlink(topuser) + ' (' + count + 'x)';
if(luser !== "" && luser != topuser) {
html += ', а до того ' + this.userlink(luser);
}
html += '.';
div.innerHTML = html;
}
else if (topuser !== "") {
div.innerHTML = html + 'Это единственная версия статьи от участника' + 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();
} );