From 2b5ed5e5a34cefc570ebbc4dfa1912c2c91c3ba1 Mon Sep 17 00:00:00 2001 From: nobohan Date: Mon, 7 Jun 2021 12:18:03 +0200 Subject: [PATCH] household address: choose among available address --- .../Resources/public/vuejs/_api/AddAddress.js | 18 +++- .../public/vuejs/HouseholdAddress/App.vue | 83 +++++++++++++++---- .../components/SelectHouseholdAddress.vue | 47 +++++++++++ .../public/vuejs/HouseholdAddress/js/i18n.js | 3 + .../vuejs/HouseholdAddress/store/index.js | 4 +- .../views/Household/address_move.html.twig | 11 --- 6 files changed, 134 insertions(+), 32 deletions(-) create mode 100644 src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/components/SelectHouseholdAddress.vue diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_api/AddAddress.js b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_api/AddAddress.js index db03da860..383ffb25f 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_api/AddAddress.js +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_api/AddAddress.js @@ -36,7 +36,6 @@ const fetchCities = (country) => { */ const fetchReferenceAddresses = (postalCode) => { console.log('<<< fetching references addresses for', postalCode); - //TODO deal with huge number of addresses... we should do suggestion... const url = `/api/1.0/main/address-reference.json?item_per_page=1000&postal_code=${postalCode.id}`; return fetch(url) .then(response => { @@ -45,6 +44,22 @@ const fetchReferenceAddresses = (postalCode) => { }); }; +/* +* Endpoint chill_api_single_address_reference__index +* method GET, get AddressReference Object +* @returns {Promise} a promise containing all AddressReference objects filtered with postal code +*/ +const fetchAddresses = () => { + console.log('<<< fetching addresses'); + //TODO deal with huge number of addresses... we should do suggestion... + const url = `/api/1.0/main/address.json?item_per_page=1000`; + return fetch(url) + .then(response => { + if (response.ok) { return response.json(); } + throw Error('Error with request resource response'); + }); +}; + /* * Endpoint chill_api_single_address__entity__create * method POST, post Address Object @@ -71,5 +86,6 @@ export { fetchCountries, fetchCities, fetchReferenceAddresses, + fetchAddresses, postAddress }; diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/App.vue b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/App.vue index 4aa7ccc54..9b8985f06 100644 --- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/App.vue +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/App.vue @@ -1,42 +1,84 @@ diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/components/SelectHouseholdAddress.vue b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/components/SelectHouseholdAddress.vue new file mode 100644 index 000000000..74ce14c3c --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/components/SelectHouseholdAddress.vue @@ -0,0 +1,47 @@ + + + + + + + diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/js/i18n.js b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/js/i18n.js index d6af41eea..3dae35221 100644 --- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/js/i18n.js +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/js/i18n.js @@ -2,6 +2,9 @@ import { addressMessages } from 'ChillMainAssets/vuejs/Address/js/i18n' const appMessages = { fr: { + select_a_existing_address: 'Sélectionner une adresse existante', + create_a_new_address: 'Créer une nouvelle adresse', + add_an_address_to_household: 'Ajouter l\'adresse au ménage' } }; diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/store/index.js b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/store/index.js index 26286fd10..93f75c5c4 100644 --- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/store/index.js +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/store/index.js @@ -9,7 +9,7 @@ const debug = process.env.NODE_ENV !== 'production'; const store = createStore({ strict: debug, state: { - address: {}, + newAddress: {}, household: {}, errorMsg: [] }, @@ -21,7 +21,7 @@ const store = createStore({ }, addAddress(state, address) { console.log('@M addAddress address', address); - state.address = address; + state.newAddress = address; }, addAddressToHousehold(state, household) { console.log('@M addAddress address', household); diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Household/address_move.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Household/address_move.html.twig index b9c16dab4..7ef4854bb 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/Household/address_move.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/Household/address_move.html.twig @@ -8,17 +8,6 @@

Household with id {{ household.id }}

-

Select an existing address

- TODO: select of existing address ? -
- -
-

Create a new address

-
-
- -
-

Add the address to the household