diff --git a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/ConcernedGroups.vue b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/ConcernedGroups.vue
index 05b7dd218..1cbd299dc 100644
--- a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/ConcernedGroups.vue
+++ b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/components/ConcernedGroups.vue
@@ -2,7 +2,7 @@
-
+
+
+
+
-
-
+
+
diff --git a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/store.js b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/store.js
index c87573797..952cb5b25 100644
--- a/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/store.js
+++ b/src/Bundle/ChillActivityBundle/Resources/public/vuejs/Activity/store.js
@@ -5,165 +5,175 @@ const debug = process.env.NODE_ENV !== 'production';
//console.log('window.activity', window.activity);
const addIdToValue = (string, id) => {
- let array = string ? string.split(',') : [];
- array.push(id.toString());
- let str = array.join();
- return str;
+ let array = string ? string.split(',') : [];
+ array.push(id.toString());
+ let str = array.join();
+ return str;
};
const removeIdFromValue = (string, id) => {
- let array = string.split(',');
- array = array.filter(el => el !== id.toString());
- let str = array.join();
- return str;
+ let array = string.split(',');
+ array = array.filter(el => el !== id.toString());
+ let str = array.join();
+ return str;
};
const store = createStore({
- strict: debug,
- state: {
- activity: window.activity,
- socialIssuesOther: [],
- socialActionsList: [],
- },
- mutations: {
-
- // SocialIssueAcc
- addIssueInList(state, issue) {
- //console.log('add issue list', issue.id);
- state.activity.accompanyingPeriod.socialIssues.push(issue);
- },
- addIssueSelected(state, issue) {
- //console.log('add issue selected', issue.id);
- state.activity.socialIssues.push(issue);
- },
- updateIssuesSelected(state, issues) {
- //console.log('update issues selected', issues);
- state.activity.socialIssues = issues;
- },
- updateIssuesOther(state, payload) {
- //console.log('update issues other');
- state.socialIssuesOther = payload;
- },
- removeIssueInOther(state, issue) {
- //console.log('remove issue other', issue.id);
- state.socialIssuesOther = state.socialIssuesOther.filter(i => i.id !== issue.id);
- },
- resetActionsList(state) {
- //console.log('reset list actions');
- state.socialActionsList = [];
- },
- addActionInList(state, action) {
- //console.log('add action list', action.id);
- state.socialActionsList.push(action);
- },
- updateActionsSelected(state, actions) {
- //console.log('update actions selected', actions);
- state.activity.socialActions = actions;
- },
- filterList(state, list) {
- const filterList = (list) => {
- // remove duplicates entries
- list = list.filter((value, index) => list.findIndex(array => array.id === value.id) === index);
- // alpha sort
- list.sort((a,b) => (a.text > b.text) ? 1 : ((b.text > a.text) ? -1 : 0));
- return list;
- };
- if (list === 'issues') {
- state.activity.accompanyingPeriod.socialIssues = filterList(state.activity.accompanyingPeriod.socialIssues);
- }
- if (list === 'actions') {
- state.socialActionsList = filterList(state.socialActionsList);
- }
- },
-
- // ConcernedGroups
- addPersonsInvolved(state, 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;
- };
+ strict: debug,
+ state: {
+ activity: window.activity,
+ socialIssuesOther: [],
+ socialActionsList: [],
+ },
+ getters: {
+ filterSuggestedPersons(state) {
+ if (typeof(state.activity.accompanyingPeriod) === 'undefined') {
+ return [];
}
- },
- actions: {
- addIssueSelected({ commit }, issue) {
- let aSocialIssues = document.getElementById("chill_activitybundle_activity_socialIssues");
- aSocialIssues.value = addIdToValue(aSocialIssues.value, issue.id);
- commit('addIssueSelected', issue);
- },
- updateIssuesSelected({ commit }, payload) {
- let aSocialIssues = document.getElementById("chill_activitybundle_activity_socialIssues");
- aSocialIssues.value = '';
- payload.forEach(item => {
- aSocialIssues.value = addIdToValue(aSocialIssues.value, item.id);
- });
- commit('updateIssuesSelected', payload);
- },
- updateActionsSelected({ commit }, payload) {
- let aSocialActions = document.getElementById("chill_activitybundle_activity_socialActions");
- aSocialActions.value = '';
- payload.forEach(item => {
- aSocialActions.value = addIdToValue(aSocialActions.value, item.id);
- });
- commit('updateActionsSelected', payload);
- },
- addPersonsInvolved({ commit }, payload) {
- //console.log('### action addPersonsInvolved', payload.result.type);
- switch (payload.result.type) {
- case 'person':
- let aPersons = document.getElementById("chill_activitybundle_activity_persons");
- aPersons.value = addIdToValue(aPersons.value, payload.result.id);
- break;
- case 'thirdparty':
- let aThirdParties = document.getElementById("chill_activitybundle_activity_thirdParties");
- aThirdParties.value = addIdToValue(aThirdParties.value, payload.result.id);
- break;
- case 'user':
- let aUsers = document.getElementById("chill_activitybundle_activity_users");
- aUsers.value = addIdToValue(aUsers.value, payload.result.id);
- break;
- };
- commit('addPersonsInvolved', payload);
- },
- removePersonInvolved({ commit }, payload) {
- //console.log('### action removePersonInvolved', payload);
- switch (payload.type) {
- case 'person':
- let aPersons = document.getElementById("chill_activitybundle_activity_persons");
- aPersons.value = removeIdFromValue(aPersons.value, payload.id);
- break;
- case 'thirdparty':
- let aThirdParties = document.getElementById("chill_activitybundle_activity_thirdParties");
- aThirdParties.value = removeIdFromValue(aThirdParties.value, payload.id);
- break;
- case 'user':
- let aUsers = document.getElementById("chill_activitybundle_activity_users");
- aUsers.value = removeIdFromValue(aUsers.value, payload.id);
- break;
- };
- commit('removePersonInvolved', payload);
+ let existingPersonIds = state.activity.persons.map(p => p.id);
+ return state.activity.accompanyingPeriod.participations.filter(p => p.endDate === null)
+ .map(p => p.person)
+ .filter(p => !existingPersonIds.includes(p.id))
+ }
+ },
+ mutations: {
+ // SocialIssueAcc
+ addIssueInList(state, issue) {
+ //console.log('add issue list', issue.id);
+ state.activity.accompanyingPeriod.socialIssues.push(issue);
+ },
+ addIssueSelected(state, issue) {
+ //console.log('add issue selected', issue.id);
+ state.activity.socialIssues.push(issue);
+ },
+ updateIssuesSelected(state, issues) {
+ //console.log('update issues selected', issues);
+ state.activity.socialIssues = issues;
+ },
+ updateIssuesOther(state, payload) {
+ //console.log('update issues other');
+ state.socialIssuesOther = payload;
+ },
+ removeIssueInOther(state, issue) {
+ //console.log('remove issue other', issue.id);
+ state.socialIssuesOther = state.socialIssuesOther.filter(i => i.id !== issue.id);
+ },
+ resetActionsList(state) {
+ //console.log('reset list actions');
+ state.socialActionsList = [];
+ },
+ addActionInList(state, action) {
+ //console.log('add action list', action.id);
+ state.socialActionsList.push(action);
+ },
+ updateActionsSelected(state, actions) {
+ //console.log('update actions selected', actions);
+ state.activity.socialActions = actions;
+ },
+ filterList(state, list) {
+ const filterList = (list) => {
+ // remove duplicates entries
+ list = list.filter((value, index) => list.findIndex(array => array.id === value.id) === index);
+ // alpha sort
+ list.sort((a,b) => (a.text > b.text) ? 1 : ((b.text > a.text) ? -1 : 0));
+ return list;
+ };
+ if (list === 'issues') {
+ state.activity.accompanyingPeriod.socialIssues = filterList(state.activity.accompanyingPeriod.socialIssues);
}
+ if (list === 'actions') {
+ state.socialActionsList = filterList(state.socialActionsList);
+ }
+ },
+
+ // ConcernedGroups
+ addPersonsInvolved(state, 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: {
+ addIssueSelected({ commit }, issue) {
+ let aSocialIssues = document.getElementById("chill_activitybundle_activity_socialIssues");
+ aSocialIssues.value = addIdToValue(aSocialIssues.value, issue.id);
+ commit('addIssueSelected', issue);
+ },
+ updateIssuesSelected({ commit }, payload) {
+ let aSocialIssues = document.getElementById("chill_activitybundle_activity_socialIssues");
+ aSocialIssues.value = '';
+ payload.forEach(item => {
+ aSocialIssues.value = addIdToValue(aSocialIssues.value, item.id);
+ });
+ commit('updateIssuesSelected', payload);
+ },
+ updateActionsSelected({ commit }, payload) {
+ let aSocialActions = document.getElementById("chill_activitybundle_activity_socialActions");
+ aSocialActions.value = '';
+ payload.forEach(item => {
+ aSocialActions.value = addIdToValue(aSocialActions.value, item.id);
+ });
+ commit('updateActionsSelected', payload);
+ },
+ addPersonsInvolved({ commit }, payload) {
+ //console.log('### action addPersonsInvolved', payload.result.type);
+ switch (payload.result.type) {
+ case 'person':
+ let aPersons = document.getElementById("chill_activitybundle_activity_persons");
+ aPersons.value = addIdToValue(aPersons.value, payload.result.id);
+ break;
+ case 'thirdparty':
+ let aThirdParties = document.getElementById("chill_activitybundle_activity_thirdParties");
+ aThirdParties.value = addIdToValue(aThirdParties.value, payload.result.id);
+ break;
+ case 'user':
+ let aUsers = document.getElementById("chill_activitybundle_activity_users");
+ aUsers.value = addIdToValue(aUsers.value, payload.result.id);
+ break;
+ };
+ commit('addPersonsInvolved', payload);
+ },
+ removePersonInvolved({ commit }, payload) {
+ //console.log('### action removePersonInvolved', payload);
+ switch (payload.type) {
+ case 'person':
+ let aPersons = document.getElementById("chill_activitybundle_activity_persons");
+ aPersons.value = removeIdFromValue(aPersons.value, payload.id);
+ break;
+ case 'thirdparty':
+ let aThirdParties = document.getElementById("chill_activitybundle_activity_thirdParties");
+ aThirdParties.value = removeIdFromValue(aThirdParties.value, payload.id);
+ break;
+ case 'user':
+ let aUsers = document.getElementById("chill_activitybundle_activity_users");
+ aUsers.value = removeIdFromValue(aUsers.value, payload.id);
+ break;
+ };
+ commit('removePersonInvolved', payload);
+ }
}
});