diff --git a/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js b/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js index 0a29728390592..188431fdeedc5 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js @@ -229,6 +229,15 @@ define([ return this; }, + /** + * Selects or deselects all records on the current page. + * + * @returns {Multiselect} Chainable. + */ + togglePage: function () { + return this.isPageSelected() ? this.deselectPage() : this.selectPage(); + }, + /** * Clears the array of not selected records. * diff --git a/app/code/Magento/Ui/view/base/web/js/grid/massactions.js b/app/code/Magento/Ui/view/base/web/js/grid/massactions.js index 046ff12bfaa6f..758a8341e1736 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/massactions.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/massactions.js @@ -176,10 +176,13 @@ define([ */ _confirm: function (action, callback) { var confirmData = action.confirm; + var data = this.getSelections(); + var total = data.total ? data.total : 0; + var confirmMessage = confirmData.message + ' (' + total + ' record' + (total > 1 ? 's' : '') + ')'; confirm({ title: confirmData.title, - content: confirmData.message, + content: confirmMessage, actions: { confirm: callback } diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/columns/multiselect.html b/app/code/Magento/Ui/view/base/web/templates/grid/columns/multiselect.html index 18dd49bd56ee3..e6e14d5aa335b 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/columns/multiselect.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/columns/multiselect.html @@ -11,7 +11,7 @@ data-bind=" checked: allSelected(), attr: {id: ++ko.uid}, - event: { change: toggleSelectAll }, + event: { change: togglePage }, css: { '_indeterminate': indetermine }, enable: totalRecords">