bugfix emit saveFormOnTheFly and add newly created contact to suggestion list immediately

This commit is contained in:
Julie Lenaerts 2022-01-24 14:24:56 +01:00
parent 256c5688a0
commit 0f2cbbe553
4 changed files with 19 additions and 13 deletions

View File

@ -212,7 +212,7 @@ export default {
type = 'thirdparty'
data = this.$refs.castThirdparty.$data.thirdparty;
// create the new contact here, bypassing saveFormOnTheFly() -> not working here?
const body = {
data = {
"type": "thirdparty",
"kind": "child",
"name": data.text,
@ -225,12 +225,6 @@ export default {
"email": data.email,
"address": null
}
postThirdparty(body)
.then(thirdparty => new Promise((resolve, reject) => {
// this.$parent.newPriorSuggestion(thirdparty);
console.log('thirdparty created', thirdparty)
resolve();
}));
} else {
type = this.$refs.castNew.radioType;
data = this.$refs.castNew.castDataByType();

View File

@ -60,6 +60,7 @@
v-bind:item="item"
v-bind:search="search"
v-bind:type="checkUniq"
@saveFormOnTheFly="saveFormOnTheFly"
@updateSelected="updateSelected">
</person-suggestion>
@ -259,15 +260,15 @@ export default {
result: entity
}
this.search.priorSuggestion = suggestion;
console.log('search priorSuggestion', this.search.priorSuggestion);
// console.log('search priorSuggestion', this.search.priorSuggestion);
} else {
this.search.priorSuggestion = {};
}
},
saveFormOnTheFly({ type, data }) {
console.log('saveFormOnTheFly from addPersons, type', type, ', data', data);
// console.log('saveFormOnTheFly from addPersons, type', type, ', data', data);
if (type === 'person') {
console.log('type person with', data);
// console.log('type person with', data);
postPerson(data)
.then(person => new Promise((resolve, reject) => {
console.log('onthefly create: post person', person);
@ -276,10 +277,10 @@ export default {
}));
}
else if (type === 'thirdparty') {
console.log('type thirdparty with', data);
// console.log('type thirdparty with', data);
postThirdparty(data)
.then(thirdparty => new Promise((resolve, reject) => {
console.log('onthefly create: post thirdparty', thirdparty);
// console.log('onthefly create: post thirdparty', thirdparty);
this.newPriorSuggestion(thirdparty);
resolve();
}));

View File

@ -18,6 +18,7 @@
<suggestion-third-party
v-if="item.result.type === 'thirdparty'"
@saveFormOnTheFly="emitEvent"
v-bind:item="item">
</suggestion-third-party>
@ -47,7 +48,7 @@ export default {
'search',
'type'
],
emits: ['updateSelected'],
emits: ['updateSelected', 'saveFormOnTheFly'],
computed: {
selected: {
set(value) {
@ -65,6 +66,9 @@ export default {
methods: {
setValueByType(value, type) {
return (type === 'radio')? [value] : value;
},
emitEvent({data, type}) {
this.$emit('saveFormOnTheFly', {type: type, data: data})
}
}
};

View File

@ -25,6 +25,7 @@
</badge-entity>
<on-the-fly v-if="item.result.kind === 'company'"
v-bind:parent="item.result"
@saveFormOnTheFly="emitEvent"
action="addContact"
></on-the-fly>
<on-the-fly
@ -58,6 +59,7 @@ export default {
BadgeEntity
},
props: ['item'],
emits: ['saveFormOnTheFly'],
i18n,
computed: {
hasAddress() {
@ -81,6 +83,11 @@ export default {
return null;
}
},
methods: {
emitEvent({data, type}) {
this.$emit('saveFormOnTheFly', {type: type, data: data})
}
}
}
</script>