User:SSethi (WMF)/Sandbox/MyEditCount.js

/** * 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  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: $( ' You made ' + totalEdits + ' edits  last year! ' ),                   padded: true,                    anchor: false,                    align: 'forwards'                }            } );

$( '#mw-content-text' ).prepend( button.$element ); }

} ); }(jQuery));