「MediaWiki:Gadget-allmessageFilter.js」の版間の差分

提供: 萌えっ娘百科事典
移動先: 案内検索
(// Edit Via InPageEdit)
(跨站同步)
(タグ: Bot)
 
1行目: 1行目:
$(window).on('load', function() {
+
/* <pre> */
    if (mw.config.get('wgNamespaceNumber') !== -1 || mw.config.get('wgCanonicalSpecialPageName') !== "Allmessages") return;
+
/**
    mw.util.addCSS([
+
* -------------------------------------------------------------------------
        ".TablePager_nav {",
+
* !!! DON'T MODIFY THIS PAGE MANUALLY, YOUR CHANGES WILL BE OVERWRITTEN !!!
        "    user-select: none;",
+
* -------------------------------------------------------------------------
        "}",
+
*/
        ".TablePager_nav-enabled {",
+
var _addText = '{{GHIACode|page=GHIA:MoegirlPediaInterfaceCodes/blob/master/src/gadgets/allmessageFilter/MediaWiki:Gadget-allmessageFilter.js|user=[[U:AnnAngela]]|longId=4f769b86c99bf278bee8d120937a50b49682e4e2|shortId=4f769b8|message=refactor: Stop using jQuery deprecated event shorthand methods}}';
        "    cursor: pointer;",
+
 
        "}",
+
"use strict";
        "#mw-allmessages-filter-status {",
+
(function (isCompleted) {
        "    color: red;",
+
     function run() {
        "}"
+
         if (mw.config.get("wgNamespaceNumber") !== -1 || mw.config.get("wgCanonicalSpecialPageName") !== "Allmessages") {
    ].join('\n'));
+
             return;
    var containter = $('<fieldset/>'),
 
        api = new mw.Api(),
 
        length = +$('#mw-table_pager_limit_label').val();
 
    var index = 0,
 
        filter, rfilter, am;
 
    var enablePrevLink = function enablePrevLink(b) {
 
        if (!b) $('.TablePager_nav-prev div').removeClass("TablePager_nav-enabled").addClass("TablePager_nav-disabled");
 
        else $('.TablePager_nav-prev div').removeClass("TablePager_nav-disabled").addClass("TablePager_nav-enabled");
 
    };
 
     var enableNextLink = function enableNextLink(b) {
 
         if (!b) $('.TablePager_nav-next div').removeClass("TablePager_nav-enabled").addClass("TablePager_nav-disabled");
 
        else $('.TablePager_nav-next div').removeClass("TablePager_nav-disabled").addClass("TablePager_nav-enabled");
 
    };
 
    var check = function check(am) {
 
        if (am.length <= length) {
 
             enableNextLink(false);
 
            enablePrevLink(false);
 
        } else if (index === 0) {
 
            enablePrevLink(false);
 
            enableNextLink(true);
 
        } else if (index + length < am.length) {
 
            enablePrevLink(true);
 
            enableNextLink(true);
 
        } else {
 
            enablePrevLink(true);
 
            enableNextLink(false);
 
 
         }
 
         }
    };
+
        mw.util.addCSS([
    var init = function init() {
+
            ".TablePager_nav {",
        if (!$('#mw-allmessages-form')[0]) return;
+
            "    user-select: none;",
        $('#mw-allmessages-form').remove();
+
            "}",
        $('.TablePager_nav td').remove();
+
            ".TablePager_nav-enabled {",
        $('.TablePager_nav tr').append('<td style="width: 50%;" class="TablePager_nav-prev"><div class="TablePager_nav-disabled">上一页</div></td><td style="width: 50%;" class="TablePager_nav-next"><div class="TablePager_nav-disabled">下一页</div></td>');
+
            "    cursor: pointer;",
        $('.TablePager_nav-prev div').on('click', function() {
+
            "}",
            if ($(this).hasClass('TablePager_nav-disabled')) return false;
+
            "#mw-allmessages-filter-status {",
            index -= length;
+
            "    color: red;",
            if (index < 0) index = 0;
+
            "}",
             load(am.slice(index, index + length));
+
        ].join("\n"));
 +
        var containter = $("<fieldset/>"), api = new mw.Api(), length = +$("#mw-table_pager_limit_label").val();
 +
        var index = 0, filter, rfilter, am;
 +
        var enablePrevLink = function enablePrevLink(b) {
 +
            if (!b) {
 +
                $(".TablePager_nav-prev div").removeClass("TablePager_nav-enabled").addClass("TablePager_nav-disabled");
 +
            }
 +
            else {
 +
                $(".TablePager_nav-prev div").removeClass("TablePager_nav-disabled").addClass("TablePager_nav-enabled");
 +
            }
 +
        };
 +
        var enableNextLink = function enableNextLink(b) {
 +
            if (!b) {
 +
                $(".TablePager_nav-next div").removeClass("TablePager_nav-enabled").addClass("TablePager_nav-disabled");
 +
            }
 +
            else {
 +
                $(".TablePager_nav-next div").removeClass("TablePager_nav-disabled").addClass("TablePager_nav-enabled");
 +
            }
 +
        };
 +
        var check = function check(am) {
 +
            if (am.length <= length) {
 +
                enableNextLink(false);
 +
                enablePrevLink(false);
 +
            }
 +
            else if (index === 0) {
 +
                enablePrevLink(false);
 +
                enableNextLink(true);
 +
            }
 +
            else if (index + length < am.length) {
 +
                enablePrevLink(true);
 +
                enableNextLink(true);
 +
            }
 +
            else {
 +
                enablePrevLink(true);
 +
                enableNextLink(false);
 +
            }
 +
        };
 +
        var init = function init() {
 +
            if (!$("#mw-allmessages-form")[0]) {
 +
                return;
 +
            }
 +
            $("#mw-allmessages-form").remove();
 +
            $(".TablePager_nav td").remove();
 +
            $(".TablePager_nav tr").append('<td style="width: 50%;" class="TablePager_nav-prev"><div class="TablePager_nav-disabled">上一页</div></td><td style="width: 50%;" class="TablePager_nav-next"><div class="TablePager_nav-disabled">下一页</div></td>');
 +
            $(".TablePager_nav-prev div").on("click", function () {
 +
                if ($(this).hasClass("TablePager_nav-disabled")) {
 +
                    return false;
 +
                }
 +
                index -= length;
 +
                if (index < 0) {
 +
                    index = 0;
 +
                }
 +
                load(am.slice(index, index + length));
 +
             });
 +
            $(".TablePager_nav-next div").on("click", function () {
 +
                if ($(this).hasClass("TablePager_nav-disabled")) {
 +
                    return false;
 +
                }
 +
                index += length;
 +
                load(am.slice(index, index + length));
 +
            });
 +
        };
 +
        var load = function (_am) {
 +
            check(am);
 +
            var head = $("#mw-allmessagestable thead");
 +
            if (head.find("tr").length !== 1) {
 +
                head.find("td:first").removeAttr("rowspan");
 +
                head.find("tr:first td:last").text("当前信息文字");
 +
                head.find("tr:not(:first)").remove();
 +
            }
 +
            var list = $("#mw-allmessagestable tbody");
 +
            list.empty();
 +
            _am.forEach(function (n) {
 +
                var name = n.name, text = n["*"];
 +
                var row = $("<tr/>");
 +
                row.attr("id", name).append('<td class="am_title"></td><td class="am_default"></td>');
 +
                $("<a/>").addClass("external").attr({
 +
                    href: "".concat(mw.config.get("wgServer")).concat(mw.config.get("wgScriptPath"), "/MediaWiki:").concat(name),
 +
                    rel: "nofollow"
 +
                }).html(name.replace(rfilter, "<span style=\"font-weight: bold;\">".concat(filter, "</span>"))).appendTo(row.find(".am_title"));
 +
                row.find(".am_default").text(text);
 +
                list.append(row);
 +
            });
 +
        };
 +
        $("#mw-allmessages-form").after(containter);
 +
        containter.append("<legend>搜索</legend>");
 +
        var table = $("<table/>");
 +
        containter.append(table);
 +
        table.append("<tr></tr><tr></tr>");
 +
        $("<td/>").addClass("mw-label").html('<label for="mw-allmessages-filter">以含有此字符串过滤:</label>').appendTo(table.find("tr:first"));
 +
        $("<td/>").addClass("mw-input").html('<input size="20" value="" id="mw-allmessages-filter">').appendTo(table.find("tr:first"));
 +
        $("<td/>").appendTo(table.find("tr:last"));
 +
        var submit = $("<button/>");
 +
        submit.text("搜索");
 +
        $("<td/>").addClass("mw-input").append(submit).appendTo(table.find("tr:last"));
 +
        var input = $("#mw-allmessages-filter");
 +
        submit.on("click", function () {
 +
            if (!input.val()) {
 +
                return oouiDialog.alert("请输入内容以搜索系统消息");
 +
            }
 +
            $("#mw-allmessages-filter-status").remove();
 +
            init();
 +
            filter = input.val();
 +
            rfilter = RegExp(filter, "i");
 +
            containter.append('<div id="mw-allmessages-filter-status">正在加载中……</div>');
 +
            api.post({
 +
                action: "query",
 +
                format: "json",
 +
                meta: "allmessages",
 +
                amfilter: filter
 +
            }).then(function (data) {
 +
                am = data.query.allmessages;
 +
                index = 0;
 +
                $("#mw-allmessages-filter-status").remove();
 +
                load(am.slice(index, index + length));
 +
            }, function () {
 +
                $("#mw-allmessages-filter-status").remove();
 +
                containter.append('<div id="mw-allmessages-filter-status">发生错误,请重试!</div>');
 +
            });
 
         });
 
         });
         $('.TablePager_nav-next div').on('click', function() {
+
         input.on("keypress", function (e) {
             if ($(this).hasClass('TablePager_nav-disabled')) return false;
+
             if (e.key === "Enter") {
            index += length;
+
                submit.trigger("click");
             load(am.slice(index, index + length));
+
             }
 
         });
 
         });
     };
+
     }
     var load = function load(_am) {
+
     if (isCompleted) {
         check(am);
+
         run();
        var head = $('#mw-allmessagestable thead');
+
    }
        if (head.find('tr').length !== 1) {
+
    else {
            head.find('td:first').removeAttr('rowspan');
+
         $(window).on("load", run);
            head.find('tr:first td:last').text('当前信息文字');
+
    }
            head.find('tr:not(:first)').remove();
+
})(document.readyState === "complete");
        }
+
 
         var list = $('#mw-allmessagestable tbody');
+
/* </pre> */
        list.empty();
 
        _am.forEach(function(n) {
 
            var name = n.name,
 
                text = n['*'];
 
            var row = $('<tr/>');
 
            row.attr('id', name).append('<td class="am_title"></td><td class="am_default"></td>');
 
            $('<a/>').addClass('external').attr({
 
                href: 'https://zh.moegirl.org.cn/MediaWiki:' + name,
 
                rel: 'nofollow'
 
            }).html(name.replace(rfilter, '<span style="font-weight: bold;">' + filter + '</span>')).appendTo(row.find('.am_title'));
 
            row.find('.am_default').text(text);
 
            list.append(row);
 
        });
 
    };
 
    $('#mw-allmessages-form').after(containter);
 
    containter.append('<legend>搜索</legend>');
 
    var table = $('<table/>');
 
    containter.append(table);
 
    table.append('<tr></tr><tr></tr>');
 
    $('<td/>').addClass('mw-label').html('<label for="mw-allmessages-filter">以含有此字符串过滤:</label>').appendTo(table.find('tr:first'));
 
    $('<td/>').addClass('mw-input').html('<input size="20" value="" id="mw-allmessages-filter">').appendTo(table.find('tr:first'));
 
    $('<td/>').appendTo(table.find('tr:last'));
 
    var submit = $('<button/>');
 
    submit.text('搜索');
 
    $('<td/>').addClass('mw-input').append(submit).appendTo(table.find('tr:last'));
 
    var input = $('#mw-allmessages-filter');
 
    submit.on('click', function() {
 
        if (!input.val()) return alert('请输入内容以搜索系统消息');
 
        $('#mw-allmessages-filter-status').remove();
 
        init();
 
        filter = input.val();
 
        rfilter = RegExp(filter, 'i');
 
        containter.append('<div id="mw-allmessages-filter-status">正在加载中……</div>');
 
        api.post({
 
            action: 'query',
 
            format: 'json',
 
            meta: 'allmessages',
 
            amfilter: filter
 
        }).then(function(data) {
 
            am = data.query.allmessages;
 
            index = 0;
 
            $('#mw-allmessages-filter-status').remove();
 
            load(am.slice(index, index + length));
 
        }, function() {
 
            $('#mw-allmessages-filter-status').remove();
 
            containter.append('<div id="mw-allmessages-filter-status">发生错误,请重试!</div>');
 
        });
 
    });
 
    input.on('keypress', function(e) {
 
        if (e.which == 13) submit.click();
 
    });
 
});
 

2022年9月6日 (火) 02:54時点における最新版

/* <pre> */
/**
 * -------------------------------------------------------------------------
 * !!! DON'T MODIFY THIS PAGE MANUALLY, YOUR CHANGES WILL BE OVERWRITTEN !!!
 * -------------------------------------------------------------------------
 */
var _addText = '{{GHIACode|page=GHIA:MoegirlPediaInterfaceCodes/blob/master/src/gadgets/allmessageFilter/MediaWiki:Gadget-allmessageFilter.js|user=[[U:AnnAngela]]|longId=4f769b86c99bf278bee8d120937a50b49682e4e2|shortId=4f769b8|message=refactor: Stop using jQuery deprecated event shorthand methods}}';

"use strict";
(function (isCompleted) {
    function run() {
        if (mw.config.get("wgNamespaceNumber") !== -1 || mw.config.get("wgCanonicalSpecialPageName") !== "Allmessages") {
            return;
        }
        mw.util.addCSS([
            ".TablePager_nav {",
            "    user-select: none;",
            "}",
            ".TablePager_nav-enabled {",
            "    cursor: pointer;",
            "}",
            "#mw-allmessages-filter-status {",
            "    color: red;",
            "}",
        ].join("\n"));
        var containter = $("<fieldset/>"), api = new mw.Api(), length = +$("#mw-table_pager_limit_label").val();
        var index = 0, filter, rfilter, am;
        var enablePrevLink = function enablePrevLink(b) {
            if (!b) {
                $(".TablePager_nav-prev div").removeClass("TablePager_nav-enabled").addClass("TablePager_nav-disabled");
            }
            else {
                $(".TablePager_nav-prev div").removeClass("TablePager_nav-disabled").addClass("TablePager_nav-enabled");
            }
        };
        var enableNextLink = function enableNextLink(b) {
            if (!b) {
                $(".TablePager_nav-next div").removeClass("TablePager_nav-enabled").addClass("TablePager_nav-disabled");
            }
            else {
                $(".TablePager_nav-next div").removeClass("TablePager_nav-disabled").addClass("TablePager_nav-enabled");
            }
        };
        var check = function check(am) {
            if (am.length <= length) {
                enableNextLink(false);
                enablePrevLink(false);
            }
            else if (index === 0) {
                enablePrevLink(false);
                enableNextLink(true);
            }
            else if (index + length < am.length) {
                enablePrevLink(true);
                enableNextLink(true);
            }
            else {
                enablePrevLink(true);
                enableNextLink(false);
            }
        };
        var init = function init() {
            if (!$("#mw-allmessages-form")[0]) {
                return;
            }
            $("#mw-allmessages-form").remove();
            $(".TablePager_nav td").remove();
            $(".TablePager_nav tr").append('<td style="width: 50%;" class="TablePager_nav-prev"><div class="TablePager_nav-disabled">上一页</div></td><td style="width: 50%;" class="TablePager_nav-next"><div class="TablePager_nav-disabled">下一页</div></td>');
            $(".TablePager_nav-prev div").on("click", function () {
                if ($(this).hasClass("TablePager_nav-disabled")) {
                    return false;
                }
                index -= length;
                if (index < 0) {
                    index = 0;
                }
                load(am.slice(index, index + length));
            });
            $(".TablePager_nav-next div").on("click", function () {
                if ($(this).hasClass("TablePager_nav-disabled")) {
                    return false;
                }
                index += length;
                load(am.slice(index, index + length));
            });
        };
        var load = function (_am) {
            check(am);
            var head = $("#mw-allmessagestable thead");
            if (head.find("tr").length !== 1) {
                head.find("td:first").removeAttr("rowspan");
                head.find("tr:first td:last").text("当前信息文字");
                head.find("tr:not(:first)").remove();
            }
            var list = $("#mw-allmessagestable tbody");
            list.empty();
            _am.forEach(function (n) {
                var name = n.name, text = n["*"];
                var row = $("<tr/>");
                row.attr("id", name).append('<td class="am_title"></td><td class="am_default"></td>');
                $("<a/>").addClass("external").attr({
                    href: "".concat(mw.config.get("wgServer")).concat(mw.config.get("wgScriptPath"), "/MediaWiki:").concat(name),
                    rel: "nofollow"
                }).html(name.replace(rfilter, "<span style=\"font-weight: bold;\">".concat(filter, "</span>"))).appendTo(row.find(".am_title"));
                row.find(".am_default").text(text);
                list.append(row);
            });
        };
        $("#mw-allmessages-form").after(containter);
        containter.append("<legend>搜索</legend>");
        var table = $("<table/>");
        containter.append(table);
        table.append("<tr></tr><tr></tr>");
        $("<td/>").addClass("mw-label").html('<label for="mw-allmessages-filter">以含有此字符串过滤:</label>').appendTo(table.find("tr:first"));
        $("<td/>").addClass("mw-input").html('<input size="20" value="" id="mw-allmessages-filter">').appendTo(table.find("tr:first"));
        $("<td/>").appendTo(table.find("tr:last"));
        var submit = $("<button/>");
        submit.text("搜索");
        $("<td/>").addClass("mw-input").append(submit).appendTo(table.find("tr:last"));
        var input = $("#mw-allmessages-filter");
        submit.on("click", function () {
            if (!input.val()) {
                return oouiDialog.alert("请输入内容以搜索系统消息");
            }
            $("#mw-allmessages-filter-status").remove();
            init();
            filter = input.val();
            rfilter = RegExp(filter, "i");
            containter.append('<div id="mw-allmessages-filter-status">正在加载中……</div>');
            api.post({
                action: "query",
                format: "json",
                meta: "allmessages",
                amfilter: filter
            }).then(function (data) {
                am = data.query.allmessages;
                index = 0;
                $("#mw-allmessages-filter-status").remove();
                load(am.slice(index, index + length));
            }, function () {
                $("#mw-allmessages-filter-status").remove();
                containter.append('<div id="mw-allmessages-filter-status">发生错误,请重试!</div>');
            });
        });
        input.on("keypress", function (e) {
            if (e.key === "Enter") {
                submit.trigger("click");
            }
        });
    }
    if (isCompleted) {
        run();
    }
    else {
        $(window).on("load", run);
    }
})(document.readyState === "complete");

/* </pre> */