AddAddress final submit, managed by callback and not an event

This commit is contained in:
2021-09-16 15:48:45 +02:00
parent c2f75654dd
commit 17a3f45247
4 changed files with 63 additions and 44 deletions

View File

@@ -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>