mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
otf: patch person and thirdparty from the store, emit parent method saveFormOnTheFly()
This commit is contained in:
parent
9420c34f58
commit
008a10dab8
@ -19,20 +19,8 @@
|
|||||||
v-if="hasCurrentHouseholdAddress"
|
v-if="hasCurrentHouseholdAddress"
|
||||||
v-bind:person="participation.person">
|
v-bind:person="participation.person">
|
||||||
</button-location>
|
</button-location>
|
||||||
<li>
|
<li><on-the-fly :type="participation.person.type" :id="participation.person.id" action="show"></on-the-fly></li>
|
||||||
<on-the-fly
|
<li><on-the-fly :type="participation.person.type" :id="participation.person.id" action="edit" @saveFormOnTheFly="saveFormOnTheFly"></on-the-fly></li>
|
||||||
v-bind:type="participation.person.type"
|
|
||||||
v-bind:id="participation.person.id"
|
|
||||||
action="show">
|
|
||||||
</on-the-fly>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<on-the-fly
|
|
||||||
v-bind:type="participation.person.type"
|
|
||||||
v-bind:id="participation.person.id"
|
|
||||||
action="edit">
|
|
||||||
</on-the-fly>
|
|
||||||
</li>
|
|
||||||
<!-- <li>
|
<!-- <li>
|
||||||
<button class="btn btn-delete"
|
<button class="btn btn-delete"
|
||||||
:title="$t('action.delete')"
|
:title="$t('action.delete')"
|
||||||
@ -112,6 +100,13 @@ export default {
|
|||||||
getAccompanyingCourseReturnPath() {
|
getAccompanyingCourseReturnPath() {
|
||||||
return `fr/parcours/${this.$store.state.accompanyingCourse.id}/edit#section-10`;
|
return `fr/parcours/${this.$store.state.accompanyingCourse.id}/edit#section-10`;
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
saveFormOnTheFly(payload) {
|
||||||
|
console.log('saveFormOnTheFly: type', payload.type, ', data', payload.data);
|
||||||
|
payload.target = 'participation';
|
||||||
|
this.$store.dispatch('patchOnTheFly', payload);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
{{ $t('requestor.is_anonymous') }}
|
{{ $t('requestor.is_anonymous') }}
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<third-party-render-box v-if="accompanyingCourse.requestor.type == 'thirdparty'"
|
<third-party-render-box v-if="accompanyingCourse.requestor.type === 'thirdparty'"
|
||||||
:thirdparty="accompanyingCourse.requestor"
|
:thirdparty="accompanyingCourse.requestor"
|
||||||
:options="{
|
:options="{
|
||||||
addLink: false,
|
addLink: false,
|
||||||
@ -25,12 +25,12 @@
|
|||||||
<ul class="record_actions">
|
<ul class="record_actions">
|
||||||
<button-location v-if="hasCurrentHouseholdAddress" :thirdparty="accompanyingCourse.requestor"></button-location>
|
<button-location v-if="hasCurrentHouseholdAddress" :thirdparty="accompanyingCourse.requestor"></button-location>
|
||||||
<li><on-the-fly :type="accompanyingCourse.requestor.type" :id="accompanyingCourse.requestor.id" action="show"></on-the-fly></li>
|
<li><on-the-fly :type="accompanyingCourse.requestor.type" :id="accompanyingCourse.requestor.id" action="show"></on-the-fly></li>
|
||||||
<li><on-the-fly :type="accompanyingCourse.requestor.type" :id="accompanyingCourse.requestor.id" action="edit"></on-the-fly></li>
|
<li><on-the-fly :type="accompanyingCourse.requestor.type" :id="accompanyingCourse.requestor.id" action="edit" @saveFormOnTheFly="saveFormOnTheFly"></on-the-fly></li>
|
||||||
</ul>
|
</ul>
|
||||||
</template>
|
</template>
|
||||||
</third-party-render-box>
|
</third-party-render-box>
|
||||||
|
|
||||||
<person-render-box render="bloc" v-else-if="accompanyingCourse.requestor.type == 'person'"
|
<person-render-box render="bloc" v-else-if="accompanyingCourse.requestor.type === 'person'"
|
||||||
:person="accompanyingCourse.requestor"
|
:person="accompanyingCourse.requestor"
|
||||||
:options="{
|
:options="{
|
||||||
addLink: false,
|
addLink: false,
|
||||||
@ -46,7 +46,7 @@
|
|||||||
<ul class="record_actions">
|
<ul class="record_actions">
|
||||||
<button-location v-if="hasCurrentHouseholdAddress" :person="accompanyingCourse.requestor"></button-location>
|
<button-location v-if="hasCurrentHouseholdAddress" :person="accompanyingCourse.requestor"></button-location>
|
||||||
<li><on-the-fly :type="accompanyingCourse.requestor.type" :id="accompanyingCourse.requestor.id" action="show"></on-the-fly></li>
|
<li><on-the-fly :type="accompanyingCourse.requestor.type" :id="accompanyingCourse.requestor.id" action="show"></on-the-fly></li>
|
||||||
<li><on-the-fly :type="accompanyingCourse.requestor.type" :id="accompanyingCourse.requestor.id" action="edit"></on-the-fly></li>
|
<li><on-the-fly :type="accompanyingCourse.requestor.type" :id="accompanyingCourse.requestor.id" action="edit" @saveFormOnTheFly="saveFormOnTheFly"></on-the-fly></li>
|
||||||
</ul>
|
</ul>
|
||||||
</template>
|
</template>
|
||||||
</person-render-box>
|
</person-render-box>
|
||||||
@ -129,6 +129,11 @@ export default {
|
|||||||
this.$store.dispatch('addRequestor', selected.shift());
|
this.$store.dispatch('addRequestor', selected.shift());
|
||||||
this.$refs.addPersons.resetSearch(); // to cast child method
|
this.$refs.addPersons.resetSearch(); // to cast child method
|
||||||
modal.showModal = false;
|
modal.showModal = false;
|
||||||
|
},
|
||||||
|
saveFormOnTheFly(payload) {
|
||||||
|
console.log('saveFormOnTheFly: type', payload.type, ', data', payload.data);
|
||||||
|
payload.target = 'requestor';
|
||||||
|
this.$store.dispatch('patchOnTheFly', payload);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
<ul class="record_actions">
|
<ul class="record_actions">
|
||||||
<button-location v-if="hasCurrentHouseholdAddress" :person="resource.resource"></button-location>
|
<button-location v-if="hasCurrentHouseholdAddress" :person="resource.resource"></button-location>
|
||||||
<li><on-the-fly :type="resource.resource.type" :id="resource.resource.id" action="show"></on-the-fly></li>
|
<li><on-the-fly :type="resource.resource.type" :id="resource.resource.id" action="show"></on-the-fly></li>
|
||||||
<li><on-the-fly :type="resource.resource.type" :id="resource.resource.id" action="edit"></on-the-fly></li>
|
<li><on-the-fly :type="resource.resource.type" :id="resource.resource.id" action="edit" @saveFormOnTheFly="saveFormOnTheFly"></on-the-fly></li>
|
||||||
<li><button class="btn btn-sm btn-remove" :title="$t('action.remove')" @click.prevent="$emit('remove', resource)"></button></li>
|
<li><button class="btn btn-sm btn-remove" :title="$t('action.remove')" @click.prevent="$emit('remove', resource)"></button></li>
|
||||||
</ul>
|
</ul>
|
||||||
</template>
|
</template>
|
||||||
@ -22,7 +22,7 @@
|
|||||||
<template v-slot:record-actions>
|
<template v-slot:record-actions>
|
||||||
<ul class="record_actions">
|
<ul class="record_actions">
|
||||||
<li><on-the-fly :type="resource.resource.type" :id="resource.resource.id" action="show"></on-the-fly></li>
|
<li><on-the-fly :type="resource.resource.type" :id="resource.resource.id" action="show"></on-the-fly></li>
|
||||||
<li><on-the-fly :type="resource.resource.type" :id="resource.resource.id" action="edit"></on-the-fly></li>
|
<li><on-the-fly :type="resource.resource.type" :id="resource.resource.id" action="edit" @saveFormOnTheFly="saveFormOnTheFly"></on-the-fly></li>
|
||||||
<li><button class="btn btn-sm btn-remove" :title="$t('action.remove')" @click.prevent="$emit('remove', resource)"></button></li>
|
<li><button class="btn btn-sm btn-remove" :title="$t('action.remove')" @click.prevent="$emit('remove', resource)"></button></li>
|
||||||
</ul>
|
</ul>
|
||||||
</template>
|
</template>
|
||||||
@ -53,6 +53,13 @@ export default {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
saveFormOnTheFly(payload) {
|
||||||
|
console.log('saveFormOnTheFly: type', payload.type, ', data', payload.data);
|
||||||
|
payload.target = 'resource';
|
||||||
|
this.$store.dispatch('patchOnTheFly', payload);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@ -11,6 +11,8 @@ import { getAccompanyingCourse,
|
|||||||
addScope,
|
addScope,
|
||||||
removeScope,
|
removeScope,
|
||||||
} from '../api';
|
} from '../api';
|
||||||
|
import { patchPerson } from "ChillPersonAssets/vuejs/_api/OnTheFly";
|
||||||
|
import { patchThirdparty } from "ChillThirdPartyAssets/vuejs/_api/OnTheFly";
|
||||||
|
|
||||||
|
|
||||||
const debug = process.env.NODE_ENV !== 'production';
|
const debug = process.env.NODE_ENV !== 'production';
|
||||||
@ -107,6 +109,36 @@ let initPromise = Promise.all([scopesPromise, accompanyingCoursePromise])
|
|||||||
//console.log('### mutation: addResource', resource);
|
//console.log('### mutation: addResource', resource);
|
||||||
state.accompanyingCourse.resources.push(resource);
|
state.accompanyingCourse.resources.push(resource);
|
||||||
},
|
},
|
||||||
|
updatePerson(state, payload) {
|
||||||
|
console.log('### mutation: updatePerson', payload);
|
||||||
|
let i = null;
|
||||||
|
switch (payload.target) {
|
||||||
|
case 'participation':
|
||||||
|
i = state.accompanyingCourse.participations.findIndex(e => e.person.id === payload.person.id );
|
||||||
|
state.accompanyingCourse.participations[i].person = payload.person;
|
||||||
|
break;
|
||||||
|
case 'requestor':
|
||||||
|
state.accompanyingCourse.requestor = payload.person;
|
||||||
|
break;
|
||||||
|
case 'resource':
|
||||||
|
i = state.accompanyingCourse.resources.findIndex(e => e.resource.id === payload.person.id );
|
||||||
|
state.accompanyingCourse.resources[i].resource = payload.person;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
updateThirdparty(state, payload) {
|
||||||
|
console.log('### mutation: updateThirdparty', payload);
|
||||||
|
let i = null;
|
||||||
|
switch (payload.target) {
|
||||||
|
case 'requestor':
|
||||||
|
state.accompanyingCourse.requestor = payload.thirdparty;
|
||||||
|
break;
|
||||||
|
case 'resource':
|
||||||
|
i = state.accompanyingCourse.resources.findIndex(e => e.resource.id === payload.thirdparty.id );
|
||||||
|
state.accompanyingCourse.resources[i].resource = payload.thirdparty;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
},
|
||||||
toggleIntensity(state, value) {
|
toggleIntensity(state, value) {
|
||||||
state.accompanyingCourse.intensity = value;
|
state.accompanyingCourse.intensity = value;
|
||||||
},
|
},
|
||||||
@ -239,6 +271,38 @@ let initPromise = Promise.all([scopesPromise, accompanyingCoursePromise])
|
|||||||
resolve();
|
resolve();
|
||||||
})).catch((error) => { commit('catchError', error) });
|
})).catch((error) => { commit('catchError', error) });
|
||||||
},
|
},
|
||||||
|
patchOnTheFly({ commit }, payload) {
|
||||||
|
console.log('## action: patch OnTheFly', payload);
|
||||||
|
let body = { type: payload.type };
|
||||||
|
if (payload.type === 'person') {
|
||||||
|
body.firstName = payload.data.firstName;
|
||||||
|
body.lastName = payload.data.lastName;
|
||||||
|
if (payload.data.birthdate !== null) { body.birthdate = payload.data.birthdate; }
|
||||||
|
body.phonenumber = payload.data.phonenumber;
|
||||||
|
body.mobilenumber = payload.data.mobilenumber;
|
||||||
|
body.gender = payload.data.gender;
|
||||||
|
console.log('id', payload.data.id, 'and body', body);
|
||||||
|
patchPerson(payload.data.id, body)
|
||||||
|
.then(person => new Promise((resolve, reject) => {
|
||||||
|
console.log('patch person', person);
|
||||||
|
commit('updatePerson', { target: payload.target, person: person });
|
||||||
|
resolve();
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
else if (payload.type === 'thirdparty') {
|
||||||
|
body.name = payload.data.name;
|
||||||
|
body.email = payload.data.email;
|
||||||
|
body.phonenumber = payload.data.phonenumber;
|
||||||
|
body.address = { address_id: payload.data.address.address_id };
|
||||||
|
console.log('id', payload.data.id, 'and body', body);
|
||||||
|
patchThirdparty(payload.data.id, body)
|
||||||
|
.then(thirdparty => new Promise((resolve, reject) => {
|
||||||
|
console.log('patch thirdparty', thirdparty);
|
||||||
|
commit('updateThirdparty', { target: payload.target, thirdparty: thirdparty });
|
||||||
|
resolve();
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
},
|
||||||
toggleIntensity({ commit }, payload) {
|
toggleIntensity({ commit }, payload) {
|
||||||
//console.log(payload);
|
//console.log(payload);
|
||||||
patchAccompanyingCourse(id, { type: "accompanying_period", intensity: payload })
|
patchAccompanyingCourse(id, { type: "accompanying_period", intensity: payload })
|
||||||
|
@ -92,6 +92,7 @@ import OnTheFly from 'ChillMainAssets/vuejs/_components/OnTheFly.vue';
|
|||||||
import PersonSuggestion from './AddPersons/PersonSuggestion';
|
import PersonSuggestion from './AddPersons/PersonSuggestion';
|
||||||
import { searchPersons, searchPersons_2 } from 'ChillPersonAssets/vuejs/_api/AddPersons';
|
import { searchPersons, searchPersons_2 } from 'ChillPersonAssets/vuejs/_api/AddPersons';
|
||||||
import { postPerson } from "ChillPersonAssets/vuejs/_api/OnTheFly";
|
import { postPerson } from "ChillPersonAssets/vuejs/_api/OnTheFly";
|
||||||
|
import { postThirdparty } from "ChillThirdPartyAssets/vuejs/_api/OnTheFly";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'AddPersons',
|
name: 'AddPersons',
|
||||||
@ -254,25 +255,25 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
saveFormOnTheFly({ type, data }) {
|
saveFormOnTheFly({ type, data }) {
|
||||||
console.log('saveFormOnTheFly from addPersons', { type, data });
|
console.log('saveFormOnTheFly from addPersons, type', type, ', data', data);
|
||||||
|
|
||||||
// create/edit person
|
|
||||||
if (type === 'person') {
|
if (type === 'person') {
|
||||||
|
|
||||||
console.log('type person with', data);
|
console.log('type person with', data);
|
||||||
postPerson(data)
|
postPerson(data)
|
||||||
.then(person => new Promise((resolve, reject) => {
|
.then(person => new Promise((resolve, reject) => {
|
||||||
//this.person = person;
|
console.log('onthefly create: post person', person);
|
||||||
this.newPriorSuggestion(person);
|
this.newPriorSuggestion(person);
|
||||||
resolve();
|
resolve();
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
// create/edit thirdparty
|
|
||||||
else if (type === 'thirdparty') {
|
else if (type === 'thirdparty') {
|
||||||
console.log('not yet implemented: type thirdparty with', type, data);
|
console.log('type thirdparty with', data);
|
||||||
|
postThirdparty(data)
|
||||||
|
.then(thirdparty => new Promise((resolve, reject) => {
|
||||||
|
console.log('onthefly create: post thirdparty', thirdparty);
|
||||||
|
this.newPriorSuggestion(thirdparty);
|
||||||
|
resolve();
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -75,7 +75,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getPerson, postPerson } from '../../_api/OnTheFly';
|
import { getPerson } from '../../_api/OnTheFly';
|
||||||
import PersonRenderBox from '../Entity/PersonRenderBox.vue';
|
import PersonRenderBox from '../Entity/PersonRenderBox.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -162,15 +162,6 @@ export default {
|
|||||||
console.log('get person', this.person);
|
console.log('get person', this.person);
|
||||||
resolve();
|
resolve();
|
||||||
}));
|
}));
|
||||||
},
|
|
||||||
patchData() {
|
|
||||||
console.log('id', this.id, 'and body', this.person);
|
|
||||||
patchPerson(this.id, this.person)
|
|
||||||
.then(person => new Promise((resolve, reject) => {
|
|
||||||
this.person = person;
|
|
||||||
console.log('patch person', this.person);
|
|
||||||
resolve();
|
|
||||||
}))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import ThirdPartyRenderBox from '../Entity/ThirdPartyRenderBox.vue';
|
import ThirdPartyRenderBox from '../Entity/ThirdPartyRenderBox.vue';
|
||||||
import AddAddress from 'ChillMainAssets/vuejs/Address/components/AddAddress';
|
import AddAddress from 'ChillMainAssets/vuejs/Address/components/AddAddress';
|
||||||
import { getThirdparty, patchThirdparty } from '../../_api/OnTheFly';
|
import { getThirdparty } from '../../_api/OnTheFly';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "OnTheFlyThirdParty",
|
name: "OnTheFlyThirdParty",
|
||||||
@ -98,13 +98,6 @@ export default {
|
|||||||
resolve();
|
resolve();
|
||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
patchData() {
|
|
||||||
patchThirdparty(this.thirdparty).then(thirdparty => new Promise((resolve, reject) => {
|
|
||||||
this.thirdparty = thirdparty;
|
|
||||||
console.log('patch thirdparty', thirdparty);
|
|
||||||
resolve();
|
|
||||||
}))
|
|
||||||
},
|
|
||||||
submitAddress(payload) {
|
submitAddress(payload) {
|
||||||
console.log('submitAddress', payload);
|
console.log('submitAddress', payload);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user