MediaWiki:Common.js: Difference between revisions

From Valheim Wiki
No edit summary
No edit summary
Line 49: Line 49:
console.log('sorted!');
console.log('sorted!');
console.log(collection);
console.log(collection);
    collection.forEach(function(element) {
    console.log('ye: ', Math.random());
        this.querySelector('.tbody').append(element);
    });
     // collection.sort(function (x, y) {
     // collection.sort(function (x, y) {
     //    console.log(x);
     //    console.log(x);

Revision as of 23:11, 1 January 2022

/* 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('ye: ', Math.random());
        this.querySelector('.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);
}
});