MediaWiki:Common.js: Difference between revisions

From Essence of Flow Wiki
Jump to navigation Jump to search
No edit summary
Tag: Reverted
No edit summary
Tag: Reverted
Line 2: Line 2:


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


    const valueDisplay = wrapper.querySelector('.levelValue');
        const updateDisplay = () => {
    const increase = wrapper.querySelector('.increase');
            valueDisplay.textContent = valueDisplay.dataset.value;
    const decrease = wrapper.querySelector('.decrease');
        };


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


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


    increase.addEventListener('click', () => {
        let current = parseInt(valueDisplay.dataset.value);
        if (current < max) valueDisplay.dataset.value = current + 1;
         updateDisplay();
         updateDisplay();
     });
     });
    decrease.addEventListener('click', () => {
        let current = parseInt(valueDisplay.dataset.value);
        if (current > min) valueDisplay.dataset.value = current - 1;
        updateDisplay();
    });
    // initialize display
    updateDisplay();
}
}


// On page load
mw.loader.using('mediawiki.util').then(() => {
document.addEventListener('DOMContentLoaded', () => {
     setupLevelSliderSpan('.level-slider-wrapper', 1, 10);
     setupLevelSliderSpan('.level-slider-wrapper', 1, 10);
});
});

Revision as of 21:59, 18 December 2025

/* 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);
            if (current < max) valueDisplay.dataset.value = current + 1;
            updateDisplay();
        });

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

        updateDisplay();
    });
}

mw.loader.using('mediawiki.util').then(() => {
    setupLevelSliderSpan('.level-slider-wrapper', 1, 10);
});