MediaWiki:Common.js

From Valheim Wiki
Revision as of 23:13, 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('---------------');
        });
    });

try {
    // Retrieve references to current table TR elements
    var collection = Array.from($(this).find('.crafts.crafts-upgrades tr'));

	collection.sort(function (x, y) {
		if($(x).children('th').length) {
			return -1;
		}

		var posA = $(x).attr('data-order');
		var posB = $(y).attr('data-order');
		
		return posA > posB ? 1 : -1;
	});
	
	console.log('sorted!');
	console.log(collection);
	
    collection.forEach(function(element) {
    	console.log('ordered element: ', $(element).attr('data-prop'));
        $('.crafts.crafts-upgrades tbody').append(element);
    });
    // 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);
    // });
} catch(e) {
	console.log(e);
}
});