User:Guycn2/EditCounter.js
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.
/*
Adds toolbox link to show the user's number of edits and his/her edit counter
Written by: [[User:Guycn2]]
*/
$(function() {
"use strict";
var username = mw.config.get("wgRelevantUserName");
if (!username || $(".mw-userpage-userdoesnotexist").length) return;
function i18n(key) {
switch (mw.config.get("wgUserLanguage")) {
case "he":
switch (key) {
case "toolboxLinkText":
return "מספר עריכות";
case "toolboxLinkTooltip1":
return "הצגת מספר העריכות שבוצעו על ידי " + username;
case "orMore":
return "או יותר";
case "edits":
return "עריכות";
case "toolboxLinkTooltip2":
return "ניתן ללחוץ כאן כדי לפתוח את מונה העריכות של " + username;
}
break;
default:
switch (key) {
case "toolboxLinkText":
return "Number of edits";
case "toolboxLinkTooltip1":
return "Show number of edits made by " + username;
case "orMore":
return "or more";
case "edits":
return "edits";
case "toolboxLinkTooltip2":
return "Click here to open edit counter for " + username;
}
}
}
mw.loader.using("mediawiki.util", function() {
mw.util.addPortletLink(
"p-tb", "#", i18n("toolboxLinkText"), "t-editcount", i18n("toolboxLinkTooltip1")
);
var $link = $("#t-editcount a");
$link.one("click", function(e) {
e.preventDefault();
showEditCount();
});
function showEditCount() {
mw.loader.using("mediawiki.api", function() {
var isAnon = mw.util.isIPAddress(username);
var userGroups = mw.config.get("wgUserGroups");
var apiLimit = (userGroups.indexOf("sysop") < 0 && userGroups.indexOf("bot") < 0) ? 500 : 5000;
var numberOfEdits;
new mw.Api().get({
list: isAnon ? "usercontribs" : "users",
uclimit: isAnon ? "max" : undefined,
ucuser: isAnon ? username : undefined,
usprop: isAnon ? undefined : "editcount",
ususers: isAnon ? undefined : username
}).done(function(data) {
if (isAnon) {
numberOfEdits = data.query.usercontribs.length;
if (numberOfEdits >= apiLimit) {
numberOfEdits = apiLimit.toLocaleString() + " " + i18n("orMore");
}
} else {
numberOfEdits = data.query.users[0].editcount;
}
$link
.text(numberOfEdits.toLocaleString() + " " + i18n("edits"))
.attr({
title: i18n("toolboxLinkTooltip2"),
href: "//xtools.wmflabs.org/ec/" + window.location.hostname + "/" + encodeURIComponent(username),
target: "_blank"
});
/* In Vector-2022, prevent the dropdown menu from disappearing after
clicking the "Number of edits" button. This is a somewhat nasty workaround,
mostly because it causes the dropdown menu to flash before appearing again.
A more intuitive solution is needed, but it's better than nothing for now. */
if (mw.config.get("skin") === "vector-2022") {
$("#vector-page-tools-dropdown-checkbox").prop("checked", true);
}
});
});
}
});
});