mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
AddAddress final submit, managed by callback and not an event
This commit is contained in:
parent
c2f75654dd
commit
17a3f45247
@ -4,7 +4,7 @@
|
||||
v-bind:context="context"
|
||||
v-bind:options="addAddress.options"
|
||||
v-bind:result="addAddress.result"
|
||||
@submitAddress="submitAddress"
|
||||
v-bind:addressChanged="submitAddress"
|
||||
ref="addAddress">
|
||||
</add-address>
|
||||
</template>
|
||||
@ -73,13 +73,11 @@ export default {
|
||||
displayErrors() {
|
||||
return this.$refs.addAddress.errorMsg;
|
||||
},
|
||||
submitAddress() {
|
||||
console.log('@@@ click on Submit Address Button');
|
||||
let payload = this.$refs.addAddress.submitNewAddress(); // Cast child method
|
||||
this.addDateToAddressAndPostAddressTo(payload);
|
||||
submitAddress(payload) {
|
||||
console.log('@@@ click on Submit Address Button', payload);
|
||||
this.addDateToAddressAndPostAddressTo(payload); // !!
|
||||
},
|
||||
addDateToAddressAndPostAddressTo(payload)
|
||||
{
|
||||
addDateToAddressAndPostAddressTo(payload) {
|
||||
payload.body = {
|
||||
validFrom: {
|
||||
datetime: `${this.context.valid.from.toISOString().split('T')[0]}T00:00:00+0100`
|
||||
@ -100,11 +98,9 @@ export default {
|
||||
this.$refs.addAddress.flag.loading = false;
|
||||
});
|
||||
},
|
||||
|
||||
postAddressTo(payload)
|
||||
{
|
||||
postAddressTo(payload) {
|
||||
console.log('postAddressTo', payload.entity);
|
||||
if (!this.context.edit) {
|
||||
if (!this.context.edit) { // !!
|
||||
switch (payload.entity) {
|
||||
case 'household':
|
||||
postAddressToHousehold(payload.entityId, payload.addressId)
|
||||
@ -141,7 +137,7 @@ export default {
|
||||
}
|
||||
} else {
|
||||
// address is already linked, just finish !
|
||||
window.location.assign(this.context.backUrl);
|
||||
//window.location.assign(this.context.backUrl);
|
||||
}
|
||||
},
|
||||
}
|
||||
|
@ -57,9 +57,9 @@
|
||||
v-bind:entity="this.entity"
|
||||
v-bind:valid="this.context.valid"
|
||||
v-bind:flag="this.flag"
|
||||
ref="showAddress"
|
||||
v-bind:insideModal="false" @openEditPane="openEditPane"
|
||||
@submitAddress="$emit('submitAddress')">
|
||||
v-bind:insideModal="false"
|
||||
@openEditPane="openEditPane"
|
||||
ref="showAddress">
|
||||
</show-address-pane>
|
||||
</div>
|
||||
|
||||
@ -110,7 +110,8 @@
|
||||
v-bind:default="this.default"
|
||||
v-bind:entity="this.entity"
|
||||
v-bind:flag="this.flag"
|
||||
v-bind:insideModal="false" @closeEditPane="closeEditPane"
|
||||
v-bind:insideModal="false"
|
||||
@closeEditPane="closeEditPane"
|
||||
@getCities="getCities"
|
||||
@getReferenceAddresses="getReferenceAddresses">
|
||||
</edit-address-pane>
|
||||
@ -127,8 +128,7 @@ import EditAddressPane from './EditAddressPane.vue';
|
||||
|
||||
export default {
|
||||
name: "AddAddress",
|
||||
props: ['context', 'options', 'result'],
|
||||
emits: ['submitAddress'],
|
||||
props: ['context', 'options', 'addressChanged'],
|
||||
components: {
|
||||
Modal,
|
||||
ShowAddressPane,
|
||||
@ -249,7 +249,7 @@ export default {
|
||||
this.getInitialAddress(this.context.addressId);
|
||||
}
|
||||
|
||||
// when create new address, start first with editPane
|
||||
// when create new address, start first with editPane !!
|
||||
if ( this.context.edit === false
|
||||
&& this.flag.editPane === false
|
||||
) {
|
||||
@ -407,10 +407,19 @@ export default {
|
||||
this.updateAddress({
|
||||
addressId: this.context.addressId,
|
||||
newAddress: newAddress
|
||||
});
|
||||
})
|
||||
.then(payload => {
|
||||
console.log('payload', payload);
|
||||
this.addressChanged(payload);
|
||||
}
|
||||
);
|
||||
|
||||
} else {
|
||||
this.addNewAddress(newAddress);
|
||||
this.addNewAddress(newAddress)
|
||||
.then(payload => this.addressChanged(payload));
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
|
||||
/*
|
||||
@ -428,25 +437,30 @@ export default {
|
||||
if (this.context.entity.type === 'person') {
|
||||
postcodeBody = Object.assign(postcodeBody, {'origin': 3});
|
||||
}
|
||||
postPostalCode(postcodeBody)
|
||||
return postPostalCode(postcodeBody)
|
||||
.then(postalCode => {
|
||||
payload.postcode = {'id': postalCode.id };
|
||||
this.postNewAddress(payload);
|
||||
return this.postNewAddress(payload);
|
||||
});
|
||||
|
||||
} else {
|
||||
this.postNewAddress(payload);
|
||||
return this.postNewAddress(payload);
|
||||
}
|
||||
},
|
||||
|
||||
postNewAddress(payload) {
|
||||
//console.log('postNewAddress', payload);
|
||||
postAddress(payload)
|
||||
return postAddress(payload)
|
||||
.then(address => new Promise((resolve, reject) => {
|
||||
this.entity.address = address;
|
||||
this.flag.loading = false;
|
||||
this.flag.success = true;
|
||||
resolve();
|
||||
resolve({
|
||||
entity: this.context.entity.type,
|
||||
entityId: this.context.entity.id,
|
||||
addressId: this.entity.address.address_id
|
||||
}
|
||||
);
|
||||
}))
|
||||
.catch((error) => {
|
||||
this.errorMsg.push(error);
|
||||
@ -463,31 +477,37 @@ export default {
|
||||
this.flag.loading = true;
|
||||
|
||||
// TODO change the condition because it writes new postal code in edit mode now: !writeNewPostalCode
|
||||
if ('newPostcode' in payload.newAddress) {
|
||||
|
||||
if ('newPostcode' in payload.newAddress) {
|
||||
let postcodeBody = payload.newAddress.newPostcode;
|
||||
postcodeBody = Object.assign(postcodeBody, {'origin': 3});
|
||||
|
||||
postPostalCode(postcodeBody)
|
||||
return postPostalCode(postcodeBody)
|
||||
.then(postalCode => {
|
||||
console.log('create new postcode', postalCode.id);
|
||||
payload.newAddress.postcode = {'id': postalCode.id };
|
||||
this.patchExistingAddress(payload);
|
||||
return this.patchExistingAddress(payload);
|
||||
});
|
||||
|
||||
} else {
|
||||
this.patchExistingAddress(payload);
|
||||
return this.patchExistingAddress(payload);
|
||||
}
|
||||
},
|
||||
|
||||
patchExistingAddress(payload) {
|
||||
console.log('patchExistingAddress', payload);
|
||||
patchAddress(payload.addressId, payload.newAddress)
|
||||
return patchAddress(payload.addressId, payload.newAddress)
|
||||
.then(address => new Promise((resolve, reject) => {
|
||||
this.entity.address = address;
|
||||
this.flag.loading = false;
|
||||
this.flag.success = true;
|
||||
resolve();
|
||||
}))
|
||||
this.entity.address = address;
|
||||
this.flag.loading = false;
|
||||
this.flag.success = true;
|
||||
return resolve({
|
||||
entity: this.context.entity.type,
|
||||
entityId: this.context.entity.id,
|
||||
addressId: this.entity.address.address_id
|
||||
});
|
||||
})
|
||||
)
|
||||
.catch((error) => {
|
||||
this.errorMsg.push(error);
|
||||
this.flag.loading = false;
|
||||
@ -497,7 +517,6 @@ export default {
|
||||
/*
|
||||
* Method called by parent when submitting address
|
||||
* (get out step1 show pane, submit button)
|
||||
*/
|
||||
submitNewAddress()
|
||||
{
|
||||
let payload = {
|
||||
@ -513,6 +532,7 @@ export default {
|
||||
|
||||
return payload;
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
@ -4,9 +4,11 @@
|
||||
<i v-if="flag.loading" class="fa fa-circle-o-notch fa-spin fa-2x fa-fw"></i>
|
||||
<span class="sr-only">{{ $t('loading') }}</span>
|
||||
</div>
|
||||
|
||||
<div v-if="errorMsg && errorMsg.length > 0" class="alert alert-danger">
|
||||
{{ errorMsg }}
|
||||
</div>
|
||||
|
||||
<div v-if="flag.success" class="alert alert-success">
|
||||
{{ $t(getSuccessText) }}
|
||||
</div>
|
||||
@ -26,23 +28,24 @@
|
||||
</div>
|
||||
|
||||
<ul v-if="insideModal == false"
|
||||
class="record_actions sticky-form-buttons">
|
||||
class="record_actions">
|
||||
<!--
|
||||
<li class="cancel">
|
||||
<a class="btn btn-cancel" v-bind:href="context.backUrl">
|
||||
{{ $t('back_to_the_list') }}</a>
|
||||
</li>
|
||||
</li>-->
|
||||
<li>
|
||||
<a @click.prevent="$emit('openEditPane')"
|
||||
class="btn btn-update">
|
||||
{{ $t('action.edit')}}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<!--<li>
|
||||
<a class="btn btn-save"
|
||||
@click.prevent="$emit('submitAddress')">
|
||||
{{ $t('action.save')}}
|
||||
</a>
|
||||
</li>
|
||||
</li>-->
|
||||
</ul>
|
||||
</template>
|
||||
|
||||
@ -65,7 +68,7 @@ export default {
|
||||
'errorMsg',
|
||||
'insideModal'
|
||||
],
|
||||
emits: ['openEditPane', 'submitAddress'], //?
|
||||
emits: ['openEditPane'], // 'submitAddress'
|
||||
computed: {
|
||||
address() {
|
||||
return this.entity.address;
|
||||
|
@ -82,7 +82,7 @@
|
||||
{% if thirdParty.address == null %}
|
||||
<span class="chill-no-data-statement">{{ 'No address given'|trans }}</span>
|
||||
{% else %}
|
||||
{{ thirdParty.address|chill_entity_render_box({'with_valid_from': false }) }}
|
||||
{{ thirdParty.address|chill_entity_render_box({'with_valid_from': false, 'extended_infos': true }) }}
|
||||
{% endif %}
|
||||
</dd>
|
||||
|
||||
@ -103,7 +103,7 @@
|
||||
<ul class="record_actions sticky-form-buttons">
|
||||
<li class="cancel">
|
||||
<a class="btn btn-cancel" href="{{ chill_return_path_or('chill_3party_3party_index') }}">
|
||||
{{ 'Cancel'|trans }}
|
||||
{{ 'Back to the list'|trans }}
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user