Merge branch 'improve_address' into person_renderbox_thirdparty_onthefly

This commit is contained in:
Mathieu Jaumotte 2021-09-22 14:07:09 +02:00
commit 851fa663ca
16 changed files with 85 additions and 117 deletions

View File

@ -31,8 +31,8 @@ export default {
} }
}, },
mounted() { mounted() {
console.log('AddAddress: data context', this.context); //console.log('AddAddress: data context', this.context);
console.log('AddAddress: data options', this.options); //console.log('AddAddress: data options', this.options);
}, },
methods: { methods: {
displayErrors() { displayErrors() {

View File

@ -252,7 +252,6 @@ export default {
validFrom: false, validFrom: false,
validTo: false validTo: false
}, },
forceRedirect: false,
hideAddress: false hideAddress: false
}, },
entity: { entity: {
@ -324,6 +323,9 @@ export default {
bypassFirstStep() { bypassFirstStep() {
// exception: passing step0 if new address and pane are not in modal // exception: passing step0 if new address and pane are not in modal
return !this.context.edit && !this.inModal; return !this.context.edit && !this.inModal;
},
forceRedirect() {
return this.context.backUrl !== null;
} }
}, },
mounted() { mounted() {
@ -396,7 +398,7 @@ export default {
this.openDatePane(); this.openDatePane();
} else { } else {
this.applyChanges(); this.applyChanges();
if (!this.options.forceRedirect) { if (!this.forceRedirect) {
this.openShowPane(); this.openShowPane();
} }
} }
@ -425,7 +427,7 @@ export default {
*/ */
afterLastPaneAction(params) { afterLastPaneAction(params) {
this.initForm(); this.initForm();
if (this.options.forceRedirect === true) { if (this.forceRedirect) {
console.log("redirect to backUrl"); console.log("redirect to backUrl");
window.location.assign(this.context.backUrl); window.location.assign(this.context.backUrl);
} else { } else {
@ -458,11 +460,9 @@ export default {
getCountries() { getCountries() {
this.flag.loading = true; this.flag.loading = true;
console.log('## GO');
fetchCountries().then( fetchCountries().then(
countries => new Promise((resolve, reject) => { countries => new Promise((resolve, reject) => {
this.entity.loaded.countries = countries.results; this.entity.loaded.countries = countries.results;
console.log('## COMPLETE !');
this.flag.editPane = true; this.flag.editPane = true;
this.flag.loading = false; this.flag.loading = false;
resolve() resolve()

View File

@ -9,6 +9,7 @@
</div> </div>
<div v-if="flag.success" class="alert alert-success"> <div v-if="flag.success" class="alert alert-success">
{{ $t(getSuccessText) }} {{ $t(getSuccessText) }}
<span v-if="forceRedirect">{{ $t('wait_redirection') }}</span>
</div> </div>
<div v-if="noAddressWithStickyActions" class="mt-5"> <div v-if="noAddressWithStickyActions" class="mt-5">
@ -78,21 +79,15 @@ export default {
return (this.context.edit) ? this.defaultz.button.text.edit : this.defaultz.button.text.create; return (this.context.edit) ? this.defaultz.button.text.edit : this.defaultz.button.text.create;
}, },
getSuccessText() { getSuccessText() {
switch (this.context.target.name) { return (this.context.edit) ? 'address_edit_success' : 'address_new_success';
/*
case 'household':
return (this.context.edit) ? 'household_address_edit_success' : 'household_address_move_success';
case 'person':
return (this.context.edit) ? 'person_address_edit_success' : 'person_address_creation_success';
*/
default:
return (this.context.edit) ? 'address_edit_success' : 'address_new_success';
}
}, },
hideAddress() { hideAddress() {
return (typeof this.options.hideAddress !== 'undefined') ? return (typeof this.options.hideAddress !== 'undefined') ?
this.options.hideAddress : this.defaultz.hideAddress; this.options.hideAddress : this.defaultz.hideAddress;
}, },
forceRedirect() {
return this.context.backUrl !== null;
},
noAddressWithStickyActions() { noAddressWithStickyActions() {
return !this.context.edit && !this.address.id && this.options.stickyActions; return !this.context.edit && !this.address.id && this.options.stickyActions;
} }

View File

@ -22,7 +22,7 @@ const addressMessages = {
corridor: 'Couloir', corridor: 'Couloir',
steps: 'Escalier', steps: 'Escalier',
flat: 'Appartement', flat: 'Appartement',
buildingName: 'Nom du bâtiment', buildingName: 'Résidence',
extra: 'Complément d\'adresse', extra: 'Complément d\'adresse',
distribution: 'Cedex', distribution: 'Cedex',
create_postal_code: 'Localité inconnue. Cliquez ici pour créer une nouvelle localité', create_postal_code: 'Localité inconnue. Cliquez ici pour créer une nouvelle localité',
@ -34,22 +34,14 @@ const addressMessages = {
back_to_the_list: 'Retour à la liste', back_to_the_list: 'Retour à la liste',
loading: 'chargement en cours...', loading: 'chargement en cours...',
address_suggestions: "Suggestion d'adresses", address_suggestions: "Suggestion d'adresses",
address_new_success: 'La nouvelle adresse est enregistrée', address_new_success: 'La nouvelle adresse est enregistrée.',
address_edit_success: 'L\'adresse a été mise à jour', address_edit_success: 'L\'adresse a été mise à jour.',
wait_redirection: " La page est redirigée.",
not_yet_address: "Il n'y a pas encore d'adresse. Cliquez sur '+ Créer une adresse'", not_yet_address: "Il n'y a pas encore d'adresse. Cliquez sur '+ Créer une adresse'",
use_this_address: "Utiliser cette adresse", use_this_address: "Utiliser cette adresse",
// person specific
add_an_address_to_person: 'Ajouter l\'adresse à la personne',
person_address_creation_success: 'La nouvelle adresse de la personne est enregistrée',
person_address_edit_success: 'L\'adresse de la personne a été mise à jour',
// household specific // household specific
move_date: 'Date du déménagement', move_date: 'Date du déménagement',
select_a_existing_address: 'Sélectionner une adresse existante',
add_an_address_to_household: 'Enregistrer',
household_address_move_success: 'La nouvelle adresse du ménage est enregistrée',
household_address_edit_success: 'L\'adresse du ménage a été mise à jour',
} }
}; };

View File

@ -33,24 +33,27 @@ containers.forEach((container) => {
size: container.dataset.buttonSize || null, size: container.dataset.buttonSize || null,
displayText: container.dataset.buttonDisplayText !== 'false' //boolean, default: true displayText: container.dataset.buttonDisplayText !== 'false' //boolean, default: true
}, },
/// Modal title text if create or edit address (trans chain, see i18n) /// Modal title text if create or edit address (trans chain, see i18n)
title: { title: {
create: container.dataset.modalTitle || null, create: container.dataset.modalTitle || null,
edit: container.dataset.modalTitle || null edit: container.dataset.modalTitle || null
}, },
/// Display panes in Modal for step123 /// Display panes in Modal for step123
openPanesInModal: container.dataset.openPanesInModal !== 'false', //boolean, default: true openPanesInModal: container.dataset.openPanesInModal !== 'false', //boolean, default: true
/// Display actions buttons of panes in a sticky-form-button navbar /// Display actions buttons of panes in a sticky-form-button navbar
stickyActions: container.dataset.stickyActions === 'true', //boolean, default: false stickyActions: container.dataset.stickyActions === 'true', //boolean, default: false
/// Use Date fields /// Use Date fields
useDate: { useDate: {
validFrom: container.dataset.useValidFrom === 'true', //boolean, default: false validFrom: container.dataset.useValidFrom === 'true', //boolean, default: false
validTo: container.dataset.useValidTo === 'true' //boolean, default: false validTo: container.dataset.useValidTo === 'true' //boolean, default: false
}, },
/// Force redirection after last step (cfr. backUrl)
forceRedirect: container.dataset.forceRedirect === 'true', //boolean, default: false /// Don't display show renderbox Address: showPane display only a button
/// Don't display show renderbox Address hideAddress: container.dataset.hideAddress === 'true' //boolean, default: false
//hideAddress: false //boolean, default: false
} }
} }
} }

View File

@ -16,7 +16,7 @@
</p> </p>
</component> </component>
<div v-if="isMultiline === true"> <div v-if="isMultiline === true" class="address-more">
<div v-if="address.floor"> <div v-if="address.floor">
<span class="floor"> <span class="floor">
<b>{{ $t('floor') }}</b>: {{ address.floor }} <b>{{ $t('floor') }}</b>: {{ address.floor }}

View File

@ -18,7 +18,7 @@
* stickyActions bool (default: false) * stickyActions bool (default: false)
* useValidFrom bool (default: false) * useValidFrom bool (default: false)
* useValidTo bool (default: false) * useValidTo bool (default: false)
* forceRedirect bool (default: false) * hideAddress bool (default: false)
#} #}
<div class="address-container" <div class="address-container"
@ -69,8 +69,8 @@
data-use-valid-to="true" data-use-valid-to="true"
{% endif %} {% endif %}
{% if forceRedirect is defined and forceRedirect == 1 %} {% if hideAddress is defined and hideAddress == 1 %}
data-force-redirect="true" data-hide-address="true"
{% endif %} {% endif %}
></div> ></div>

View File

@ -34,25 +34,25 @@
{% macro extended(address, options) %} {% macro extended(address, options) %}
{% if address.floor is not empty %} {% if address.floor is not empty %}
<span class="floor">{{ address.floor }}</span> <span class="floor">{{ 'address more.floor'|trans }} {{ address.floor }}</span>
{% endif %} {% endif %}
{% if address.corridor is not empty %} {% if address.corridor is not empty %}
<span class="corridor">{{ address.corridor }}</span> <span class="corridor">{{ 'address more.corridor'|trans }} {{ address.corridor }}</span>
{% endif %} {% endif %}
{% if address.steps is not empty %} {% if address.steps is not empty %}
<span class="steps">{{ address.steps }}</span> <span class="steps">{{ 'address more.steps'|trans }} {{ address.steps }}</span>
{% endif %} {% endif %}
{% if address.buildingName is not empty %} {% if address.buildingName is not empty %}
<span class="buildingName">{{ address.buildingName }}</span> <span class="buildingName">{{ 'address more.buildingName'|trans }} {{ address.buildingName }}</span>
{% endif %} {% endif %}
{% if address.flat is not empty %} {% if address.flat is not empty %}
<span class="flat">{{ address.flat }}</span> <span class="flat">{{ 'address more.flat'|trans }} {{ address.flat }}</span>
{% endif %}
{% if address.distribution is not empty %}
<span class="distribution">{{ address.distribution }}</span>
{% endif %} {% endif %}
{% if address.extra is not empty %} {% if address.extra is not empty %}
<span class="extra">{{ address.extra }}</span> <span class="extra">{{ 'address more.extra'|trans }} {{ address.extra }}</span>
{% endif %}
{% if address.distribution is not empty %}
<span class="distribution">{{ 'address more.distribution'|trans }} {{ address.distribution }}</span>
{% endif %} {% endif %}
{% endmacro %} {% endmacro %}

View File

@ -74,6 +74,14 @@ address:
address_homeless: L'adresse est-elle celle d'un domicile fixe ? address_homeless: L'adresse est-elle celle d'un domicile fixe ?
real address: Adresse d'un domicile real address: Adresse d'un domicile
consider homeless: N'est pas l'adresse d'un domicile (SDF) consider homeless: N'est pas l'adresse d'un domicile (SDF)
address more:
floor: ét
corridor: coul
steps: esc
flat: appart
buildingName: résidence
extra: ''
distribution: cedex
Create a new address: Créer une nouvelle adresse Create a new address: Créer une nouvelle adresse
#serach #serach

View File

@ -1,21 +0,0 @@
import { addressMessages } from 'ChillMainAssets/vuejs/Address/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: 'Enregistrer',
validFrom: 'Date du déménagement',
move_date: 'Date du déménagement',
back_to_the_list: 'Retour à la liste',
household_address_move_success: 'La nouvelle adresse du ménage est enregistrée',
household_address_edit_success: 'L\'adresse du ménage a été mise à jour',
loading: 'chargement en cours...'
}
};
Object.assign(appMessages.fr, addressMessages.fr);
export {
appMessages
};

View File

@ -29,9 +29,11 @@
{# include vue_address component #} {# include vue_address component #}
{% include '@ChillMain/Address/_insert_vue_address.html.twig' with { {% include '@ChillMain/Address/_insert_vue_address.html.twig' with {
targetEntity: { name: 'person', id: person.id }, targetEntity: { name: 'person', id: person.id },
backUrl: path('chill_person_address_list', { 'person_id': person.id }),
openPanesInModal: false, openPanesInModal: false,
} %} } %}
{#
backUrl: path('chill_person_address_list', { 'person_id': person.id }),
#}
{% endblock %} {% endblock %}

View File

@ -29,10 +29,10 @@
{# include vue_address component #} {# include vue_address component #}
{% include '@ChillMain/Address/_insert_vue_address.html.twig' with { {% include '@ChillMain/Address/_insert_vue_address.html.twig' with {
targetEntity: { name: 'person', id: person.id }, targetEntity: { name: 'person', id: person.id },
backUrl: path('chill_person_address_list', { 'person_id': person.id }),
stickyActions: true, stickyActions: true,
} %} } %}
{# {#
backUrl: path('chill_person_address_list', { 'person_id': person.id }),
openPanesInModal: false, openPanesInModal: false,
useValidFrom: true, useValidFrom: true,
#} #}

View File

@ -9,12 +9,10 @@
{# include vue_address component #} {# include vue_address component #}
{% include '@ChillMain/Address/_insert_vue_address.html.twig' with { {% include '@ChillMain/Address/_insert_vue_address.html.twig' with {
targetEntity: { name: 'household', id: household.id }, targetEntity: { name: 'household', id: household.id },
stickyActions: true
} %}
{#
backUrl: path('chill_person_household_addresses', { 'household_id': household.id }), backUrl: path('chill_person_household_addresses', { 'household_id': household.id }),
stickyActions: true,
openPanesInModal: false, openPanesInModal: false,
#} } %}
</div> </div>
{% endblock %} {% endblock %}

View File

@ -10,12 +10,9 @@
{% include '@ChillMain/Address/_insert_vue_address.html.twig' with { {% include '@ChillMain/Address/_insert_vue_address.html.twig' with {
targetEntity: { name: 'household', id: household.id }, targetEntity: { name: 'household', id: household.id },
backUrl: path('chill_person_household_addresses', { 'household_id': household.id }), backUrl: path('chill_person_household_addresses', { 'household_id': household.id }),
forceRedirect: true, openPanesInModal: false,
stickyActions: true, stickyActions: true,
} %} } %}
{#
openPanesInModal: false,
#}
</div> </div>
{% endblock %} {% endblock %}

View File

@ -18,14 +18,13 @@
{% include '@ChillMain/Address/_insert_vue_address.html.twig' with { {% include '@ChillMain/Address/_insert_vue_address.html.twig' with {
targetEntity: { name: 'household', id: household.id }, targetEntity: { name: 'household', id: household.id },
backUrl: path('chill_person_household_addresses', { 'household_id': household.id }), backUrl: path('chill_person_household_addresses', { 'household_id': household.id }),
forceRedirect: true,
mode: 'new', mode: 'new',
useValidFrom: true,
buttonSize: 'btn-lg', buttonSize: 'btn-lg',
buttonText: 'Move household', buttonText: 'Move household',
modalTitle: 'Move household', modalTitle: 'Move household',
} %} } %}
{# {#
useValidFrom: true,
#} #}
</li> </li>
@ -67,7 +66,6 @@
}) }} }) }}
<ul class="record_actions"> <ul class="record_actions">
<li> <li>
<a href="{{ path('chill_person_household_address_edit', { 'household_id': household.id, 'address_id' : address.id } ) }}" <a href="{{ path('chill_person_household_address_edit', { 'household_id': household.id, 'address_id' : address.id } ) }}"
class="btn btn-edit"></a> class="btn btn-edit"></a>

View File

@ -16,42 +16,39 @@
{% set address = household.currentAddress %} {% set address = household.currentAddress %}
{% if address is empty %} <div class="row household-resume">
<p class="chill-no-data-statement">{{ 'household.Household does not have any address currently'|trans }}</p> <div class="item-bloc col-5 col-address">
{% else %} <h2>{{ 'Address'|trans }}</h2>
<div class="row household-resume">
<div class="item-bloc col-5 col-address"> {% if address is empty %}
<p class="chill-no-data-statement">{{ 'household.Household does not have any address currently'|trans }}</p>
{% else %}
{{ address|chill_entity_render_box({'multiline': true, 'extended_infos': true }) }}
{% endif %}
<h2>{{ 'Address'|trans }}</h2> <ul class="list-inline text-right mt-2">
<li class="list-inline-item">
{{ address|chill_entity_render_box({'multiline': true}) }} {# include vue_address component #}
{% include '@ChillMain/Address/_insert_vue_address.html.twig' with {
<ul class="list-inline text-right mt-2"> targetEntity: { name: 'household', id: household.id },
<li class="list-inline-item"> backUrl: path('chill_person_household_summary', { 'household_id': household.id }),
{# include vue_address component #} hideAddress: true,
{% include '@ChillMain/Address/_insert_vue_address.html.twig' with { mode: 'new',
targetEntity: { name: 'household', id: household.id }, buttonSize: 'btn-sm',
backUrl: path('chill_person_household_addresses', { 'household_id': household.id }), buttonText: 'Move household',
mode: 'new', modalTitle: 'Move household',
buttonSize: 'btn-sm', buttonDisplayText: false,
buttonText: 'Move household', } %}
modalTitle: 'Move household', </li>
buttonDisplayText: false, <li class="list-inline-item">
} %} <a class="btn btn-secondary btn-sm" title="{{ "Addresses history"|trans }}"
{# href="{{ path('chill_person_household_addresses', { 'household_id': household.id } ) }}">
openPanesInModal: false <i class="fa fa-list fa-fw"></i>
#} </a>
</li> </li>
<li class="list-inline-item"> </ul>
<a class="btn btn-secondary btn-sm" title="{{ "Addresses history"|trans }}" </div>
href="{{ path('chill_person_household_addresses', { 'household_id': household.id } ) }}"> {% if address is not empty %}
<i class="fa fa-list fa-fw"></i>
</a>
</li>
</ul>
</div>
<div class="item-bloc col-7 col-comment"> <div class="item-bloc col-7 col-comment">
{% if form is null %} {% if form is null %}
@ -106,10 +103,9 @@
{{ form_end(form) }} {{ form_end(form) }}
{% endif %} {% endif %}
</div> </div>
</div> {% endif %}
{% endif %} </div>
<h2 class="my-5">{{ 'household.Household members'|trans }}</h2> <h2 class="my-5">{{ 'household.Household members'|trans }}</h2>