fix socialActions selected visibility if all issues unchecked + cleaning

This commit is contained in:
Mathieu Jaumotte 2021-06-29 12:23:11 +02:00
parent beca41774e
commit 2a974e1269

View File

@ -35,11 +35,6 @@
v-bind:options="socialIssuesOther" v-bind:options="socialIssuesOther"
v-model="value" v-model="value"
@select="addIssueInList"> @select="addIssueInList">
<template v-slot:selection="{ values, search, isOpen }"><!-- {{ values.length }} {{ isOpen }} -->
<span v-if="values.length > 0" class="multiselect__single"></span>
</template>
</VueMultiselect> </VueMultiselect>
</div> </div>
@ -57,7 +52,7 @@
</div> </div>
<check-social-action <check-social-action
v-if="socialIssuesSelected.length" v-if="socialIssuesSelected.length || socialActionsSelected.length"
v-for="action in socialActionsList" v-for="action in socialActionsList"
v-bind:key="action.id" v-bind:key="action.id"
v-bind:action="action" v-bind:action="action"
@ -114,36 +109,40 @@ export default {
} }
}, },
mounted() { mounted() {
console.log('load others issues in multiselect'); /* Load others issues in multiselect
*/
this.issueIsLoading = true; this.issueIsLoading = true;
getSocialIssues().then(response => new Promise((resolve, reject) => { getSocialIssues().then(response => new Promise((resolve, reject) => {
this.$store.commit('updateIssuesOther', response.results); this.$store.commit('updateIssuesOther', response.results);
// ajoute dans la liste les issues déjà associées (si elles ne s'y trouvent pas déjà) /* Add in list the issues already associated (if not yet listed)
*/
this.socialIssuesSelected.forEach(issue => { this.socialIssuesSelected.forEach(issue => {
if (this.socialIssuesList.filter(i => i.id === issue.id).length !== 1) { if (this.socialIssuesList.filter(i => i.id === issue.id).length !== 1) {
this.$store.commit('addIssueInList', issue); this.$store.commit('addIssueInList', issue);
} }
}, this); }, this);
// enlève du multiselect les issues qui sont dans la liste des checkbox /* Remove from multiselect the issues that are not yet in checkbox list
*/
this.socialIssuesList.forEach(issue => { this.socialIssuesList.forEach(issue => {
this.$store.commit('removeIssueInOther', issue); this.$store.commit('removeIssueInOther', issue);
}, this); }, this);
// filtre les issues /* Filter issues
*/
this.$store.commit('filterList', 'issues'); this.$store.commit('filterList', 'issues');
// ajoute dans la liste les actions déjà associées (si elles ne s'y trouvent pas déjà) /* Add in list the actions already associated (if not yet listed)
*/
this.socialActionsSelected.forEach(action => { this.socialActionsSelected.forEach(action => {
this.$store.commit('addActionInList', action); this.$store.commit('addActionInList', action);
}, this); }, this);
// filtre les actions /* Filter issues
*/
this.$store.commit('filterList', 'actions'); this.$store.commit('filterList', 'actions');
this.issueIsLoading = false; this.issueIsLoading = false;
resolve(); resolve();
})); }));
@ -154,7 +153,7 @@ export default {
remove it from multiselect, and add socialActions concerned remove it from multiselect, and add socialActions concerned
*/ */
addIssueInList(value) { addIssueInList(value) {
console.log('addIssueInList', value); //console.log('addIssueInList', value);
this.$store.commit('addIssueInList', value); this.$store.commit('addIssueInList', value);
this.$store.commit('removeIssueInOther', value); this.$store.commit('removeIssueInOther', value);
this.$store.dispatch('addIssueSelected', value); this.$store.dispatch('addIssueSelected', value);
@ -163,28 +162,23 @@ export default {
/* Update value for selected issues checkboxes /* Update value for selected issues checkboxes
*/ */
updateIssuesSelected(issues) { updateIssuesSelected(issues) {
console.log('updateIssuesSelected', issues); //console.log('updateIssuesSelected', issues);
this.$store.dispatch('updateIssuesSelected', issues); this.$store.dispatch('updateIssuesSelected', issues);
this.updateActionsList(); this.updateActionsList();
}, },
/* Update value for selected actions checkboxes /* Update value for selected actions checkboxes
*/ */
updateActionsSelected(actions) { updateActionsSelected(actions) {
console.log('updateActionsSelected', actions); //console.log('updateActionsSelected', actions);
this.$store.dispatch('updateActionsSelected', actions); this.$store.dispatch('updateActionsSelected', actions);
}, },
/* Add socialActions concerned: reset actions list, then loop on each issue selected /* Add socialActions concerned: after reset, loop on each issue selected
to get social actions concerned to get social actions concerned
*/ */
updateActionsList() { updateActionsList() {
console.log('updateActionsList'); //console.log('updateActionsList');
this.resetActionsList();
this.$store.commit('resetActionsList');
// remettre les ActionsSelected dans ActionsList
this.socialIssuesSelected.forEach(item => { this.socialIssuesSelected.forEach(item => {
//console.log('for issue', item.id);
this.actionIsLoading = true; this.actionIsLoading = true;
getSocialActionByIssue(item.id) getSocialActionByIssue(item.id)
@ -199,7 +193,14 @@ export default {
this.actionIsLoading = false; this.actionIsLoading = false;
resolve(); resolve();
})); }));
}, this);
},
/* Reset socialActions List: flush list and restore selected actions
*/
resetActionsList() {
this.$store.commit('resetActionsList');
this.socialActionsSelected.forEach(item => {
this.$store.commit('addActionInList', item);
}, this); }, this);
} }
} }