diff --git a/src/Bundle/ChillMainBundle/Resources/public/chill/scss/render_box.scss b/src/Bundle/ChillMainBundle/Resources/public/chill/scss/render_box.scss index cd57ba3cd..31d2c8d09 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/chill/scss/render_box.scss +++ b/src/Bundle/ChillMainBundle/Resources/public/chill/scss/render_box.scss @@ -93,7 +93,8 @@ section.chill-entity { font-style: italic; } - span.address-valid { + .address-valid { + margin-top: 2em; &.date-since {} &.date-until {} } diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/App.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/App.vue index c6a2ed8c8..94042d446 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/App.vue +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/App.vue @@ -19,7 +19,7 @@ diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CountrySelection.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CountrySelection.vue index c464d92d5..2e6ec86a7 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CountrySelection.vue +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/CountrySelection.vue @@ -31,7 +31,7 @@ export default { }, computed: { sortedCountries() { - console.log('sorted countries'); + //console.log('sorted countries'); const countries = this.entity.loaded.countries; let sortedCountries = []; sortedCountries.push(...countries.filter(c => c.countryCode === 'FR')) @@ -56,7 +56,7 @@ export default { return name.fr //TODO multilang }, selectCountry(value) { - console.log('select country', value); + //console.log('select country', value); this.entity.selected.country = value; this.$emit('getCities', value); } diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/components/SelectHouseholdAddress.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/SelectHouseholdAddress.vue similarity index 100% rename from src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/components/SelectHouseholdAddress.vue rename to src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress/SelectHouseholdAddress.vue diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/ShowAddress.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/ShowAddress.vue index 07e4617d3..b6e86340a 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/ShowAddress.vue +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/ShowAddress.vue @@ -3,7 +3,13 @@
- Loading... + {{ $t('loading') }} +
+
+ {{ errorMsg }} +
+
+ {{ $t(getSuccessText) }}
@@ -59,24 +65,15 @@
-

{{ $t('date') }}

+

{{ $t(getValidFromDateText) }}

- -
- {{ $t('loading') }} -
-
- {{ $t('person_address_creation_success') }} -
@@ -95,7 +92,7 @@
  • + @click.prevent="$emit('submitAddress')"> {{ $t('action.save')}}
  • @@ -103,6 +100,7 @@ - - diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/index.js b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/index.js deleted file mode 100644 index e7a73238d..000000000 --- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/index.js +++ /dev/null @@ -1,25 +0,0 @@ -import { createApp } from 'vue' -import { _createI18n } from 'ChillMainAssets/vuejs/_js/i18n' -import { appMessages } from './js/i18n' -import { store } from './store' - -import App from './App.vue'; - -const root = window.vueRootComponent; - -/* -* Load all App component, for Household edition page -*/ - -const i18n = _createI18n(appMessages); - -const app = createApp({ - template: ``, -}) -.use(store) -.use(i18n) -.component('app', App) -.mount('#household-address'); - - - diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/store/index.js b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/store/index.js deleted file mode 100644 index 9a3e4b866..000000000 --- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/store/index.js +++ /dev/null @@ -1,160 +0,0 @@ -import 'es6-promise/auto'; -import { createStore } from 'vuex'; - -import { postAddress, postPostalCode, patchAddress, getAddress } from 'ChillMainAssets/vuejs/Address/api'; -import { postAddressToHousehold } from '../api'; - -const debug = process.env.NODE_ENV !== 'production'; - -const store = createStore({ - strict: debug, - state: { - newAddress: {}, - editAddress: {}, //TODO or should be newAddress? - household: {}, - validFrom: {}, - errorMsg: [], - loading: false, - success: false - }, - getters: { - }, - mutations: { - catchError(state, error) { - state.errorMsg.push(error); - }, - addAddress(state, address) { - console.log('@M addAddress address', address); - state.newAddress = address; - }, - updateAddress(state, address) { - console.log('@M updateAddress address', address); - state.newAddress = address; - }, - addAddressToHousehold(state, household) { - console.log('@M addAddressToHousehold household', household); - state.household = household; - }, - addDateToAddress(state, validFrom) { - console.log('@M addDateToAddress address.validFrom', validFrom); - state.validFrom = validFrom; - }, - getEditAddress(state, address) { - console.log('@M getEditAddress address', address); - state.editAddress = address; - }, - setLoading(state, b) { - state.loading = b; - }, - setSuccess(state, b) { - state.success = b; - } - }, - actions: { - addAddress({ commit }, payload) { - console.log('@A addAddress payload', payload); - commit('setLoading', true); - if('newPostalCode' in payload){ - postPostalCode(payload.newPostalCode) - .then(postalCode => { - let body = payload; - body.postcode = {'id': postalCode.id }, - postAddress(body) - .then(address => new Promise((resolve, reject) => { - commit('addAddress', address); - resolve(); - commit('setLoading', false); - })) - .catch((error) => { - commit('catchError', error); - commit('setLoading', false); - }); - }) - - } else { - postAddress(payload) - .then(address => new Promise((resolve, reject) => { - commit('addAddress', address); - resolve(); - commit('setLoading', false); - })) - .catch((error) => { - commit('catchError', error); - commit('setLoading', false); - }); - } - }, - addDateToAddressAndAddressToHousehold({ commit }, payload) { - console.log('@A addDateToAddressAndAddressToHousehold payload', payload); - commit('setLoading', true); - patchAddress(payload.addressId, payload.body) - .then(address => new Promise((resolve, reject) => { - commit('addDateToAddress', address.validFrom); - resolve(); - }).then( - postAddressToHousehold(payload.householdId, payload.addressId) - .then(household => new Promise((resolve, reject) => { - commit('addAddressToHousehold', household); - commit('setSuccess', true); - commit('setLoading', false); - window.location.assign(payload.backUrl); - resolve(); - })) - .catch((error) => { - commit('catchError', error); - commit('setLoading', false); - }) - )) - .catch((error) => { - commit('catchError', error); - commit('setLoading', false); - }); - }, - updateAddress({ commit }, payload) { - console.log('@A updateAddress payload', payload); - - if('newPostalCode' in payload.newAddress){ // TODO change the condition because it writes new postal code in edit mode now: !writeNewPostalCode - let postalCodeBody = payload.newAddress.newPostalCode; - postalCodeBody = Object.assign(postalCodeBody, {'origin': 3}); - postPostalCode(postalCodeBody) - .then(postalCode => { - let body = payload.newAddress; - body.postcode = {'id': postalCode.id }, - patchAddress(payload.addressId, body) - .then(address => new Promise((resolve, reject) => { - commit('updateAddress', address); - commit('setSuccess', true); - resolve(); - })) - .catch((error) => { - commit('catchError', error); - }); - }) - - } else { - patchAddress(payload.addressId, payload.newAddress) - .then(address => new Promise((resolve, reject) => { - commit('updateAddress', address); - commit('setSuccess', true); - resolve(); - })) - .catch((error) => { - commit('catchError', error); - }); - } - }, - getEditAddress({ commit }, payload) { - console.log('@A getEditAddress payload', payload); - - getAddress(payload).then(address => new Promise((resolve, reject) => { - commit('getEditAddress', address); - resolve(); - })) - .catch((error) => { - commit('catchError', error); - }); - }, - } -}); - -export { store }; diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/api.js b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_api/AddAddress/Household.js similarity index 100% rename from src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/api.js rename to src/Bundle/ChillPersonBundle/Resources/public/vuejs/_api/AddAddress/Household.js diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_api/AddAddress/Person.js b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_api/AddAddress/Person.js new file mode 100644 index 000000000..8be7d904a --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_api/AddAddress/Person.js @@ -0,0 +1,27 @@ + +/* +* Endpoint chill_api_single_person_address +* method POST, post Person instance +* +* @id integer - id of Person +* @body Object - dictionary with changes to post +*/ +const postAddressToPerson = (personId, addressId) => { + //console.log(personId); + //console.log(addressId); + const body = { + 'id': addressId + }; + const url = `/api/1.0/person/person/${personId}/address.json` + return fetch(url, { + method: 'POST', + headers: {'Content-Type': 'application/json;charset=utf-8'}, + body: JSON.stringify(body) + }) + .then(response => { + if (response.ok) { return response.json(); } + throw Error('Error with request resource response'); + }); +}; + +export { postAddressToPerson }; diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Address/_insert_vue_address.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Address/_insert_vue_address.html.twig index 17c111e06..2b7cc0701 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/Address/_insert_vue_address.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/Address/_insert_vue_address.html.twig @@ -1,38 +1,76 @@ -
    {# <== vue_address component #} +{# + This Twig template include load vue_address component. + It push all variables from context in Address/App.vue. + + OPTIONS + * mode string ['edit*'|'new'|'create'] + * address_id integer + * backUrl twig route: path('route', {parameters}) + * modalTitle twig translated chain + * buttonText twig translated chain + * buttonType chill class like 'btn-update' + * buttonSize bootstrap class like 'btn-sm' + +#} +
    {{ encore_entry_script_tags('vue_address') }} diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Address/edit.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Address/edit.html.twig index 898ba91a6..50bc14171 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/Address/edit.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/Address/edit.html.twig @@ -28,8 +28,6 @@ {# include vue_address component #} {% include '@ChillPerson/Address/_insert_vue_address.html.twig' with { - address_id: person.lastAddress.id, - mode: 'edit', binModalStep1: false, binModalStep2: false, } %} diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Address/list.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Address/list.html.twig index fc8970e3c..db136592f 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/Address/list.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/Address/list.html.twig @@ -30,7 +30,6 @@ {# include vue_address component #} {% include '@ChillPerson/Address/_insert_vue_address.html.twig' with { - address_id: person.lastAddress.id, mode: 'new', buttonSize: 'btn-lg', buttonText: 'Add an address', diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Address/new.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Address/new.html.twig index e6b173e14..3abd650f5 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/Address/new.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/Address/new.html.twig @@ -28,8 +28,6 @@ {# include vue_address component #} {% include '@ChillPerson/Address/_insert_vue_address.html.twig' with { - address_id: person.lastAddress.id, - mode: 'new', binModalStep1: false, binModalStep2: false, } %} diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Household/address_edit.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Household/address_edit.html.twig index ea6d37e02..446cd769b 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/Household/address_edit.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/Household/address_edit.html.twig @@ -7,21 +7,10 @@
    {# include vue_address component #} -
    + {% include '@ChillPerson/Address/_insert_vue_address.html.twig' with { + binModalStep1: false, + binModalStep2: false, + } %}
    - {% block stylesheets %} - {{ encore_entry_link_tags('vue_address') }} - {% endblock %} - - {% block js %} - - {{ encore_entry_script_tags('vue_household_address') }} - {% endblock %} - {% endblock %} 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 3dce5b551..b2da2097a 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/Household/address_move.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/Household/address_move.html.twig @@ -7,19 +7,10 @@
    {# include vue_address component #} -
    + {% include '@ChillPerson/Address/_insert_vue_address.html.twig' with { + binModalStep1: false, + binModalStep2: false, + } %}
    - {% block stylesheets %} - {{ encore_entry_link_tags('vue_address') }} - {% endblock %} - - {% block js %} - - {{ encore_entry_script_tags('vue_household_address') }} - {% endblock %} - {% endblock %} diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Household/addresses.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Household/addresses.html.twig index aebdb6d7a..2acd68731 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/Household/addresses.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/Household/addresses.html.twig @@ -15,10 +15,13 @@
  • {# include vue_address component #} - - {{ 'Move household'|trans }} - + {% include '@ChillPerson/Address/_insert_vue_address.html.twig' with { + mode: 'new', + backUrl: chill_path_add_return_path('chill_person_household_address_move', { 'household_id': household.id }), + buttonSize: 'btn-lg', + buttonText: 'Move household', + modalTitle: 'Move household', + } %}
  • diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Person/view.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Person/view.html.twig index 53166ab9e..749750b67 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/Person/view.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/Person/view.html.twig @@ -202,9 +202,9 @@ This view should receive those arguments:
  • {# include vue_address component #} {% include '@ChillPerson/Address/_insert_vue_address.html.twig' with { + mode: 'edit', address_id: person.lastAddress.id, backUrl: path('chill_person_view', { 'person_id': person.id }), - mode: 'edit', modalTitle: 'Edit address', buttonText: 'Edit address', buttonType: 'btn-update', diff --git a/src/Bundle/ChillPersonBundle/chill.webpack.config.js b/src/Bundle/ChillPersonBundle/chill.webpack.config.js index a08040ccc..7d60e86a3 100644 --- a/src/Bundle/ChillPersonBundle/chill.webpack.config.js +++ b/src/Bundle/ChillPersonBundle/chill.webpack.config.js @@ -8,7 +8,6 @@ module.exports = function(encore, entries) ChillPersonAssets: __dirname + '/Resources/public' }); - encore.addEntry('vue_household_address', __dirname + '/Resources/public/vuejs/HouseholdAddress/index.js'); encore.addEntry('vue_household_members_editor', __dirname + '/Resources/public/vuejs/HouseholdMembersEditor/index.js'); encore.addEntry('vue_accourse', __dirname + '/Resources/public/vuejs/AccompanyingCourse/index.js');