import 'es6-promise/auto'; import { createStore } from 'vuex'; 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; }; const removeIdFromValue = (string, id) => { 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; }; } }, 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); } } }); export default store;