Menü aufrufen
Toggle preferences menu
Persönliches Menü aufrufen
Nicht angemeldet
Ihre IP-Adresse wird öffentlich sichtbar sein, wenn Sie Änderungen vornehmen.

MediaWiki:Gadget-revisionCounter.js: Unterschied zwischen den Versionen

MediaWiki-Schnittstellenseite
K Seit MW1.17: jQuery anstatt addOnloadHook
K Fixes
 
Zeile 4: Zeile 4:
//===========================================================================
//===========================================================================


var revisionCounter =  
if (mw.config.get('wgNamespaceNumber') >= 0) {
{
$( function() {
   queryUrl          : wgScriptPath + '/api.php?action=query&prop=revisions&pageids=' + wgArticleId + '&rvprop=user&rvlimit=max&format=json&callback=revisionCounter.queryResult',
   if ( mw.config.get( 'revisionCounter.checkOnlyOnHistory', true ) && mw.config.get('wgAction') !== "history" ) {
  revisionCount     : 0,
  return;
   revisionCountUser  : 0,
  }
   checkOnlyOnHistory : true,
 
  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 );


   execute : function()  
   var queryResult = function( api, res)
   {
   {
     if ((revisionCounter.checkOnlyOnHistory) && (wgAction != "history")) return;
     var pageId = mw.config.get('wgArticleId');
     importScriptURI(revisionCounter.queryUrl);
     if (!res['query'] || !res['query']['pages'] ||
  },
        !res['query']['pages'][pageId] || !res['query']['pages'][pageId]['revisions']) return;


  queryResult : function(res)
     var revs = res['query']['pages'][pageId]['revisions'];
  {
     revisionCount += revs.length;
    if (!res['query'] || !res['query']['pages'] ||
    var username = mw.config.get( 'wgUserName' );
        !res['query']['pages'][wgArticleId] || !res['query']['pages'][wgArticleId]['revisions']) return;
 
     var revs = res['query']['pages'][wgArticleId]['revisions'];
     revisionCounter.revisionCount += revs.length;
     for (var i = 0; i < revs.length; i++)
     for (var i = 0; i < revs.length; i++)
       if (revs[i]['user'] == wgUserName) revisionCounter.revisionCountUser++;
       if (revs[i]['user'] === username) revisionCountUser++;
   
 
     if (res && res['query-continue'])  
     if (res && res['continue'])
     {
     {
       importScriptURI(revisionCounter.queryUrl + '&rvstartid=' + encodeURIComponent(res['query-continue'].revisions.rvstartid));
       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 + " (" + revisionCounter.revisionCount + "/" + revisionCounter.revisionCountUser + ")";
           return curText + " (" + revisionCount + "/" + revisionCountUser + ")";
         });
         });
       }
       }
Zeile 42: Zeile 71:
       {
       {
         var info = document.createElement("span");
         var info = document.createElement("span");
         info.appendChild(document.createTextNode(" (" + revisionCounter.revisionCount + "/" + revisionCounter.revisionCountUser + ")"));
         info.appendChild(document.createTextNode(" (" + revisionCount + "/" + revisionCountUser + ")"));
         var infoTitle = document.createAttribute("title");
         var infoTitle = document.createAttribute("title");
         infoTitle.nodeValue = "Insgesamt " + revisionCounter.revisionCount + " Versionen, davon " + revisionCounter.revisionCountUser + " von mir";
         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);
       }
       }
     }
     }
   }
   }
};
});
 
}
if (wgNamespaceNumber >= 0) $( revisionCounter.execute );