Участник:A particle for world to form/wantedCategoriesProgression.js

/* Добавляет прогрессбар на страницу [[Служебная:Требуемые категории]], показывающий процент
   обработанных категорий. */

(function() {
    "use strict";

    if (mw.config.get("wgCanonicalSpecialPageName") !== "Wantedcategories") {
        return;
    }

    function addProgression(percent) {
        var label = $("<span>")
            .css("float", "right")
            .text((percent + " %").replace(".", ","));
        var table = $("<table>")
            .css("border", "1px solid grey")
            .css("margin", "11px")
            .css("float", "right")
            .width(200)
            .height(15);
        var progression = $("<td>").css("background", "#5FDB00");
        if (percent !== 0) {
            progression.css("width", percent + "%");
        }
        else {
            progression.css("width", "1px");
        }
        $("<tr>")
            .append(progression)
            .append($("<td>").css("background", "#E2E2E2"))
            .appendTo(table);
        $("#firstHeading")
            .prepend(label)
            .prepend(table);
    }

    var precision = 10;
    var all = $(".mw-spcontent > ol > li").length;
    var done = $(".mw-spcontent > ol > li > del").length;
    var percent = Math.round(100 * done / all * precision) / precision;

    addProgression(percent);

})();