diff --git a/src/Bundle/ChillActivityBundle/Form/ActivityType.php b/src/Bundle/ChillActivityBundle/Form/ActivityType.php index d762aedd4..ddebcc741 100644 --- a/src/Bundle/ChillActivityBundle/Form/ActivityType.php +++ b/src/Bundle/ChillActivityBundle/Form/ActivityType.php @@ -160,7 +160,7 @@ class ActivityType extends AbstractType } if ($activityType->isVisible('persons')) { - // TODO Faire évoluer le selecteur et la query + // TODO Faire évoluer le selecteur et la query <= $builder->add('persons', EntityType::class, [ 'label' => $activityType->getLabel('persons'), 'required' => $activityType->isRequired('persons'), @@ -176,6 +176,7 @@ class ActivityType extends AbstractType } if ($activityType->isVisible('thirdParties')) { + // TODO Faire évoluer le selecteur et la query <= $builder->add('thirdParties', EntityType::class, [ 'label' => $activityType->getLabel('thirdParties'), 'required' => $activityType->isRequired('thirdParties'), @@ -200,6 +201,7 @@ class ActivityType extends AbstractType } if ($activityType->isVisible('users')) { + // TODO Faire évoluer le selecteur et la query <= $builder->add('users', EntityType::class, [ 'label' => $activityType->getLabel('users'), 'required' => $activityType->isRequired('users'), diff --git a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/App.vue b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/App.vue index 7ab51ea75..26b9d1164 100644 --- a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/App.vue +++ b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/App.vue @@ -2,11 +2,12 @@
- - + v-bind:bloc="bloc" + v-bind:setPersonsInBloc="setPersonsInBloc"> +
import { mapState } from 'vuex'; import AddPersons from 'ChillPersonAssets/vuejs/_components/AddPersons.vue'; -import DisplayPersonsBloc from './components/DisplayPersonsBloc.vue'; +import PersonsBloc from './components/PersonsBloc.vue'; export default { name: "App", components: { AddPersons, - DisplayPersonsBloc + PersonsBloc }, data() { return { personsBlocs: [ - { - key: 'personsAssociated', - title: 'activity.bloc_persons', + { key: 'personsAssociated', title: 'activity.bloc_persons_associated', + persons: [] }, - { - key: 'personsNotAssociated', - title: 'activity.bloc_persons_not_associated', + { key: 'personsNotAssociated', title: 'activity.bloc_persons_not_associated', + persons: [] }, - { - key: 'thirdparty', - title: 'activity.bloc_thirdparty', + { key: 'thirdparty', title: 'activity.bloc_thirdparty', + persons: [] }, - { - key: 'users', - title: 'activity.bloc_users', + { key: 'users', title: 'activity.bloc_users', + persons: [] }, ], addPersons: { key: 'activity', options: { - type: ['person', 'thirdparty'], + type: ['person', 'thirdparty'], // TODO 'user' priority: null, uniq: false, } } } }, - computed: mapState([ - 'activity' - ]), + computed: { + ...mapState({ + persons: state => state.activity.persons, + thirdParties: state => state.activity.thirdParties, + users: state => state.activity.users, + accompanyingCourse: state => state.activity.accompanyingPeriod + }) + }, methods: { addNewPersons({ selected, modal }) { console.log('@@@ CLICK button addNewPersons', selected); selected.forEach(function(item) { this.$store.dispatch('addPersonsInvolved', item); - console.log('item', item); }, this ); this.$refs.addPersons.resetSearch(); // to cast child method modal.showModal = false; + + this.setPersonsInBloc(); + }, + setPersonsInBloc() { + this.courseParticipations(); + console.log('setPersonsInBloc'); + this.personsBlocs.forEach(bloc => { + + switch (bloc.key) { + case 'personsAssociated': + bloc.persons = this.persons; + break; + case 'personsNotAssociated': + //bloc.persons = this.persons; + break; + case 'thirdparty': + bloc.persons = this.thirdParties; + break; + case 'users': + bloc.persons = this.users; + break; + } + }); + }, + courseParticipations() { + this.accompanyingCourse.participations.forEach(participation => { + if (participation.endDate) { + console.log('usager du parcours', participation.person.text); + } + }); } } } @@ -84,13 +115,14 @@ export default { div.flex-bloc { margin-top: 1em; div.item-bloc { - flex-basis: 25%; + flex-grow: 0; flex-shrink: 0; flex-basis: 25%; ul.list-content { list-style-type: none; padding-left: 0; li { a { color: white; + cursor: pointer; &:hover { color: #ffffffab; } diff --git a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/PersonBadge.vue b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/PersonBadge.vue index f1760cf7f..03827f4a2 100644 --- a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/PersonBadge.vue +++ b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/PersonBadge.vue @@ -1,17 +1,25 @@ diff --git a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/DisplayPersonsBloc.vue b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/PersonsBloc.vue similarity index 53% rename from src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/DisplayPersonsBloc.vue rename to src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/PersonsBloc.vue index b2bb20315..f95e2add7 100644 --- a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/DisplayPersonsBloc.vue +++ b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/PersonsBloc.vue @@ -7,10 +7,10 @@
    + @remove="removePerson">
@@ -21,27 +21,17 @@ diff --git a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/i18n.js b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/i18n.js index 1a34728c7..925c41063 100644 --- a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/i18n.js +++ b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/i18n.js @@ -4,7 +4,7 @@ const appMessages = { fr: { activity: { add_persons: "Ajouter des personnes concernées", - bloc_persons: "Usagers du parcours", + bloc_persons_associated: "Usagers du parcours", bloc_persons_not_associated: "Tiers non-pro.", bloc_thirdparty: "Tiers professionnels", bloc_users: "T(M)S", diff --git a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/store.js b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/store.js index 0c5f21669..cfbc1a812 100644 --- a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/store.js +++ b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/store.js @@ -10,22 +10,50 @@ const store = createStore({ activity: window.activity }, getters: { - }, mutations: { addPersonsInvolved(state, payload) { - console.log('### mutation addPersonsInvolved', payload); + //console.log('### mutation addPersonsInvolved', payload.result.type); + switch (payload.result.type) { + case 'person': + state.activity.persons.push(payload.result); + break; + case 'thirdparty': + state.activity.thirdParties.push(payload.result); + break; + case 'user': + state.activity.users.push(payload.result); + break; + }; + }, + removePersonInvolved(state, payload) { + console.log('### mutation removePersonInvolved', payload.type); + switch (payload.type) { + case 'person': + state.activity.persons = state.activity.persons.filter(person => person !== payload); + break; + case 'thirdparty': + state.activity.thirdParties = state.activity.thirdParties.filter(thirdparty => thirdparty !== payload); + break; + case 'user': + state.activity.users = state.activity.users.filter(user => user !== payload); + break; + }; } }, actions: { addPersonsInvolved({ commit }, payload) { console.log('### action addPersonsInvolved', payload); - //let el = document.getElementById('form['activity']['xxx']['xxxx']'); - //let option = document.createElement('option'); - //option.value = person.id; - //el.appendChild(option); - commit('addPersonsInvolved', payload) - } + //let el = document.getElementById('form['activity']['xxx']['xxxx']'); + //let option = document.createElement('option'); + //option.value = person.id; + //el.appendChild(option); + commit('addPersonsInvolved', payload); + }, + removePersonInvolved({ commit }, payload) { + console.log('### action removePersonInvolved', payload); + commit('removePersonInvolved', payload); + } } });