Merge pull request #5242 from vivek-webkul/patch-47

[Fixed: #5219 Issue in multi select data in every datagrid.]
This commit is contained in:
Devansh 2021-11-08 13:03:12 +05:30 committed by GitHub
commit fafe0d81c4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 59 additions and 3 deletions

View File

@ -4,8 +4,11 @@
<tr>
@if ($enableMassActions)
<td>
@php
$record_id = $record->{$index};
@endphp
<span class="checkbox">
<input type="checkbox" v-model="dataIds" @change="select" value="{{ $record->{$index} }}">
<input type="checkbox" v-model="dataIds" @change="select($event)" value="{{ $record_id }}">
<label class="checkbox-view" for="checkbox"></label>
</span>

View File

@ -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) {