diff --git a/src/Bundle/ChillPersonBundle/Controller/HouseholdController.php b/src/Bundle/ChillPersonBundle/Controller/HouseholdController.php index dd3cc16a7..994e2757c 100644 --- a/src/Bundle/ChillPersonBundle/Controller/HouseholdController.php +++ b/src/Bundle/ChillPersonBundle/Controller/HouseholdController.php @@ -8,8 +8,6 @@ use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; use Chill\PersonBundle\Entity\Household\Household; -use Chill\MainBundle\Form\Type\AddressType; -use Chill\MainBundle\Entity\Address; /** * @Route("/{_locale}/person/household") @@ -71,29 +69,6 @@ class HouseholdController extends AbstractController } - /** - * - * @param Household $household - * @param Address $address - * @return \Symfony\Component\Form\Form - */ - protected function createCreateForm(Household $household, Address $address) - { - $form = $this->createForm(AddressType::class, $address, array( - 'method' => 'POST', - 'action' => $this->generateUrl('chill_person_address_create', array( - 'person_id' => $household->getId() - )), - 'has_no_address' => true - )); - - $form->add('submit', SubmitType::class, array( - 'label' => 'Submit' - )); - - return $form; - } - /** * @Route( * "/{household_id}/address/move", @@ -106,15 +81,9 @@ class HouseholdController extends AbstractController { // TODO ACL - - $address = new HouseholdAddress(); - - $form = $this->createCreateForm($household, $address); - return $this->render('@ChillPerson/Household/address_move.html.twig', [ - 'household' => $household, - 'form' => $form->createView() + 'household' => $household ] ); } diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/App.vue b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/App.vue new file mode 100644 index 000000000..ba0cd5e13 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/App.vue @@ -0,0 +1,56 @@ + + + + diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/index.js b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/index.js new file mode 100644 index 000000000..e7a73238d --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/index.js @@ -0,0 +1,25 @@ +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/js/i18n.js b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/js/i18n.js new file mode 100644 index 000000000..d6af41eea --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/js/i18n.js @@ -0,0 +1,12 @@ +import { addressMessages } from 'ChillMainAssets/vuejs/Address/js/i18n' + +const appMessages = { + fr: { + } +}; + +Object.assign(appMessages.fr, addressMessages.fr); + +export { + appMessages +}; diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/store/index.js b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/store/index.js new file mode 100644 index 000000000..b70d09cc9 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/HouseholdAddress/store/index.js @@ -0,0 +1,41 @@ +import 'es6-promise/auto'; +import { createStore } from 'vuex'; + +import { postAddress } from 'ChillMainAssets/vuejs/_api/AddAddress' + +const debug = process.env.NODE_ENV !== 'production'; + +const store = createStore({ + strict: debug, + state: { + address: {}, + errorMsg: [] + }, + getters: { + }, + mutations: { + catchError(state, error) { + state.errorMsg.push(error); + }, + addAddress(state, address) { + console.log('@M addAddress address', address); + state.address = address; + } + }, + actions: { + addAddress({ commit }, payload) { + console.log('@A addAddress payload', payload); + + postAddress(payload) + .then(address => new Promise((resolve, reject) => { + commit('addAddress', address); + resolve(); + })) + .catch((error) => { + commit('catchError', error); + }); + } + } +}); + +export { store }; 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 2e218b1a6..b9c16dab4 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/Household/address_move.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/Household/address_move.html.twig @@ -9,14 +9,17 @@

Select an existing address

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

Create a new address

+
- +
+

Add the address to the household

+
{% block stylesheets %} @@ -24,7 +27,11 @@ {% endblock %} {% block js %} - {{ encore_entry_script_tags('address') }} + + {{ encore_entry_script_tags('household_address') }} {% endblock %} diff --git a/src/Bundle/ChillPersonBundle/chill.webpack.config.js b/src/Bundle/ChillPersonBundle/chill.webpack.config.js index 53aed5d91..9561f7488 100644 --- a/src/Bundle/ChillPersonBundle/chill.webpack.config.js +++ b/src/Bundle/ChillPersonBundle/chill.webpack.config.js @@ -7,6 +7,7 @@ module.exports = function(encore, entries) encore.addAliases({ ChillPersonAssets: __dirname + '/Resources/public' }); - + encore.addEntry('accompanying_course', __dirname + '/Resources/public/vuejs/AccompanyingCourse/index.js'); + encore.addEntry('household_address', __dirname + '/Resources/public/vuejs/HouseholdAddress/index.js'); };