more changes to save modified, deleted new plages immediately

This commit is contained in:
Julie Lenaerts 2022-05-10 13:37:55 +02:00
parent c77af0bc4a
commit 6631e77df5
2 changed files with 30 additions and 23 deletions

View File

@ -186,6 +186,7 @@ export default {
}, },
computed: { computed: {
...mapState({ ...mapState({
currentCalendarRanges: state => state.currentCalendarRanges,
newCalendarRanges: state => state.newCalendarRanges, newCalendarRanges: state => state.newCalendarRanges,
updateCalendarRanges: state => state.updateCalendarRanges, updateCalendarRanges: state => state.updateCalendarRanges,
deleteCalendarRanges: state => state.deleteCalendarRanges, deleteCalendarRanges: state => state.deleteCalendarRanges,
@ -204,6 +205,7 @@ export default {
methods: { methods: {
init() { init() {
this.fetchData(); this.fetchData();
console.log('calendar', this.$refs.fullCalendar.getApi().view.getCurrentData())
}, },
openModal() { openModal() {
this.modal.showModal = true; this.modal.showModal = true;
@ -228,7 +230,6 @@ export default {
fetchData() { fetchData() {
this.flag.loading = true; this.flag.loading = true;
fetchCalendarRangesByUser(this.userId).then(calendarRanges => new Promise((resolve, reject) => { fetchCalendarRangesByUser(this.userId).then(calendarRanges => new Promise((resolve, reject) => {
// console.log('calendar ranges', calendarRanges.results)
let events = calendarRanges.results.map(i => let events = calendarRanges.results.map(i =>
({ ({
start: i.startDate.datetime, start: i.startDate.datetime,
@ -281,7 +282,6 @@ export default {
if (this.showMyCalendar) { if (this.showMyCalendar) {
this.calendarOptions.eventSources.push(this.calendarEvents.userCalendar); this.calendarOptions.eventSources.push(this.calendarEvents.userCalendar);
} }
console.log('eventSources', this.calendarOptions.eventSources);
}, },
toggleMyCalendar(value) { toggleMyCalendar(value) {
this.showMyCalendar = value; this.showMyCalendar = value;
@ -290,7 +290,6 @@ export default {
this.calendarOptions.weekends = !this.calendarOptions.weekends; this.calendarOptions.weekends = !this.calendarOptions.weekends;
}, },
onDateSelect(payload) { onDateSelect(payload) {
// console.log('payload', payload);
let events = this.calendarEvents.new.events; let events = this.calendarEvents.new.events;
// events.push({ // events.push({
// start: payload.startStr, // start: payload.startStr,
@ -305,7 +304,6 @@ export default {
this.disableCopyDayButton = false; this.disableCopyDayButton = false;
this.lastNewDate = new Date(payload.startStr); this.lastNewDate = new Date(payload.startStr);
this.updateEventsSource(); this.updateEventsSource();
// this.$store.dispatch('createRange', payload);
postCalendarRange({ postCalendarRange({
user: { user: {
type: 'user', type: 'user',
@ -317,17 +315,24 @@ export default {
endDate: { endDate: {
datetime: `${payload.end.toISOString().split('.')[0]}+0000`, // TODO check if OK with time zone datetime: `${payload.end.toISOString().split('.')[0]}+0000`, // TODO check if OK with time zone
}, },
}).then(() => { }).then((_r) => {
this.init(); this.resetCalendar();
}) })
}, },
onEventChange(payload) {
},
onEventDropOrResize(payload) { onEventDropOrResize(payload) {
payload.event.setProp('borderColor', '#3788d8'); payload.event.setProp('borderColor', '#3788d8');
payload.event.setProp('backgroundColor', '#fffadf'); payload.event.setProp('backgroundColor', '#fffadf');
payload.event.setProp('textColor', '#444444'); payload.event.setProp('textColor', '#444444');
this.$store.dispatch('updateRange', payload);
patchCalendarRange(payload.event.extendedProps.calendarRangeId,
{
startDate: {
datetime: `${payload.event.start.toISOString().split('.')[0]}+0000`, //should be like "2021-08-20T15:00:00+0200",
},
endDate: {
datetime: `${payload.event.end.toISOString().split('.')[0]}+0000`, // TODO check if OK with time zone
},
}).then((_r) => this.resetCalendar());
}, },
onEventClick(payload) { onEventClick(payload) {
if (payload.event.extendedProps.myCalendar) { if (payload.event.extendedProps.myCalendar) {
@ -341,7 +346,6 @@ export default {
professionals: payload.event.extendedProps.professionals, professionals: payload.event.extendedProps.professionals,
comment: payload.event.extendedProps.comment comment: payload.event.extendedProps.comment
}; };
// console.log(this.myCalendarClickedEvent)
this.openModal(); this.openModal();
} }
}, },
@ -393,7 +397,7 @@ export default {
onClickDelete(payload) { onClickDelete(payload) {
if (payload.extendedProps.hasOwnProperty("calendarRangeId")) { if (payload.extendedProps.hasOwnProperty("calendarRangeId")) {
deleteCalendarRange(payload.extendedProps.calendarRangeId).then(() => { deleteCalendarRange(payload.extendedProps.calendarRangeId).then(() => {
this.init(); this.resetCalendar();
}) })
// if (payload.extendedProps.toDelete) { // if (payload.extendedProps.toDelete) {
// payload.setExtendedProp('toDelete', false) // payload.setExtendedProp('toDelete', false)
@ -406,7 +410,7 @@ export default {
// } // }
} else { } else {
let newEvents = this.calendarEvents.new.events; let newEvents = this.calendarEvents.new.events;
let filterEvents = newEvents.filter((e) => let filterEvents = newEvents.filter((e) =>
e.start !== payload.startStr && e.end !== payload.endStr e.start !== payload.startStr && e.end !== payload.endStr
); );
this.calendarEvents.new = { this.calendarEvents.new = {

View File

@ -10,11 +10,11 @@ const store = createStore({
newCalendarRanges: [], newCalendarRanges: [],
updateCalendarRanges: [], updateCalendarRanges: [],
deleteCalendarRanges: [], deleteCalendarRanges: [],
userRanges: [], currentCalendarRanges: [],
}, },
mutations: { mutations: {
setUserRanges(state, payload) { setCurrentCalendarRanges(state, payload) {
state.userRanges = payload state.currentCalendarRanges = payload
}, },
updateRange(state, payload) { updateRange(state, payload) {
state.updateCalendarRanges.push({ state.updateCalendarRanges.push({
@ -57,19 +57,22 @@ const store = createStore({
) )
state.deleteCalendarRanges = filteredCollection; state.deleteCalendarRanges = filteredCollection;
}, },
addUserRange(state, payload) { addCalendarRange(state, payload) {
state.userRanges.push(payload); state.currentCalendarRanges.push(payload);
} }
}, },
actions: { actions: {
setUserRanges({ commit }) { setCurrentCalendarRanges({ commit }) {
console.log('userId', window.userId); // console.log('userId', window.userId);
fetchCalendarRangesByUser(window.userId) fetchCalendarRangesByUser(window.userId)
.then((ranges) => { .then((ranges) => {
console.log('ranges', ranges.results); // console.log('ranges', ranges.results);
commit('setUserRanges', ranges.results); commit('setCurrentCalendarRanges', ranges.results);
}) })
}, },
addCalendarRange({ commit }, payload) {
commit('addCalendarRange', payload)
},
createRange({ commit }, payload) { createRange({ commit }, payload) {
// console.log('### action createRange', payload); // console.log('### action createRange', payload);
commit('addRange', payload); commit('addRange', payload);
@ -97,10 +100,10 @@ const store = createStore({
removeFromDeleteRange({ commit }, payload) { removeFromDeleteRange({ commit }, payload) {
commit('removeFromDeleteRange', payload); commit('removeFromDeleteRange', payload);
}, },
} }
}); });
store.dispatch('setUserRanges'); store.dispatch('setCurrentCalendarRanges');
export default store; export default store;