Benutzer:Fomafix/Gadget-revisionCounter.js
Zur Navigation springen
Zur Suche springen
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Strg+F5
//===========================================================================
// Fügt an den Reiter "Versionen/Autoren" die Anzahl Versionen an und die
// Anzahl vom Nutzer erstellter Versionen.
//===========================================================================
( function ( mw, $ ) {
'use strict';
switch ( mw.config.get( 'wgUserLanguage' ) ) {
case 'de':
case 'de-at':
case 'de-ch':
case 'de-formal':
mw.messages.set( {
'revisioncounter-text': '($1/$2)',
'revisioncounter-title': 'Insgesamt $1 Versionen, davon $2 von mir'
} );
break;
//case 'en':
default:
mw.messages.set( {
'revisioncounter-text': '($1/$2)',
'revisioncounter-title': 'a total of $1 versions, including $2 versions of me'
} );
break;
}
var revisionCount, revisionCountUser, api;
function showCounter() {
$( '#ca-history a' )
.append(
' ',
mw.html.element( 'span',
{ title: mw.msg( 'revisioncounter-title', revisionCount, revisionCountUser ) },
mw.msg( 'revisioncounter-text', revisionCount, revisionCountUser )
)
);
}
function queryResult( res ) {
var revs, index;
if ( !res.query ||
!res.query.pages ||
!res.query.pages[mw.config.get( 'wgArticleId' )] ||
!res.query.pages[mw.config.get( 'wgArticleId' )].revisions
) {
return;
}
revs = res.query.pages[mw.config.get( 'wgArticleId' )].revisions;
// Alle Beiträge zählen.
revisionCount += revs.length;
// Eigene Beiträge zählen.
for ( index in revs ) {
if ( revs[index].user === mw.config.get( 'wgUserName' ) ) {
revisionCountUser++;
}
}
if ( res['continue'] ) {
// Es sind noch weitere Revisionen vorhanden. Nächsten Block abholen.
api.get( res['continue'] ).done( queryResult );
} else {
showCounter();
}
}
function init() {
// Bisherige Einstellung über die globale Variable checkOnlyOnHistory übernehmen.
if ( !mw.user.options.exists( 'checkOnlyOnHistory' ) &&
typeof checkOnlyOnHistory !== 'undefined'
) {
mw.user.options.set( 'checkOnlyOnHistory', checkOnlyOnHistory );
}
if ( mw.user.options.get( 'checkOnlyOnHistory', true ) &&
mw.config.get( 'wgAction' ) !== 'history'
) {
return;
}
revisionCount = 0;
revisionCountUser = 0;
api = new mw.Api( {
parameters: {
prop: 'revisions',
pageids: mw.config.get( 'wgArticleId' ),
rvprop: 'user',
rvlimit: 'max',
'continue': ''
}
} );
api.get( {} ).done( queryResult );
}
if ( mw.config.get( 'wgNamespaceNumber' ) >= 0 &&
mw.config.get( 'wgArticleId' ) > 0
) {
$( init );
}
}( mediaWiki, jQuery ) );