mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-13 13:54:23 +00:00
137 lines
5.3 KiB
JavaScript
137 lines
5.3 KiB
JavaScript
import 'es6-promise/auto';
|
|
import { createStore } from 'vuex';
|
|
|
|
const debug = process.env.NODE_ENV !== 'production';
|
|
|
|
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;
|
|
};
|
|
|
|
/*
|
|
* Assign missing keys for the ConcernedGroups component
|
|
*/
|
|
const mapEntity = (entity) => {
|
|
Object.assign(entity, {thirdParties: entity.professionals, users: entity.invites});
|
|
return entity;
|
|
};
|
|
|
|
const store = createStore({
|
|
strict: debug,
|
|
state: {
|
|
activity: mapEntity(window.entity),
|
|
currentEvent: null
|
|
},
|
|
mutations: {
|
|
|
|
// 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;
|
|
};
|
|
},
|
|
// Calendar
|
|
setEvents(state, payload) {
|
|
console.log(payload)
|
|
state.currentEvent = {start: payload.start, end: payload.end}
|
|
}
|
|
},
|
|
actions: {
|
|
addPersonsInvolved({ commit }, payload) {
|
|
console.log('### action addPersonsInvolved', payload.result.type);
|
|
switch (payload.result.type) {
|
|
case 'person':
|
|
let aPersons = document.getElementById("chill_calendarbundle_calendar_persons");
|
|
aPersons.value = addIdToValue(aPersons.value, payload.result.id);
|
|
break;
|
|
case 'thirdparty':
|
|
let aThirdParties = document.getElementById("chill_calendarbundle_calendar_professionals");
|
|
aThirdParties.value = addIdToValue(aThirdParties.value, payload.result.id);
|
|
break;
|
|
case 'user':
|
|
let aUsers = document.getElementById("chill_calendarbundle_calendar_invites");
|
|
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_calendarbundle_calendar_persons");
|
|
aPersons.value = removeIdFromValue(aPersons.value, payload.id);
|
|
break;
|
|
case 'thirdparty':
|
|
let aThirdParties = document.getElementById("chill_calendarbundle_calendar_professionals");
|
|
aThirdParties.value = removeIdFromValue(aThirdParties.value, payload.id);
|
|
break;
|
|
case 'user':
|
|
let aUsers = document.getElementById("chill_calendarbundle_calendar_invites");
|
|
aUsers.value = removeIdFromValue(aUsers.value, payload.id);
|
|
break;
|
|
};
|
|
commit('removePersonInvolved', payload);
|
|
},
|
|
|
|
// Calendar
|
|
createEvent({ commit }, payload) {
|
|
console.log('### action createEvent', payload);
|
|
let startDateInput = document.getElementById("chill_calendarbundle_calendar_startDate");
|
|
startDateInput.value = payload.startStr;
|
|
let endDateInput = document.getElementById("chill_calendarbundle_calendar_endDate");
|
|
endDateInput.value = payload.endStr;
|
|
let mainUserInput = document.getElementById("chill_calendarbundle_calendar_mainUser");
|
|
mainUserInput.value = payload.users.logged.id;
|
|
commit('setEvents', payload);
|
|
},
|
|
updateEvent({ commit }, payload) {
|
|
console.log('### action updateEvent', payload);
|
|
let startDateInput = document.getElementById("chill_calendarbundle_calendar_startDate");
|
|
startDateInput.value = payload.event.start.toISOString();
|
|
let endDateInput = document.getElementById("chill_calendarbundle_calendar_endDate");
|
|
endDateInput.value = payload.event.end.toISOString();
|
|
let calendarRangeInput = document.getElementById("chill_calendarbundle_calendar_calendarRange");
|
|
calendarRangeInput.value = Number(payload.event.extendedProps.calendarRangeId);
|
|
let mainUserInput = document.getElementById("chill_calendarbundle_calendar_mainUser");
|
|
mainUserInput.value = Number(payload.event.source.id);
|
|
commit('setEvents', payload);
|
|
},
|
|
|
|
}
|
|
});
|
|
|
|
export default store;
|