MediaWiki:Common.js

From Valheim Wiki
Revision as of 23:03, 1 January 2022 by Mave (talk | contribs)

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)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */

$(function () {

    $('.crafts.crafts-upgrades tr').each(function (item) {
        var tr = $(this);
        var tdValues = tr.find('td:nth-child(n+2)');
        var lastVal = 'zzz';
        var lastTd = false;
        tdValues.each(function (index) {
            var td = $(this);
//            console.log($(this).attr('data-prop'));
            var currentValue = $(td).text();
//            console.log('currentvalue: ', currentValue);
//            console.log('lastvalue: ', lastVal);
//            console.log('currentvalue === lastvalue: ', currentValue === lastVal);
            if (currentValue === lastVal) {
                var firstTd = $(tdValues[0]);
                var currentColspan = $(firstTd).attr('colspan');
                if (!currentColspan) {
                    currentColspan = 1;
                }
                $(firstTd)
                    .attr('colspan', currentColspan + 1)
                    .css({textAlign: 'center'});
                $(this).hide();
            }
            lastTd = td;
            lastVal = currentValue;
//            console.log('---------------');
        });
    });

    // Retrieve references to current table TR elements
    var collection = Array.from($(this).find('.crafts.crafts-upgrades tr'));
    collection.sort(function (x, y) {
        console.log(x);
        console.log(y);
        let posX = +x.dataset.order;
        let posY = +y.dataset.order;
        // Behavior when items haven't the same position
        if (posX != posY) {
            return posX > posY ? 1 : -1;
        }

        return 0;
    });

    // Finally move items into the container using the computed order
    collection.forEach(element => {
        this.querySelector('.tbody').append(element);
    });
});