MediaWiki:Gadget-revisionCounter.js: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
K Seit MW1.17: jQuery anstatt addOnloadHook |
Ghost (Diskussion | Beiträge) K Fixes |
||
| Zeile 4: | Zeile 4: | ||
//=========================================================================== | //=========================================================================== | ||
if (mw.config.get('wgNamespaceNumber') >= 0) { | |||
{ | $( function() { | ||
if ( mw.config.get( 'revisionCounter.checkOnlyOnHistory', true ) && mw.config.get('wgAction') !== "history" ) { | |||
return; | |||
} | |||
var api = new mw.Api; | |||
var revisionCount = 0, revisionCountUser = 0; | |||
var queryParams = { | |||
action: 'query', | |||
prop: 'revisions', | |||
pageids: mw.config.get('wgArticleId'), | |||
rvprop: 'user', | |||
rvlimit: 'max', | |||
requestid: mw.config.get('wgCurRevisionId') //Break client caching, when page has been edited | |||
}; | |||
var doQuery = function( api, queryParams, continueParams ) { | |||
api.get( | |||
$.extend( {}, queryParams, continueParams || { 'continue': '' } ) | |||
).then( function( data ) { | |||
queryResult( api, data ); | |||
} ).fail( function( code, data ) { | |||
var extraText; | |||
if ( code === 'http' && data ) { | |||
extraText = ( data.xhr && data.xhr.status ? '[' + data.xhr.status + ']' : '' ) | |||
+ ( data.textStatus ? '' + data.textStatus + ( data.exception ? ': ' : '' ) : '' ) | |||
+ ( data.exception ? '' + data.exception : '' ); | |||
} else { | |||
extraText = code + ( data && data.error && data.error.info ? ': ' + data.error.info : '' ); | |||
} | |||
mw.notify( | |||
'RevisionCounter: Fehler beim Ermitteln der Anzahl an Versionen' + | |||
' (' + extraText + ')', | |||
{ tag: 'revisionCounter-error' } | |||
); | |||
} ); | |||
}; | |||
doQuery( api, queryParams ); | |||
var queryResult = function( api, res) | |||
{ | { | ||
var pageId = mw.config.get('wgArticleId'); | |||
if (!res['query'] || !res['query']['pages'] || | |||
!res['query']['pages'][pageId] || !res['query']['pages'][pageId]['revisions']) return; | |||
var revs = res['query']['pages'][pageId]['revisions']; | |||
revisionCount += revs.length; | |||
var username = mw.config.get( 'wgUserName' ); | |||
var revs = res['query']['pages'][ | |||
for (var i = 0; i < revs.length; i++) | for (var i = 0; i < revs.length; i++) | ||
if (revs[i]['user'] == | if (revs[i]['user'] === username) revisionCountUser++; | ||
if (res && res[' | if (res && res['continue']) | ||
{ | { | ||
doQuery( api, queryParams, res['continue'] ); | |||
} | } | ||
else | else | ||
{ | { | ||
if (skin == 'vector') | if (mw.config.get('skin') === 'vector') | ||
{ | { | ||
$("#ca-history a").text(function(index, curText) { | $("#ca-history a").text(function(index, curText) { | ||
return curText + " (" + | return curText + " (" + revisionCount + "/" + revisionCountUser + ")"; | ||
}); | }); | ||
} | } | ||
| Zeile 42: | Zeile 71: | ||
{ | { | ||
var info = document.createElement("span"); | var info = document.createElement("span"); | ||
info.appendChild(document.createTextNode(" (" + | info.appendChild(document.createTextNode(" (" + revisionCount + "/" + revisionCountUser + ")")); | ||
var infoTitle = document.createAttribute("title"); | var infoTitle = document.createAttribute("title"); | ||
infoTitle.nodeValue = "Insgesamt " + | infoTitle.nodeValue = "Insgesamt " + revisionCount + " Versionen, davon " + revisionCountUser + " von mir"; | ||
info.setAttributeNode(infoTitle); | info.setAttributeNode(infoTitle); | ||
document.getElementById('ca-history').firstChild.appendChild(info); | document.getElementById('ca-history').firstChild.appendChild(info); | ||
} | } | ||
} | } | ||
} | } | ||
}; | }); | ||
} | |||
Aktuelle Version vom 30. November 2025, 15:23 Uhr
//===========================================================================
// Fügt an den Reiter "Versionen/Autoren" die Anzahl Versionen an und die
// Anzahl vom Nutzer erstellter Versionen
//===========================================================================
if (mw.config.get('wgNamespaceNumber') >= 0) {
$( function() {
if ( mw.config.get( 'revisionCounter.checkOnlyOnHistory', true ) && mw.config.get('wgAction') !== "history" ) {
return;
}
var api = new mw.Api;
var revisionCount = 0, revisionCountUser = 0;
var queryParams = {
action: 'query',
prop: 'revisions',
pageids: mw.config.get('wgArticleId'),
rvprop: 'user',
rvlimit: 'max',
requestid: mw.config.get('wgCurRevisionId') //Break client caching, when page has been edited
};
var doQuery = function( api, queryParams, continueParams ) {
api.get(
$.extend( {}, queryParams, continueParams || { 'continue': '' } )
).then( function( data ) {
queryResult( api, data );
} ).fail( function( code, data ) {
var extraText;
if ( code === 'http' && data ) {
extraText = ( data.xhr && data.xhr.status ? '[' + data.xhr.status + ']' : '' )
+ ( data.textStatus ? '' + data.textStatus + ( data.exception ? ': ' : '' ) : '' )
+ ( data.exception ? '' + data.exception : '' );
} else {
extraText = code + ( data && data.error && data.error.info ? ': ' + data.error.info : '' );
}
mw.notify(
'RevisionCounter: Fehler beim Ermitteln der Anzahl an Versionen' +
' (' + extraText + ')',
{ tag: 'revisionCounter-error' }
);
} );
};
doQuery( api, queryParams );
var queryResult = function( api, res)
{
var pageId = mw.config.get('wgArticleId');
if (!res['query'] || !res['query']['pages'] ||
!res['query']['pages'][pageId] || !res['query']['pages'][pageId]['revisions']) return;
var revs = res['query']['pages'][pageId]['revisions'];
revisionCount += revs.length;
var username = mw.config.get( 'wgUserName' );
for (var i = 0; i < revs.length; i++)
if (revs[i]['user'] === username) revisionCountUser++;
if (res && res['continue'])
{
doQuery( api, queryParams, res['continue'] );
}
else
{
if (mw.config.get('skin') === 'vector')
{
$("#ca-history a").text(function(index, curText) {
return curText + " (" + revisionCount + "/" + revisionCountUser + ")";
});
}
else
{
var info = document.createElement("span");
info.appendChild(document.createTextNode(" (" + revisionCount + "/" + revisionCountUser + ")"));
var infoTitle = document.createAttribute("title");
infoTitle.nodeValue = "Insgesamt " + revisionCount + " Versionen, davon " + revisionCountUser + " von mir";
info.setAttributeNode(infoTitle);
document.getElementById('ca-history').firstChild.appendChild(info);
}
}
}
});
}