copy ranges from one day to another fixed

This commit is contained in:
Julie Lenaerts 2022-05-12 12:23:39 +02:00
parent c339f7a828
commit 88784b7f7e
3 changed files with 55 additions and 54 deletions

View File

@ -50,11 +50,11 @@ class CalendarRangeAPIController extends ApiController
} }
if($request->query->has('start') && !$request->query->has('end')) { if($request->query->has('start') && !$request->query->has('end')) {
$startDate = $request->query->get('start'); $copyDate = $request->query->get('start');
$sql = $sql . ' AND c.startDate > :startDate + INTERVAL "1 DAY"';
dump($sql); $sql = $sql . ' AND DATE_DIFF(c.startDate, :copyDate) = 0';
$query = $em ->createQuery($sql) $query = $em ->createQuery($sql)
->setParameter('startDate', $startDate) ->setParameter('copyDate', $copyDate)
->setParameter('user', $user); ->setParameter('user', $user);
} }
} else { } else {

View File

@ -310,21 +310,20 @@ export default {
toggleWeekends: function() { toggleWeekends: function() {
this.calendarOptions.weekends = !this.calendarOptions.weekends; this.calendarOptions.weekends = !this.calendarOptions.weekends;
}, },
replaceDate(from, to) {
const fromDate = new Date(from)
const toDate = new Date(to);
let newDate = fromDate.setDate(toDate.getDate());
newDate = new Date(newDate).setMonth(toDate.getMonth());
newDate = new Date(newDate).setFullYear(toDate.getFullYear());
newDate = `${new Date(newDate).toISOString().split('.')[0]}+0000`;
return newDate;
},
onDateSelect(payload) { onDateSelect(payload) {
// let events = this.calendarEvents.new.events;
// events.push({
// start: payload.startStr,
// end: payload.endStr
// });
// this.calendarEvents.new = {
// events: events,
// borderColor: "#3788d8",
// backgroundColor: '#fffadf',
// textColor: '#444444',
// };
this.disableCopyDayButton = false;
this.lastNewDate = new Date(payload.startStr);
this.updateEventsSource();
postCalendarRange({ postCalendarRange({
user: { user: {
type: 'user', type: 'user',
@ -339,17 +338,6 @@ export default {
}).then((_r) => { }).then((_r) => {
this.resetCalendar(); this.resetCalendar();
}) })
payload.event.setProp('textColor', '#444444');
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) {
@ -371,38 +359,49 @@ export default {
deleteCalendarRange(payload.extendedProps.calendarRangeId).then(() => { deleteCalendarRange(payload.extendedProps.calendarRangeId).then(() => {
this.resetCalendar(); this.resetCalendar();
}) })
// console.log(this.myCalendarClickedEvent)
this.openModal();
} }
}, },
// onClickSave(payload) { onEventDropOrResize(payload) {
// this.flag.loading = true; patchCalendarRange(payload.event.extendedProps.calendarRangeId,
// Promise.all(this.$store.state.newCalendarRanges.map(cr => { {
// postCalendarRange({ startDate: {
// user: { datetime: `${payload.event.start.toISOString().split('.')[0]}+0000`, //should be like "2021-08-20T15:00:00+0200",
// type: 'user', },
// id: window.userId, endDate: {
// }, datetime: `${payload.event.end.toISOString().split('.')[0]}+0000`, // TODO check if OK with time zone
// startDate: { },
// datetime: `${cr.start.toISOString().split('.')[0]}+0000`, //should be like "2021-08-20T15:00:00+0200", }).then((_r) => this.resetCalendar());
isSameDay(date1, date2) {
return date1.getFullYear() === date2.getFullYear() &&
date1.getMonth() === date2.getMonth() &&
date1.getDate() === date2.getDate();
},
isFriday(date) {
return date.getDay() === 5
}, },
// isSameDay(date1, date2) {
// return date1.getFullYear() === date2.getFullYear() &&
// date1.getMonth() === date2.getMonth() &&
// date1.getDate() === date2.getDate();
// },
// isFriday(date) {
// return date.getDay() === 5
// },
copyDay() { copyDay() {
const fromDate = new Date(this.copyFrom).toISOString(); const dateToFetch = new Date(this.copyFrom).toISOString();
const toDate = new Date(this.copyTo).toISOString(); fetchCalendarRangesByUser(this.userId, dateToFetch)
fetchCalendarRangesByUser(this.userId, fromDate)
.then((ranges) => { .then((ranges) => {
console.log(ranges.results); ranges.results.forEach((range) => {
// ranges.results.foreach() postCalendarRange({
user: {
type: 'user',
id: range.user.id,
},
startDate: {
datetime: this.replaceDate(range.startDate.datetime, this.copyTo), //should be like "2021-08-20T15:00:00+0200",
},
endDate: {
datetime: this.replaceDate(range.endDate.datetime, this.copyTo),
},
})
.then((_r) => this.resetCalendar());
})
}) })
// if (this.calendarEvents.new.events.length > 0) { // if (this.calendarEvents.new.events.length > 0) {
// // Create the copied events // // Create the copied events
// let increment = !this.calendarOptions.weekends && this.isFriday(this.lastNewDate) ? 24*60*60*1000*3 : 24*60*60*1000; // let increment = !this.calendarOptions.weekends && this.isFriday(this.lastNewDate) ? 24*60*60*1000*3 : 24*60*60*1000;

View File

@ -17,6 +17,8 @@ const fetchCalendarRangesByUser = (userId, startDate = null, endDate = null) =>
if (null !== startDate && null !== endDate) { if (null !== startDate && null !== endDate) {
url = `/api/1.0/calendar/calendar-range-available.json?user=${userId}&start=${startDate}&end=${endDate}`; url = `/api/1.0/calendar/calendar-range-available.json?user=${userId}&start=${startDate}&end=${endDate}`;
} else if (null !== startDate) {
url = `/api/1.0/calendar/calendar-range-available.json?user=${userId}&start=${startDate}`;
} else { } else {
url = `/api/1.0/calendar/calendar-range-available.json?user=${userId}`; url = `/api/1.0/calendar/calendar-range-available.json?user=${userId}`;
} }