diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/store/index.js b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/store/index.js index 74f18db10..88b3d571b 100644 --- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/store/index.js +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/store/index.js @@ -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); }); }, diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/AddPersons.vue b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/AddPersons.vue index e86b7bd43..54e00c63a 100644 --- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/AddPersons.vue +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/AddPersons.vue @@ -45,7 +45,7 @@ v-bind:key="item.id">