MediaWiki:Common.js

From Essence of Flow Wiki
Revision as of 22:01, 18 December 2025 by Essencewikilol (talk | contribs)
Jump to navigation Jump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */

function setupLevelSliderSpan(wrapperSelector, min, max) {
    const wrappers = document.querySelectorAll(wrapperSelector);
    wrappers.forEach(wrapper => {
        const valueDisplay = wrapper.querySelector('.levelValue');
        const increase = wrapper.querySelector('.increase');
        const decrease = wrapper.querySelector('.decrease');
        if (!valueDisplay || !increase || !decrease) return;

        const updateDisplay = () => {
            valueDisplay.textContent = valueDisplay.dataset.value;
        };

        increase.addEventListener('click', () => {
            let current = parseInt(valueDisplay.dataset.value, 10);
            if (current < max) valueDisplay.dataset.value = current + 1;
            updateDisplay();
        });

        decrease.addEventListener('click', () => {
            let current = parseInt(valueDisplay.dataset.value, 10);
            if (current > min) valueDisplay.dataset.value = current - 1;
            updateDisplay();
        });

        updateDisplay();
    });
}

// Use MediaWiki's hook to run after the page is loaded
mw.hook('wikipage.content').add(() => {
    setupLevelSliderSpan('.level-slider-wrapper', 1, 10);
});