diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/App.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/App.vue index fa7bd5e95..1ef9b0186 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/App.vue +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/App.vue @@ -41,32 +41,36 @@ export default { edit: window.mode === 'edit', personId: window.personId, addressId: window.addressId, - backUrl: `/fr/person/${window.personId}/address/list`, //TODO better way to pass this + backUrl: window.backUrl, }, addAddress: { options: { - /// Options override default - /// First button text if create or edit address (trans chain, see i18n) + /// Options override default. + /// null value take default component value button: { - //text: { create: 'bim', edit: 'bam' }, - type: 'btn-update', - size: 'btn-sm', - display: false + text: { + /// if create or edit address + create: window.buttonText || null, + edit: window.buttonText || null + }, + type: window.button.type || null, + size: window.button.size || null, + display: window.button.display }, - /// Modal title text if create or edit address (trans chain, see i18n) - //title: { create: 'boum', edit: 'pan' }, - + title: { + create: window.modalTitle || null, + edit: window.modalTitle || null + }, /// Display each step in page or Modal bindModal: { //step1: false, //step2: false }, - // Options only for root parent component displayResult: true, - redirectToBackUrl: false + redirectToBackUrl: true }, type: 'person', result: null // <== returned from addAddress component diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress.vue index 96371aec3..fce900142 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress.vue +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/Address/components/AddAddress.vue @@ -2,7 +2,7 @@ {{ $t(getTextButton) }} @@ -14,7 +14,7 @@ @close="flag.showPane = false"> - {{ $t(getTextTitle) }} + {{ getTextTitle }} Loading... @@ -67,7 +67,7 @@ @close="flag.editPane = false"> - {{ $t(getTextTitle) }} + {{ getTextTitle }} Loading... @@ -204,24 +204,24 @@ export default { return step2; }, getTextTitle() { - if (this.options.title) { + if (this.options.title && (this.options.title.edit !== null || this.options.title.create !== null)) { return (this.context.edit) ? this.options.title.edit : this.options.title.create; } - return (this.context.edit) ? this.default.title.edit : this.default.title.create; + return (this.context.edit) ? this.$t(this.default.title.edit) : this.$t(this.default.title.create); }, getTextButton() { - if (this.options.button && this.options.button.text) { + if (this.options.button && this.options.button.text && (this.options.button.text.edit !== null || this.options.button.text.create !== null)) { return (this.context.edit) ? this.options.button.text.edit : this.options.button.text.create; } return (this.context.edit) ? this.default.button.text.edit : this.default.button.text.create; }, getClassButton() { - let size = (this.options.button && this.options.button.size) ? this.options.button.size : ''; - let type = (this.options.button && this.options.button.type) ? this.options.button.type : this.default.button.type; + let size = (this.options.button && this.options.button.size !== null) ? this.options.button.size : ''; + let type = (this.options.button && this.options.button.type !== null) ? this.options.button.type : this.default.button.type; return size ? size + ' ' + type : type; }, displayTextButton() { - return (typeof this.options.button !== 'undefined' && typeof this.options.button.display !== 'undefined') ? + return (this.options.button !== null && typeof this.options.button.display !== 'undefined') ? this.options.button.display : this.default.button.display; } }, 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 new file mode 100644 index 000000000..fc231c02f --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Resources/views/Address/_insert_vue_address.html.twig @@ -0,0 +1,28 @@ +{# <== vue_address component #} + + + +{{ encore_entry_script_tags('vue_address') }} +{{ encore_entry_link_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 1868bd9de..366ec5b64 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/Address/edit.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/Address/edit.html.twig @@ -25,22 +25,13 @@ {% block content %} {{ block('title') }} - + + {% include '@ChillPerson/Address/_insert_vue_address.html.twig' with { + address_id: person.lastAddress.id, + mode: 'edit' + } %} + {% endblock %} {% endblock %} - -{% block css %} - {{ encore_entry_link_tags('vue_address') }} -{% endblock %} - -{% block js %} - - {{ encore_entry_script_tags('vue_address') }} -{% endblock %} diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Address/list.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Address/list.html.twig index 60de27e37..ae29af486 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/Address/list.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/Address/list.html.twig @@ -27,10 +27,16 @@ - - {{ 'Add an address'|trans }} - + + {# 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', + modalTitle: 'Add an address', + } %} + @@ -58,10 +64,16 @@ {% set row = row + 1 %} {% if address.validTo is not empty and address.validTo < previousRowFrom %} + + {# include vue_address component #} {{ 'Insert an address'|trans }} + + + {# include vue_address component #} {{ 'Insert an address'|trans }} + {% if address.validTo is not empty %} {{ address.validTo|format_date('short') }} @@ -81,7 +93,10 @@ 'has_no_address': true }) }} + + {# include vue_address component #} + {# endif #} @@ -130,6 +145,7 @@ + {# include vue_address component #} {{ 'Add an address'|trans }} diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Person/view.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Person/view.html.twig index db81ec320..5e5169575 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/Person/view.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/Person/view.html.twig @@ -200,10 +200,16 @@ This view should receive those arguments: - - - + {# include vue_address component #} + {% include '@ChillPerson/Address/_insert_vue_address.html.twig' with { + address_id: person.lastAddress.id, + mode: 'edit', + modalTitle: 'Edit address', + buttonText: 'Edit address', + buttonType: 'btn-update', + buttonSize: 'btn-sm', + buttonDisplay: false + } %}