Zum Inhalt springen

„MediaWiki:Gadget-revisionCounter.js“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Inhalt gelöscht Inhalt hinzugefügt
K Fehlertext verfeinert
Zeile 27: Zeile 27:
queryResult( api, data );
queryResult( api, data );
} ).fail( function( code, data ) {
} ).fail( function( code, data ) {
var extraText;
if ( code === 'http' && data ) {
extraText = ( data.textStatus ? data.textStatus + ': ' : '' ) + ( data.exception ? data.exception : '' );
} else {
extraText = code + ( data && data.error && data.error.info ? ': ' + data.error.info : '' );
}
mw.notify(
mw.notify(
'Fehler beim Ermitteln der Versionen' +
'RevisionCounter: Fehler beim Ermitteln der Anzahl an Versionen' +
' (' + extraText + ')',
' (' + code + ( data && data.error && data.error.info ? ': ' + data.error.info : '' ) + ')',
{ tag: 'revisionCounter-error' }
{ tag: 'revisionCounter-error' }
);
);

Version vom 9. August 2015, 11:32 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 ) {
   api.get(
    queryParams
   ).then( function( data ) {
    queryResult( api, data );
   } ).fail( function( code, data ) {
    var extraText;
    if ( code === 'http' && data ) {
     extraText = ( data.textStatus ? data.textStatus + ': ' : '' ) + ( 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, $.extend( queryParams, { 'continue': '' } ) );
 
  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, $.extend( 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);
      }
    }
  }
 });
}