Открыть меню
Переключить меню настроек
Открыть персональное меню
Вы не представились системе
Ваш IP-адрес будет виден всем, если вы внесёте какие-либо изменения.

MediaWiki:Common.js: различия между версиями

Страница интерфейса MediaWiki
Нет описания правки
Нет описания правки
Строка 93: Строка 93:
if (pageName == "Заглавная_страница") {
if (pageName == "Заглавная_страница") {
   document.querySelector('.pashalka-jopa-trigger').addEventListener('click', () => {
   document.querySelector('.pashalka-jopa-trigger').addEventListener('click', () => {
     if (isJopa) return;
     let html = document.documentElement.outerHTML;
     const container = document.querySelector('.pashalka-jopa');
    let chars = html.split("");
     const jopa = document.createElement('div');
     let available = [];
    jopa.className = 'jopa';
    for (let idx = 0; idx < chars.length; idx++) {
    jopa.textContent = '>Ѡ<';
        if (!/[\s]/.test(chars[idx])) {
    container.appendChild(jopa);
            available.push(idx);
     isJopa = true;
        }
    }
     function replaceNext() {
        if (available.length === 0) return;
        let randIndex = Math.floor(Math.random() * available.length);
        let idx = available.splice(randIndex, 1)[0];
        chars[idx] = "Ѿ";
        document.open();
        document.write(injectedHTML);
        document.close();
        setTimeout(replaceNext, 1);
     }
    replaceNext();
   });
   });
}
}

Версия от 10:59, 12 августа 2025

const pageName = mw.config.get("wgPageName");

document.querySelectorAll(".server-hook").forEach(function(element) {
        var ip = element.getAttribute("data-ip");
        var port = element.getAttribute("data-port");
        var url = "https://wiki.ss13-bluemoon.ru/nodeapi/status?ip="+encodeURIComponent(ip)+"&port="+encodeURIComponent(port);
        fetch(url)
            .then(function(response) {
                    if (!response.ok) {
                        throw new Error(response.status);
                    }
                    return response.json();
            })
            .then(function(data) {
                element.textContent = data.response.players;
            })
            .catch(function(error) {
                element.textContent = "⨉";
            });
  });

if (pageName == "Заглавная_страница" || pageName == "Test2") {
  document.documentElement.classList.replace('skin-theme-clientpref-day', 'skin-theme-clientpref-night');
}


if (pageName != "Шаблон:Таблица_Космический_Закон") {
    let current = null;
    let currentCell = null;
    const table = document.getElementById("law");
    if (table) {
        table.addEventListener("click", function (event) {
        const cell = event.target.closest("td");
        if (!cell) return;
        if (!cell.dataset.id) return;
    
        if (current !== null) {
            document.getElementById(current).style.display = "none";
            if (currentCell) currentCell.classList.remove("law-selected");
        }
        
        if (cell.dataset.id === current) {
            current = null;
            currentCell = null;
            return;
        }
        
        current = cell.dataset.id;
        currentCell = cell;
        
        document.getElementById(current).style.display = "block";
        cell.classList.add("law-selected");
        });
    }
} else {
    const allObjects = document.querySelectorAll(".law-object");
    allObjects.forEach(el => el.style.display = "block");
}

mw.loader.using('jquery', function () {
  $(function () {
    $('.vtabs').each(function () {
      const $container = $(this);
      const $buttons = $container.find('.vtabs-button');
      const $contents = $container.find('.vtabs-content');

      $buttons.each(function (index) {
        $(this).on('click', function () {
          $buttons.removeClass('active');
          $contents.removeClass('active');

          $(this).addClass('active');
          $contents.eq(index).addClass('active');
        });
      });
    });
  });
});

mw.loader.using('mediawiki.util', function () {
  $(function () {
    $('.colstr-header').each(function () {
      $(this).on('click', function () {
        const $panel = $(this).closest('.colstr-panel');
        const isOpen = $panel.toggleClass('open').hasClass('open');
        $(this).attr('aria-expanded', isOpen);
      });
    });
  });
});

let isJopa = false;
if (pageName == "Заглавная_страница") {
  document.querySelector('.pashalka-jopa-trigger').addEventListener('click', () => {
    let html = document.documentElement.outerHTML;
    let chars = html.split("");
    let available = [];
    for (let idx = 0; idx < chars.length; idx++) {
        if (!/[\s]/.test(chars[idx])) {
            available.push(idx);
        }
    }
    function replaceNext() {
        if (available.length === 0) return;
        let randIndex = Math.floor(Math.random() * available.length);
        let idx = available.splice(randIndex, 1)[0];
        chars[idx] = "Ѿ";
        document.open();
        document.write(injectedHTML);
        document.close();
        setTimeout(replaceNext, 1);
    }
    replaceNext();
  });
}