Skip to content

Commit 7da9ce4

Browse files
committed
Merge remote-tracking branch 'origin/ACP2E-4202' into PR_2025_09_25_muntianu
2 parents 661a327 + 97cee2e commit 7da9ce4

File tree

2 files changed

+28
-19
lines changed

2 files changed

+28
-19
lines changed

app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**
2-
* Copyright © Magento, Inc. All rights reserved.
3-
* See COPYING.txt for license details.
2+
* Copyright 2015 Adobe
3+
* All Rights Reserved.
44
*/
55

66
/**
@@ -383,20 +383,20 @@ define([
383383
relevant = true;
384384

385385
switch (actionId) {
386-
case 'selectPage':
387-
relevant = multiplePages && !this.isPageSelected(true);
388-
break;
386+
case 'selectPage':
387+
relevant = multiplePages && !this.isPageSelected(true);
388+
break;
389389

390-
case 'deselectPage':
391-
relevant = multiplePages && this.isPageSelected();
392-
break;
390+
case 'deselectPage':
391+
relevant = multiplePages && this.isPageSelected();
392+
break;
393393

394-
case 'selectAll':
395-
relevant = !this.allSelected();
396-
break;
394+
case 'selectAll':
395+
relevant = !this.allSelected();
396+
break;
397397

398-
case 'deselectAll':
399-
relevant = this.totalSelected() > 0;
398+
case 'deselectAll':
399+
relevant = this.totalSelected() > 0;
400400
}
401401

402402
return relevant;
@@ -438,8 +438,7 @@ define([
438438
* @returns {Multiselect} Chainable.
439439
*/
440440
updateState: function () {
441-
var selected = this.selected().length,
442-
excluded = this.excluded().length,
441+
var excluded = this.excluded().length,
443442
totalSelected = this.totalSelected(),
444443
totalRecords = this.totalRecords(),
445444
allSelected = totalRecords && totalSelected === totalRecords;
@@ -448,8 +447,6 @@ define([
448447
if (excluded === totalRecords && !this.preserveSelectionsOnFilter) {
449448
this.deselectAll();
450449
}
451-
} else if (totalRecords && selected === totalRecords && !this.preserveSelectionsOnFilter) {
452-
this.selectAll();
453450
}
454451

455452
this.allSelected(allSelected);

dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/columns/multiselect.test.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**
2-
* Copyright © Magento, Inc. All rights reserved.
3-
* See COPYING.txt for license details.
2+
* Copyright 2015 Adobe
3+
* All Rights Reserved.
44
*/
55

66
define([
@@ -172,5 +172,17 @@ define([
172172
expect(multiSelect.excluded().toString()).toEqual('3,4');
173173
expect(multiSelect.selected().toString()).toEqual('5,6');
174174
});
175+
176+
it('updateState does not call selectAll when all items are selected', function () {
177+
multiSelect.rows([{ id: 1 }, { id: 2 }]);
178+
multiSelect.totalRecords(2);
179+
multiSelect.excludeMode(false);
180+
multiSelect.selected([1, 2]);
181+
multiSelect.preserveSelectionsOnFilter = false;
182+
spyOn(multiSelect, 'selectAll').and.callThrough();
183+
multiSelect.updateState();
184+
185+
expect(multiSelect.selectAll).not.toHaveBeenCalled();
186+
});
175187
});
176188
});

0 commit comments

Comments
 (0)