diff --git a/src/App.vue b/src/App.vue index 3ea1924..563b041 100644 --- a/src/App.vue +++ b/src/App.vue @@ -30,33 +30,6 @@ export default { ...mapActions(ConcernementsStore,['loadConcernements']), ...mapActions(ConcernementsStore,['loadContentTypeDefinition']), ...mapActions(UserStore,['checkUser']), - // sortedConcernements () { - // if (this.concernements.length) { - // let cs = this.concernements; - // cs.sort(function(a, b) { - // if (a.opened && !b.opened) { - // return 1; - // } - // if (!a.opened && b.opened) { - // return -1; - // } - // return 0; - // }); - // return cs; - // // Object.keys(this.concernementsByID).forEach((id, i) => { - // // console.log(id); - // // if (!this.concernementsByID[id].opened) { - // // console.log('not opened'); - // // cs[id] = this.concernementsByID[id]; - // // } - - // // }); - // // console.log('filtered concernements', cs); - // // return cs; - // } else { - // return null - // } - // } }, components: { MapConcernements, @@ -87,11 +60,6 @@ export default { :concernement="concernement" :opened="concernement.opened" /> -
diff --git a/src/api/gql/concernement.fragment.gql b/src/api/gql/concernement.fragment.gql index b189b15..3ba529e 100644 --- a/src/api/gql/concernement.fragment.gql +++ b/src/api/gql/concernement.fragment.gql @@ -21,6 +21,15 @@ fragment ConcernementFields on Concernement { entite { title id + agissante + proximite { + id + title + } + superposition { + id + title + } } } } diff --git a/src/components/ConcernementMapItem.vue b/src/components/ConcernementMapItem.vue index d232bbe..6c5bb0e 100644 --- a/src/components/ConcernementMapItem.vue +++ b/src/components/ConcernementMapItem.vue @@ -53,6 +53,7 @@ export default { }, props: ['concernement', 'opened'], computed: { + ...mapState(ConcernementsStore,['map_mode']), ...mapState(ConcernementsStore,['concernementsByID']), ...mapState(ConcernementsStore,['opened_entite_id']) }, diff --git a/src/components/ConcernementMapPopup.vue b/src/components/ConcernementMapPopup.vue index b83c75b..9edda0a 100644 --- a/src/components/ConcernementMapPopup.vue +++ b/src/components/ConcernementMapPopup.vue @@ -21,7 +21,7 @@ export default { if (this.infos.type === 'concernement') { this.concernement = this.concernementsByID[this.infos.id]; } else { - this.entite = this.allEntitesById[this.infos.id]; + this.entite = this.allEntitesById[this.infos.id].entite; } }, mounted () { @@ -40,7 +40,7 @@ export default { if (n.type === 'concernement') { this.concernement = this.concernementsByID[n.id]; } else { - this.entite = this.allEntitesById[n.id]; + this.entite = this.allEntitesById[n.id].entite; } }, deep: true diff --git a/src/components/MapConcernements.vue b/src/components/MapConcernements.vue index 3532ba7..8e044e1 100644 --- a/src/components/MapConcernements.vue +++ b/src/components/MapConcernements.vue @@ -58,6 +58,7 @@ export default { } }, computed: { + ...mapState(ConcernementsStore,['map_mode']), ...mapState(ConcernementsStore,['concernements']), ...mapState(ConcernementsStore,['concernementsByID']), ...mapState(ConcernementsStore,['opened']) @@ -105,6 +106,7 @@ export default { this.animate() }, methods: { + ...mapActions(ConcernementsStore,['setMapMode']), ...mapActions(ConcernementsStore,['openCloseConcernements']), ...mapActions(ConcernementsStore,['resetConcernementOpened']), animate () { @@ -236,23 +238,23 @@ export default { ({ + map_mode: "terraindevie", concernements: [], concernementsByID: {}, allEntitesById: {}, opened: false, opened_entite_id: null, ct_concernement: {}, - concernements_loaded: false + concernements_loaded: false, }), getters: { }, actions: { + setMapMode(mode) { + console.log(`set map_mode ${mode}`); + // mode can be : terraindevie, proximite, superposition, puissancedagir, action, doleancer + this.map_mode = mode; + }, loadConcernements () { console.log('concernements store loadConcernements'); return new Promise((resolve, reject) => { @@ -49,7 +55,14 @@ export const ConcernementsStore = defineStore({ concernement.entites.forEach(entite => { concernement.entites_byid[entite.entite.id] = entite; // record a flat list of all entités of all concernement for map-popup - this.allEntitesById[entite.entite.id] = entite; + if (typeof this.allEntitesById[entite.entite.id] === "undefined") { + this.allEntitesById[entite.entite.id] = { + entite: entite, + concernements: [concernement] + }; + } else { + this.allEntitesById[entite.entite.id].concernements.push(concernement); + } }); this.concernements.push(concernement); this.concernementsByID[concernement.id] = concernement;