[Fixed: #5219 Issue in multi select data in every datagrid.]

This commit is contained in:
Vivek 2021-10-14 18:27:53 +05:30
parent da58145dc2
commit f25b5df002
2 changed files with 41 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 }}" :checked="dataGridIndexes.includes('{{ $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,24 @@
/**
* 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);
}
}
localStorage.dataGridIndexes = JSON.stringify(this.dataIds);
}
this.allSelected = false;
if (this.dataIds.length === 0) {
this.massActionsToggle = false;
this.massActionType = null;
@ -820,6 +836,23 @@
}
},
/**
* Triggered when page load.
*/
checkedSelectedCheckbox: function () {
if ( typeof(Storage) !== 'undefined' ) {
var selectedIndexes = localStorage.getItem("dataGridIndexes");
this.dataIds = JSON.parse(selectedIndexes);
this.massActionsToggle = true;
this.allSelected = false;
if (this.dataIds.length === 0) {
this.massActionsToggle = false;
this.massActionType = null;
}
}
},
/**
* Triggered when master checkbox is clicked.
*/
@ -869,6 +902,8 @@
this.allSelected = false;
this.massActionType = null;
localStorage.dataGridIndexes = [];
},
paginate: function (e) {