User:SSethi (WMF)/Sandbox/MyEditCount.js
Appearance
< User:SSethi (WMF) | Sandbox
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/**
* MyEditCount.js
*
* Counts edits made in the past year by a logged in user on a wiki
*
* @source https://www.mediawiki.org/wiki/User:SSethi_(WMF)/Sandbox/MyEditCount.js
* @licstart The following is the entire license notice for the JavaScript code on this page.
*
* Copyright (C) 2019 Srishti Sethi <https://meta.wikimedia.org/wiki/User:SSethi_(WMF)> and contributors
*
* The JavaScript code in this page is free software: you can
* redistribute it and/or modify it under the terms of the GNU
* General Public License (GNU GPL) as published by the Free Software
* Foundation, either version 3 of the License, or (at your option)
* any later version. The code is distributed WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
*
* As additional permission under GNU GPL version 3 section 7, you
* may distribute non-source (e.g., minimized or compacted) forms of
* that code without the copy of the GNU GPL normally required by
* section 4, provided you include this license notice and a URL
* through which recipients can access the Corresponding Source.
*
* @licend The above is the entire license notice for the JavaScript code in this gadget.
*/
(function ($) {
'use strict';
mw.loader.using( 'oojs-ui-core' ).done( function () {
var totalEdits = 0,
lastYearDate = getLastYearDate(),
api = new mw.Api();
api.get( {
action: 'query',
list: 'usercontribs',
ucuser: mw.config.get('wgUserName'),
uclimit: 500,
ucend: lastYearDate,
} ).done( function ( data ) {
totalEdits = data.query.usercontribs.length;
showGadgetUI();
} );
function getLastYearDate() {
var date = new Date(),
pastYear = date.getFullYear() - 1;
date.setFullYear(pastYear);
return date.toISOString();
}
function showGadgetUI() {
var button = new OO.ui.PopupButtonWidget( {
icon: 'menu',
label: 'Your contributions to MediaWiki in the last year',
popup: {
$content: $( '<p> You made <b>' + totalEdits + ' edits </b> last year!</p>' ),
padded: true,
anchor: false,
align: 'forwards'
}
} );
$( '#mw-content-text' ).prepend( button.$element );
}
} );
}(jQuery));