diff --git a/resources/assets/src/js/__tests__/skinlib.test.js b/resources/assets/src/js/__tests__/skinlib.test.js index c9b495d7..3c494a79 100644 --- a/resources/assets/src/js/__tests__/skinlib.test.js +++ b/resources/assets/src/js/__tests__/skinlib.test.js @@ -559,8 +559,9 @@ describe('tests for "operations" module', () => { window.trans = jest.fn(key => key); document.body.innerHTML = `
5
- - + + + `; const updateTextureStatus = require(modulePath).updateTextureStatus; @@ -571,6 +572,7 @@ describe('tests for "operations" module', () => { expect($('#1').attr('onclick')).toBe('removeFromCloset(1);'); expect($('#1').html()).toBe('skinlib.removeFromCloset'); expect($('div').html()).toBe('6'); + expect($('#quick-apply').css('display')).not.toBe('none'); updateTextureStatus(1, 'remove'); expect($('a[tid=1]').attr('onclick')).toBe('addToCloset(1);'); @@ -579,6 +581,7 @@ describe('tests for "operations" module', () => { expect($('#1').attr('onclick')).toBe('addToCloset(1);'); expect($('#1').html()).toBe('skinlib.addToCloset'); expect($('div').html()).toBe('5'); + expect($('#quick-apply').css('display')).toBe('none'); }); it('click changing privacy button', async () => { diff --git a/resources/assets/src/js/skinlib/index.js b/resources/assets/src/js/skinlib/index.js index 2341e9a2..4824ecf6 100644 --- a/resources/assets/src/js/skinlib/index.js +++ b/resources/assets/src/js/skinlib/index.js @@ -107,7 +107,8 @@ function renderSkinlibItemComponent(item) { item.name = $.fn.dataTable.render.text().filter(item.name); - return ` + return ` +
@@ -120,6 +121,7 @@ function renderSkinlibItemComponent(item) {

+
diff --git a/resources/assets/src/js/skinlib/operations.js b/resources/assets/src/js/skinlib/operations.js index daca0429..b85e2526 100644 --- a/resources/assets/src/js/skinlib/operations.js +++ b/resources/assets/src/js/skinlib/operations.js @@ -180,17 +180,21 @@ async function changeTextureModel(tid, oldModel) { * @return {null} */ function updateTextureStatus(tid, action) { - const likes = parseInt($('#likes').html()) + (action === 'add' ? 1 : -1); + const likesCounter = $('#likes').length ? $('#likes') : $(`.item[tid=${tid}] .likes-count`); + const likes = parseInt(likesCounter.html()) + (action === 'add' ? 1 : -1); const buttonAction = (action === 'add') ? 'removeFromCloset' : 'addToCloset'; + likesCounter.html(likes); - $(`a[tid=${tid}]`) + // On "skinlib" page + $(`a.like[tid=${tid}]`) .attr('onclick', `${buttonAction}(${tid});`) .attr('title', trans(`skinlib.${buttonAction}`)) .toggleClass('liked'); - $(`#${tid}`) + + // On "skinlib/show" page + $(`.btn#${tid}`) .attr('onclick', `${buttonAction}(${tid});`) .html(trans(`skinlib.${buttonAction}`)); - $('#likes').html(likes); $('#quick-apply').toggle(action === 'add'); }