Действия

MediaWiki

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;
  });
});