Merge pull request #5333 from devansh-webkul/datagrid-issue-fixed
Fixed datagrid issue when there is more than 1 mass action of the same type
This commit is contained in:
commit
a3103f67d3
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"/js/ui.js": "/js/ui.js?id=a172ef8f02babda2160d",
|
||||
"/js/ui.js": "/js/ui.js?id=7a31a00fd86bc23cf3fb",
|
||||
"/css/ui.css": "/css/ui.css?id=87c15a3e7af4ab272377"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -490,7 +490,10 @@
|
|||
index) in massActions"
|
||||
v-text="massAction.label"
|
||||
:key="index"
|
||||
:value="massAction.type"
|
||||
:value="{
|
||||
id: index,
|
||||
value: massAction.type
|
||||
}"
|
||||
></option>
|
||||
</select>
|
||||
</div>
|
||||
|
|
@ -498,7 +501,7 @@
|
|||
<div
|
||||
class="control-group"
|
||||
style="margin-left: 10px"
|
||||
v-if="massActionType == 'update'"
|
||||
v-if="massActionType.value == 'update'"
|
||||
>
|
||||
<select
|
||||
class="control"
|
||||
|
|
@ -719,7 +722,7 @@ export default {
|
|||
dataGridIndex: 0,
|
||||
massActionsToggle: false,
|
||||
massActionTarget: null,
|
||||
massActionType: null,
|
||||
massActionType: this.getDefaultMassActionType(),
|
||||
massActionValues: [],
|
||||
massActionTargets: [],
|
||||
massActionUpdateValue: null,
|
||||
|
|
@ -994,19 +997,12 @@ export default {
|
|||
}
|
||||
|
||||
for (let id in this.massActions) {
|
||||
let targetObj = {
|
||||
this.massActionTargets.push({
|
||||
id: parseInt(id),
|
||||
type: this.massActions[id].type,
|
||||
action: this.massActions[id].action,
|
||||
confirm_text: this.massActions[id].confirm_text
|
||||
};
|
||||
|
||||
this.massActionTargets.push(targetObj);
|
||||
|
||||
targetObj = {};
|
||||
|
||||
if (this.massActions[id].type === 'update') {
|
||||
this.massActionValues = this.massActions[id].options;
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -1018,8 +1014,15 @@ export default {
|
|||
}
|
||||
},
|
||||
|
||||
getDefaultMassActionType: function() {
|
||||
return {
|
||||
id: null,
|
||||
value: null
|
||||
};
|
||||
},
|
||||
|
||||
changeMassActionTarget: function() {
|
||||
if (this.massActionType === 'delete') {
|
||||
if (this.massActionType.value === 'delete') {
|
||||
for (let i in this.massActionTargets) {
|
||||
if (this.massActionTargets[i].type === 'delete') {
|
||||
this.massActionTarget = this.massActionTargets[
|
||||
|
|
@ -1035,9 +1038,12 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
if (this.massActionType === 'update') {
|
||||
if (this.massActionType.value === 'update') {
|
||||
for (let i in this.massActionTargets) {
|
||||
if (this.massActionTargets[i].type === 'update') {
|
||||
this.massActionValues = this.massActions[
|
||||
this.massActionType.id
|
||||
].options;
|
||||
this.massActionTarget = this.massActionTargets[
|
||||
i
|
||||
].action;
|
||||
|
|
@ -1368,7 +1374,7 @@ export default {
|
|||
|
||||
if (this.dataIds.length === 0) {
|
||||
this.massActionsToggle = false;
|
||||
this.massActionType = null;
|
||||
this.massActionType = this.getDefaultMassActionType();
|
||||
} else {
|
||||
this.massActionsToggle = true;
|
||||
}
|
||||
|
|
@ -1426,7 +1432,7 @@ export default {
|
|||
|
||||
this.allSelected = false;
|
||||
|
||||
this.massActionType = null;
|
||||
this.massActionType = this.getDefaultMassActionType();
|
||||
},
|
||||
|
||||
paginate: function(e) {
|
||||
|
|
|
|||
|
|
@ -15,11 +15,11 @@
|
|||
|
||||
<div class="control-group">
|
||||
<select class="control" v-model="massActionType" @change="changeMassActionTarget" name="massaction-type" required>
|
||||
<option v-for="(massAction, index) in massActions" :key="index" :value="massAction.type">@{{ massAction.label }}</option>
|
||||
<option v-for="(massAction, index) in massActions" :key="index" :value="{ id: index, value: massAction.type}">@{{ massAction.label }}</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="control-group" style="margin-left: 10px;" v-if="massActionType == 'update'">
|
||||
<div class="control-group" style="margin-left: 10px;" v-if="massActionType.value == 'update'">
|
||||
<select class="control" v-model="massActionUpdateValue" name="update-options" required>
|
||||
<option v-for="(massActionValue, id) in massActionValues" :value="massActionValue">@{{ id }}</option>
|
||||
</select>
|
||||
|
|
|
|||
|
|
@ -281,7 +281,7 @@
|
|||
massActionsToggle: false,
|
||||
massActionTarget: null,
|
||||
massActionConfirmText: '{{ __('ui::app.datagrid.click_on_action') }}',
|
||||
massActionType: null,
|
||||
massActionType: this.getDefaultMassActionType(),
|
||||
massActionValues: [],
|
||||
massActionTargets: [],
|
||||
massActionUpdateValue: null,
|
||||
|
|
@ -472,19 +472,12 @@
|
|||
}
|
||||
|
||||
for (let id in this.massActions) {
|
||||
targetObj = {
|
||||
this.massActionTargets.push({
|
||||
'id': parseInt(id),
|
||||
'type': this.massActions[id].type,
|
||||
'action': this.massActions[id].action,
|
||||
'confirm_text': this.massActions[id].confirm_text
|
||||
};
|
||||
|
||||
this.massActionTargets.push(targetObj);
|
||||
|
||||
targetObj = {};
|
||||
|
||||
if (this.massActions[id].type === 'update') {
|
||||
this.massActionValues = this.massActions[id].options;
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -496,8 +489,23 @@
|
|||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Reset mass action type.
|
||||
*
|
||||
* @return {!object}
|
||||
*/
|
||||
getDefaultMassActionType: function () {
|
||||
return {
|
||||
id: null,
|
||||
value: null
|
||||
};
|
||||
},
|
||||
|
||||
/**
|
||||
* Change mass action target.
|
||||
*/
|
||||
changeMassActionTarget: function () {
|
||||
if (this.massActionType === 'delete') {
|
||||
if (this.massActionType.value === 'delete') {
|
||||
for (let i in this.massActionTargets) {
|
||||
if (this.massActionTargets[i].type === 'delete') {
|
||||
this.massActionTarget = this.massActionTargets[i].action;
|
||||
|
|
@ -508,9 +516,10 @@
|
|||
}
|
||||
}
|
||||
|
||||
if (this.massActionType === 'update') {
|
||||
if (this.massActionType.value === 'update') {
|
||||
for (let i in this.massActionTargets) {
|
||||
if (this.massActionTargets[i].type === 'update') {
|
||||
this.massActionValues = this.massActions[this.massActionType.id].options;
|
||||
this.massActionTarget = this.massActionTargets[i].action;
|
||||
this.massActionConfirmText = this.massActionTargets[i].confirm_text ? this.massActionTargets[i].confirm_text : this.massActionConfirmText;
|
||||
|
||||
|
|
@ -898,7 +907,7 @@
|
|||
|
||||
if (this.dataIds.length === 0) {
|
||||
this.massActionsToggle = false;
|
||||
this.massActionType = null;
|
||||
this.massActionType = this.getDefaultMassActionType();
|
||||
} else {
|
||||
this.massActionsToggle = true;
|
||||
}
|
||||
|
|
@ -945,7 +954,7 @@
|
|||
|
||||
this.allSelected = false;
|
||||
|
||||
this.massActionType = null;
|
||||
this.massActionType = this.getDefaultMassActionType();
|
||||
|
||||
this.setSelectedIndexes();
|
||||
},
|
||||
|
|
@ -967,7 +976,7 @@
|
|||
|
||||
if (this.dataIds.length === 0) {
|
||||
this.massActionsToggle = false;
|
||||
this.massActionType = null;
|
||||
this.massActionType = this.getDefaultMassActionType();
|
||||
}
|
||||
} else {
|
||||
delete selectedIndexes[key];
|
||||
|
|
|
|||
Loading…
Reference in New Issue