diff --git a/packages/Webkul/Ui/src/Resources/views/datagrid/body.blade.php b/packages/Webkul/Ui/src/Resources/views/datagrid/body.blade.php index 5030db55f..23f4e0af7 100644 --- a/packages/Webkul/Ui/src/Resources/views/datagrid/body.blade.php +++ b/packages/Webkul/Ui/src/Resources/views/datagrid/body.blade.php @@ -4,8 +4,11 @@ @if ($enableMassActions) + @php + $record_id = $record->{$index}; + @endphp - + diff --git a/packages/Webkul/Ui/src/Resources/views/datagrid/table.blade.php b/packages/Webkul/Ui/src/Resources/views/datagrid/table.blade.php index 00d998cfe..62132d14f 100644 --- a/packages/Webkul/Ui/src/Resources/views/datagrid/table.blade.php +++ b/packages/Webkul/Ui/src/Resources/views/datagrid/table.blade.php @@ -322,6 +322,7 @@ mounted: function () { this.setParamsAndUrl(); + this.checkedSelectedCheckbox(); if (this.filters.length) { for (let i = 0; i < this.filters.length; i++) { @@ -809,9 +810,29 @@ /** * Triggered when any select box is clicked in the datagrid. */ - select: function () { - this.allSelected = false; + select: function (event) { + var checkboxElement = event.target; + if ( typeof(Storage) !== 'undefined' ) { + if ( checkboxElement.checked ) { + if (! this.dataIds.includes(checkboxElement.value) ) { + this.dataIds.push(checkboxElement.value); + } + } else { + if ( this.dataIds.includes(checkboxElement.value) ) { + this.dataIds.pop(checkboxElement.value); + } + } + var routeArray = this.gridCurrentData.path.split('/'); + var getLastRoute = routeArray[routeArray.length - 1]; + + var routeIndexObj = {}; + routeIndexObj[getLastRoute] = this.dataIds; + + localStorage.dataGridIndexes = JSON.stringify(routeIndexObj); + } + + this.allSelected = false; if (this.dataIds.length === 0) { this.massActionsToggle = false; this.massActionType = null; @@ -820,6 +841,36 @@ } }, + /** + * Triggered when page load. + */ + checkedSelectedCheckbox: function () { + var routeArray = this.gridCurrentData.path.split('/'); + var getLastRoute = routeArray[routeArray.length - 1]; + + if ( typeof(Storage) !== 'undefined' ) { + var selectedIndexes = JSON.parse(localStorage.getItem("dataGridIndexes")); + if ( Object.keys(selectedIndexes).length ) { + for (key in selectedIndexes) { + if ( key === getLastRoute) { + this.dataIds = selectedIndexes[key]; + + this.massActionsToggle = true; + this.allSelected = false; + if (this.dataIds.length === 0) { + this.massActionsToggle = false; + this.massActionType = null; + } + } else { + delete selectedIndexes[key]; + } + } + } + + localStorage.dataGridIndexes = JSON.stringify(selectedIndexes); + } + }, + /** * Triggered when master checkbox is clicked. */ @@ -869,6 +920,8 @@ this.allSelected = false; this.massActionType = null; + + localStorage.dataGridIndexes = []; }, paginate: function (e) {