réinitialize suggested, avoiding double with selected (wip)

This commit is contained in:
Mathieu Jaumotte 2021-05-05 20:45:17 +02:00
parent 088e522292
commit 9e1c151402
2 changed files with 34 additions and 12 deletions

View File

@ -22,9 +22,9 @@ let getDataPromise = getAccompanyingCourse(id)
errorMsg: []
},
getters: {
getSelectedByid: (state) => (id) => {
return state.add_persons.selected.find(item => item.id === id)
}
//getSelectedByid: (state) => (id) => {
// return state.add_persons.selected.find(item => item.id === id)
//}
},
mutations: {
removeParticipation(state, item) {
@ -34,17 +34,14 @@ let getDataPromise = getAccompanyingCourse(id)
closeParticipation(state, { participation, item }) {
console.log('mutation: close item', item.id);
state.accompanying_course.participations.filter(participation => participation !== item);
//console.log('participation', participation);
},
addParticipation(state, { participation, item }) {
//console.log('### mutation: add participation', participation);
state.accompanying_course.participations.push(participation);
//console.log('count participations from state', state.accompanying_course.participations.length);
//console.log('avant', state.add_persons.selected);
state.add_persons.selected = state.add_persons.selected.filter(value => value !== item);
//console.log('après', state.add_persons.selected);
state.add_persons.query = "";
state.add_persons.suggested = [];
},
@ -53,8 +50,34 @@ let getDataPromise = getAccompanyingCourse(id)
state.add_persons = Object.assign({}, state.add_persons, query);
},
loadSuggestions(state, suggested) {
//state.add_persons.suggested = []; // <== empêche la création du proxy, réinitialiser autrement
state.add_persons.suggested.splice(0,
state.add_persons.suggested.length
);
//console.log('suggestions', state.add_persons.suggested);
suggested.forEach(function(item) {
state.add_persons.suggested.push(item);
});
//state.add_persons.suggested = suggested;
console.log('selections', state.add_persons.selected);
console.log('suggestions', state.add_persons.suggested);
// doublons qd on ré-affiche des suggestions avec certains selected
state.add_persons.suggested = suggested;
let intersection = state.add_persons.suggested.filter(
item => state.add_persons.selected.indexOf(item) !== -1
/*
function(item) {
let x = state.add_persons.selected.indexOf(item);
console.log('indexof', x);
return x !== -1
}
*/
);
console.log('intersection', intersection);
state.add_persons.suggested = state.add_persons.suggested.filter(item => item !== intersection);
},
updateSelected(state, value) {
console.log('update selected values', value);
@ -72,8 +95,8 @@ let getDataPromise = getAccompanyingCourse(id)
commit('closeParticipation', { participation, payload });
resolve();
}))
.catch((error) => { // si y a une erreur
//commit('removeParticipation', payload);
.catch((error) => {
console.log('error', error);
state.errorMsg.push(error.message);
});
},
@ -84,8 +107,7 @@ let getDataPromise = getAccompanyingCourse(id)
commit('addParticipation', { participation, payload });
resolve();
}))
.catch((error) => { // si y a une erreur
//commit('removeParticipation', payload);
.catch((error) => {
state.errorMsg.push(error.message);
});
},

View File

@ -45,7 +45,7 @@
v-bind:key="item.id">
</person-suggestion>
<button v-if="query.length >= 3" class="sc-button bt-create ml-5 mt-2" name="createPerson">
Ajouter "{{ query }}"
{{ $t('action.create') }} "{{ query }}"
</button>
</div>
</template>