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