From fe5745831c1adcb2babf844c34b1a3663288195e Mon Sep 17 00:00:00 2001 From: nobohan Date: Mon, 10 May 2021 15:21:38 +0200 Subject: [PATCH] Address selection: add selectCountry and selectCity components --- .../Resources/public/vuejs/Address/js/i18n.js | 6 ++-- .../public/vuejs/Address/store/index.js | 36 ++++++++++++++----- .../public/vuejs/_components/AddAddress.vue | 24 +++++++++---- ...essSuggestion.vue => AddressSelection.vue} | 2 +- .../vuejs/_components/CitySelection.vue | 30 ++++++++++++++++ .../vuejs/_components/CountrySelection.vue | 30 ++++++++++++++++ 6 files changed, 110 insertions(+), 18 deletions(-) rename src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/{AddressSuggestion.vue => AddressSelection.vue} (97%) create mode 100644 src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/CitySelection.vue create mode 100644 src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/CountrySelection.vue diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/js/i18n.js b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/js/i18n.js index 268d6d2a0..0513ff79b 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/js/i18n.js +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/js/i18n.js @@ -1,8 +1,10 @@ -// import { mainMessages } from 'ChillMainAssets/vuejs/_js/i18n' +// import { mainMessages } from 'ChillMainAssets/vuejs/_js/i18n' //TODO const addressMessages = { fr: { - add_an_address: 'Ajouter une adresse' + add_an_address: 'Ajouter une adresse', + select_country: 'Choisir le pays', + select_city: 'Choisir une localité' } }; diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/store/index.js b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/store/index.js index 1c92719f6..b842fa3a1 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/store/index.js +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/store/index.js @@ -14,20 +14,40 @@ const getDataPromise = getReferenceAddress() strict: debug, state: { referenceAddresses: referenceAddresses.results, - countries: ['france', 'belgium'] //TODO fetch countries from CHILL API - // add_persons: { - // query: "", - // suggested: [], - // selected: [] - // }, - // errorMsg: [] + countries: [ + {id: 1, name: 'France', countryCode: 'FR'}, + {id: 2, name: 'Belgium', countryCode: 'BE'} + ], //TODO fetch countries from CHILL API + cities: [ + {id: 1, name: 'Bruxelles', code: '1000', country: 'BE'}, + {id: 2, name: 'Aisne', code: '85045', country: 'FR'}, + {id: 3, name: 'Saint-Gervais', code: '85230', country: 'FR'} + ], //TODO fetch postal codes from CHILL API + selectedCountry: {id: 1, name: 'France', countryCode: 'FR'}, // TODO how to specify a default value? + selectedCity: null, }, getters: { getCountries: state => state.countries, + getSelectedCountry: state => state.selectedCountry, + getCities: state => { + console.log(state.cities) + console.log(state) + console.log(state.selectedCountry.countryCode) + console.log(state.cities.filter(c => c.country == state.selectedCountry.countryCode)) + return state.selectedCountry.countryCode === undefined ? + state.cities : + state.cities.filter(c => c.country == state.selectedCountry.countryCode); + } + , getReferenceAddresses: state => state.referenceAddresses, - // getReferenceAddressesCities: state => {}, //TODO get unique cities from addressReference }, mutations: { + setSelectedCountry(state, value) { + state.selectedCountry = value; + }, + setSelectedCity(state, value) { + state.selectedCity = value; + } // removeParticipation(state, item) { // //console.log('mutation: remove item', item.id); // state.accompanying_course.participations = state.accompanying_course.participations.filter(participation => participation !== item); diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddAddress.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddAddress.vue index 90f1adc9b..90974f59b 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddAddress.vue +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddAddress.vue @@ -30,7 +30,7 @@