Common.js: различия между версиями
Материал из ВикиВоины
Строка 2: | Строка 2: | ||
const selflink = document.querySelector('.mw-selflink'); | const selflink = document.querySelector('.mw-selflink'); | ||
timeline.scrollLeft = selflink.offsetLeft - (timeline.offsetWidth - selflink.offsetWidth) / 2; | timeline.scrollLeft = selflink.offsetLeft - (timeline.offsetWidth - selflink.offsetWidth) / 2; | ||
+ | |||
+ | $(document).ready(function () { | ||
+ | var makeInput = function(inputId, listId) { | ||
+ | document.getElementById(inputId).addEventListener("input", function() { | ||
+ | var input = this.value; | ||
+ | var apiUrl = mw.config.get("wgScriptPath") + "/api.php?action=query&format=json&list=allcategories&aclimit=max&acprefix=" + encodeURIComponent(input); | ||
+ | $.getJSON(apiUrl, function(data) { | ||
+ | if (data.query && data.query.allcategories) { | ||
+ | var categories = data.query.allcategories.map(function(category) { return category["*"]; }); | ||
+ | var options = ""; | ||
+ | for (var i = 0; i < categories.length; i++) { | ||
+ | options += "<option value='" + categories[i] + "'>"; | ||
+ | } | ||
+ | document.getElementById(listId).innerHTML = options; | ||
+ | } | ||
+ | }); | ||
+ | }); | ||
+ | }; | ||
+ | |||
+ | makeInput("category-input-1", "categories-1"); | ||
+ | makeInput("category-input-2", "categories-2"); | ||
+ | |||
+ | document.getElementById("apply-button").addEventListener("click", function() { | ||
+ | var category1 = document.getElementById("category-input-1").value; | ||
+ | var category2 = document.getElementById("category-input-2").value; | ||
+ | document.getElementById("dpl-code").value = "<DynamicPageList>\n|category=" + category1 + "\n|category=" + category2 + "\n</DynamicPageList>"; | ||
+ | document.getElementById("dpl-container").innerHTML = document.getElementById("dpl-code").value; | ||
+ | }); | ||
+ | }); |
Версия 08:33, 4 февраля 2023
const timeline = document.querySelector('.ages-timeline'); const selflink = document.querySelector('.mw-selflink'); timeline.scrollLeft = selflink.offsetLeft - (timeline.offsetWidth - selflink.offsetWidth) / 2; $(document).ready(function () { var makeInput = function(inputId, listId) { document.getElementById(inputId).addEventListener("input", function() { var input = this.value; var apiUrl = mw.config.get("wgScriptPath") + "/api.php?action=query&format=json&list=allcategories&aclimit=max&acprefix=" + encodeURIComponent(input); $.getJSON(apiUrl, function(data) { if (data.query && data.query.allcategories) { var categories = data.query.allcategories.map(function(category) { return category["*"]; }); var options = ""; for (var i = 0; i < categories.length; i++) { options += "<option value='" + categories[i] + "'>"; } document.getElementById(listId).innerHTML = options; } }); }); }; makeInput("category-input-1", "categories-1"); makeInput("category-input-2", "categories-2"); document.getElementById("apply-button").addEventListener("click", function() { var category1 = document.getElementById("category-input-1").value; var category2 = document.getElementById("category-input-2").value; document.getElementById("dpl-code").value = "<DynamicPageList>\n|category=" + category1 + "\n|category=" + category2 + "\n</DynamicPageList>"; document.getElementById("dpl-container").innerHTML = document.getElementById("dpl-code").value; }); });