Користувач:Base/Інкубатор/Скрипти/Необхідні категорії.js

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Увага: Після публікування слід очистити кеш браузера, щоб побачити зміни.

  • Firefox / Safari: тримайте Shift, коли натискаєте Оновити, або натисніть Ctrl-F5 чи Ctrl-Shift-R (⌘-R на Apple Mac)
  • Google Chrome: натисніть Ctrl-Shift-R (⌘-Shift-R на Apple Mac)
  • Internet Explorer / Edge: тримайте Ctrl, коли натискаєте Оновити, або натисніть Ctrl-F5
  • Opera: натисніть Ctrl-F5
/**
 * У майбутньому скрипт для напівавтоматичної роботи з [[Спеціальна:Необхідні категорії|необхідними категоріями]]
 */
var WantedCategoriesManager = function () {
    mw.loader.using([
        'oojs-ui-core',
        'oojs-ui-windows',
        'mediawiki.widgets',
        'mediawiki.widgets.DateInputWidget',
    ]).done(function () {

        function WantedCategoriesManagerDialogue(config) {
            WantedCategoriesManagerDialogue.super.call(this, config);
        }

        OO.inheritClass(WantedCategoriesManagerDialogue, OO.ui.ProcessDialog);

        $.extend(WantedCategoriesManagerDialogue.static, {
            name: 'WantedCategoriesManagerDialogue',
            title: 'Керування необхідними категоріями',
            size: 'larger',
        });

        $.extend(WantedCategoriesManagerDialogue.prototype, {
            initialize: function () {
                var me = this;

                WantedCategoriesManagerDialogue.super.prototype.initialize.apply(this, arguments);
                var api = new mw.Api();

                var wantedCategories = this.getWantedCategories(api);
                wantedCategories.done(function (wantedCategoriesQuery) {
                    console.log(wantedCategoriesQuery);
                });
            },
            getBodyHeight: function () {
                return 250;
            },
            getWantedCategories: function (api) {
                return api.get({
                    action: 'query',
                    list: 'querypage',
                    qppage: 'Wantedcategories',
                    qplimit: 'max'
                });
            },
        });

        var windowManager = new OO.ui.WindowManager();
        $(document.body).append(windowManager.$element);

        var wantedCategoriesManagerDialogue = new WantedCategoriesManagerDialogue();

        windowManager.addWindows([wantedCategoriesManagerDialogue]);
        windowManager.openWindow(wantedCategoriesManagerDialogue, {});
    });
};

WantedCategoriesManager();