mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-12 13:24:25 +00:00
avoiding duplicates between selected and suggested (wip)
see comments in store/index.js
This commit is contained in:
parent
a536d2780e
commit
e1fcc41ace
@ -56,31 +56,43 @@ let getDataPromise = getAccompanyingCourse(id)
|
|||||||
},
|
},
|
||||||
loadSuggestions(state, suggested) {
|
loadSuggestions(state, suggested) {
|
||||||
|
|
||||||
|
// les résultats combinent les valeurs suggérées et les valeurs sélectionnées
|
||||||
|
// si on change de recherche les valeurs sélectionnées doivent restées affichées !
|
||||||
|
// c'est pq on affiche indépendamment les 2 tableaux,
|
||||||
|
// mais on veut s'assurer d'enlever les doublons dans le tableau des suggestions
|
||||||
|
|
||||||
|
// problème: certaines fonctions javascript ne supportent pas de manipuler les 2 tableaux
|
||||||
|
// si l'un est un objet virtuel de vue (Proxy)
|
||||||
|
// [{},{},{}] et [Proxy,Proxy,Proxy]
|
||||||
|
|
||||||
|
// a. remplace par les nouvelles valeurs
|
||||||
|
//state.add_persons.suggested = suggested;
|
||||||
|
|
||||||
|
// b.1 réinitialise avec un tableau vide
|
||||||
//state.add_persons.suggested = []; // <== empêche la création du proxy, réinitialiser autrement
|
//state.add_persons.suggested = []; // <== empêche la création du proxy, réinitialiser autrement
|
||||||
|
|
||||||
|
// b.2 vide le tableau avec splice
|
||||||
state.add_persons.suggested.splice(0,
|
state.add_persons.suggested.splice(0,
|
||||||
state.add_persons.suggested.length
|
state.add_persons.suggested.length
|
||||||
);
|
);
|
||||||
//console.log('suggestions', state.add_persons.suggested);
|
|
||||||
|
console.log('suggestions', state.add_persons.suggested);
|
||||||
|
|
||||||
|
// b. pousse les nouvelles valeurs dans le tableau
|
||||||
suggested.forEach(function(item) {
|
suggested.forEach(function(item) {
|
||||||
state.add_persons.suggested.push(item);
|
state.add_persons.suggested.push(item);
|
||||||
});
|
});
|
||||||
//state.add_persons.suggested = suggested;
|
|
||||||
|
|
||||||
console.log('selections', state.add_persons.selected);
|
console.log('selections', state.add_persons.selected);
|
||||||
console.log('suggestions', state.add_persons.suggested);
|
console.log('suggestions', state.add_persons.suggested);
|
||||||
|
|
||||||
// doublons qd on ré-affiche des suggestions avec certains selected
|
// calcule l'intersection des 2 tableaux
|
||||||
let intersection = state.add_persons.suggested.filter(
|
let intersection = state.add_persons.suggested.filter(
|
||||||
item => state.add_persons.selected.indexOf(item) !== -1
|
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; }
|
||||||
function(item) {
|
|
||||||
let x = state.add_persons.selected.indexOf(item);
|
|
||||||
console.log('indexof', x);
|
|
||||||
return x !== -1
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
);
|
);
|
||||||
console.log('intersection', intersection);
|
console.log('intersection', intersection);
|
||||||
|
// enlève l'intersection des 2 tableaux
|
||||||
state.add_persons.suggested = state.add_persons.suggested.filter(item => item !== intersection);
|
state.add_persons.suggested = state.add_persons.suggested.filter(item => item !== intersection);
|
||||||
|
|
||||||
},
|
},
|
||||||
@ -119,6 +131,7 @@ let getDataPromise = getAccompanyingCourse(id)
|
|||||||
},
|
},
|
||||||
setQuery({ commit }, payload) {
|
setQuery({ commit }, payload) {
|
||||||
commit('setQuery', payload);
|
commit('setQuery', payload);
|
||||||
|
console.log('## action: setquery: payload', payload);
|
||||||
if (payload.query.length >= 3) {
|
if (payload.query.length >= 3) {
|
||||||
searchPersons(payload.query)
|
searchPersons(payload.query)
|
||||||
.then(suggested => new Promise((resolve, reject) => {
|
.then(suggested => new Promise((resolve, reject) => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user