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
(cleared whatever I was working on before (???), replaced with WIP 'patrol all' gadget)
Line 1: Line 1:
/*
if (mw.user.tokens.exists('patrolToken')) {
Three different behaviors desired:
  // 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);
 
    // patrol link click handler
    $patrolAllLink.click(function() {
      mw.loader.load('mediawiki.notification');


1. all content on one page
      // replace text with spinner
-all content is initially visible for no-js. js hides all except "default"
      var $spinner = $.createSpinner({ size :'small', type: 'inline' });
      $(this).hide().after($spinner);


2. content is on subpages, transcluded
      // find bounding revision ids
-"no-js" content is initially visible, the rest hidden. js hides "no-js" and shows "default"
      var oldid = mw.util.getParamValue('oldid', $('#mw-diff-otitle1 strong a').attr('href'));
      var newid = mw.util.getParamValue('oldid', $('#mw-diff-ntitle1 strong a').attr('href'));
      var title = mw.util.getParamValue('title', $('#mw-diff-ntitle1 strong a').attr('href'));


3. ajax
      // call api for all revisions in that span
-"no-js" content is initially visible. js removes "no-js" and calls for "default"
      var api = new mw.Api();
      api.get({
        action: 'query',
        prop: 'revisions',
        rvprop: 'ids',
        rvstartid: newid,
        rvendid: oldid,
        titles: title
      } ).done( function ( data ) {
        console.log( data );
/*
      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' });
          }
        });
*/
*/
 
      } );
/*Tabs2 moved to MediaWiki:Tabs2.js and included in MediaWiki:Common.js*/
         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."});*/
function DataLoader( basepage, target ) {
    });
    this.loadData = function( subpage ) {
  }
         mw.loader.using( 'mediawiki.api', function () {
            (new mw.Api()).ajax( {
                action: 'parse',
                format: 'json',
                prop: 'text',
                page: basepage + '/' + subpage
            } ).done ( function ( data ) {
                $('#' + target).empty();
                $('#' + target).append( data['parse']['text']['*'] );
            } );
        } );
    };
}
}
var loader = new DataLoader( 'User:Locke/Sandbox', 'dl-target' );
loader.loadData( 'Template' );

Revision as of 22:34, 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);

    // patrol link click handler
    $patrolAllLink.click(function() {
      mw.loader.load('mediawiki.notification');

      // replace text with spinner
      var $spinner = $.createSpinner({ size :'small', type: 'inline' });
      $(this).hide().after($spinner);

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

      // 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,
        titles: title
      } ).done( function ( data ) {
        console.log( data );
/*
      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."});*/
    });
  }
}