User:Locke/common.js: Difference between revisions

From Zelda Dungeon Wiki
Jump to navigation Jump to search
Want an adless experience? Log in or Create an account.
No edit summary
(get params from location.href)
Line 16: Line 16:


       // find bounding revision ids
       // find bounding revision ids
       var oldid = mw.util.getParamValue('oldid', $('#mw-diff-otitle1 strong a').attr('href'));
       var oldid = mw.util.getParamValue('oldid');
       var newid = mw.util.getParamValue('oldid', $('#mw-diff-ntitle1 strong a').attr('href'));
       var newid = mw.util.getParamValue('diff');
       var title = mw.util.getParamValue('title', $('#mw-diff-ntitle1 strong a').attr('href'));
       var pageid = mw.util.getParamValue('curid');


       // call api for all revisions in that span
       // call api for all revisions in that span
Line 29: Line 29:
         rvendid: oldid,
         rvendid: oldid,
         rvlimit: 'max',
         rvlimit: 'max',
         titles: title
         pageids: pageid
       } ).done( function ( data ) {
       } ).done( function ( data ) {
         console.log( data );
         console.log( data );

Revision as of 23:05, March 20, 2017

if (mw.user.tokens.exists('patrolToken')) {
  // add patrol link under diff-multi notice
  var $diffMultiNotice = $('td.diff-multi');
  if ($diffMultiNotice.length > 0) {
    var $patrolAllLink = $('<a href="#">Mark all as patrolled</a>');
    $diffMultiNotice.append('<br>[').append($patrolAllLink).append(']');

    // patrol link click handler
    $patrolAllLink.click(function(e) {
      var $this = $(this);
      // replace text with spinner
      mw.loader.using('jquery.spinner').then(function() {
        var $spinner = $.createSpinner({ size :'small', type: 'inline' });
        $this.hide().after($spinner);
      });

      // find bounding revision ids
      var oldid = mw.util.getParamValue('oldid');
      var newid = mw.util.getParamValue('diff');
      var pageid = mw.util.getParamValue('curid');

      // call api for all revisions in that span
      var api = new mw.Api();
      api.get({
        action: 'query',
        prop: 'revisions',
        rvprop: 'ids',
        rvstartid: newid,
        rvendid: oldid,
        rvlimit: 'max',
        pageids: pageid
      } ).done( function ( data ) {
        console.log( data );
/*
      // mw.loader.load('mediawiki.notification');
      apiRequest.postWithToken('patrol', { formatversion: 2, action: 'patrol', rcid: rcid })
        .done(function(data) {
          $patrolLinks.closest('.patrollink').remove();
          if(data.patrol !== undefined) {
            var title = new mw.Title(data.patrol.title);
            mw.notify(mw.msg('markedaspatrollednotify', title.toText()));
          } else {
            mw.notify(mw.msg('markedaspatrollederrornotify'), { type: 'error' });
          }
        })
        .fail(function(error) {
          $spinner.remove();
          $patrolLinks.show();
          if (error === 'noautopatrol') {
            mw.notify(mw.msg('markedaspatrollederror-noautopatrol'), { type: 'warn' });
          } else {
            mw.notify(mw.msg('markedaspatrollederrornotify'), { type: 'error' });
          }
        });
*/
      } );
        e.preventDefault();
/*{"markedaspatrollederror-noautopatrol":"You are not allowed to mark your own changes as patrolled.","markedaspatrollederrornotify":"Marking as patrolled failed.","markedaspatrollednotify":"This change to $1 has been marked as patrolled."});*/
    });
  }
}