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')) {
$startDate = $request->query->get('start');
$sql = $sql . ' AND c.startDate > :startDate + INTERVAL "1 DAY"';
dump($sql);
$copyDate = $request->query->get('start');
$sql = $sql . ' AND DATE_DIFF(c.startDate, :copyDate) = 0';
$query = $em ->createQuery($sql)
->setParameter('startDate', $startDate)
->setParameter('copyDate', $copyDate)
->setParameter('user', $user);
}
} else {

View File

@ -310,21 +310,20 @@ export default {
toggleWeekends: function() {
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) {
// 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({
user: {
type: 'user',
@ -339,17 +338,6 @@ export default {
}).then((_r) => {
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) {
if (payload.event.extendedProps.myCalendar) {
@ -371,38 +359,49 @@ export default {
deleteCalendarRange(payload.extendedProps.calendarRangeId).then(() => {
this.resetCalendar();
})
// console.log(this.myCalendarClickedEvent)
this.openModal();
}
},
// onClickSave(payload) {
// this.flag.loading = true;
// Promise.all(this.$store.state.newCalendarRanges.map(cr => {
// postCalendarRange({
// user: {
// type: 'user',
// id: window.userId,
// },
// startDate: {
// datetime: `${cr.start.toISOString().split('.')[0]}+0000`, //should be like "2021-08-20T15:00:00+0200",
isSameDay(date1, date2) {
return date1.getFullYear() === date2.getFullYear() &&
date1.getMonth() === date2.getMonth() &&
date1.getDate() === date2.getDate();
},
isFriday(date) {
return date.getDay() === 5
onEventDropOrResize(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());
},
// isSameDay(date1, date2) {
// return date1.getFullYear() === date2.getFullYear() &&
// date1.getMonth() === date2.getMonth() &&
// date1.getDate() === date2.getDate();
// },
// isFriday(date) {
// return date.getDay() === 5
// },
copyDay() {
const fromDate = new Date(this.copyFrom).toISOString();
const toDate = new Date(this.copyTo).toISOString();
fetchCalendarRangesByUser(this.userId, fromDate)
const dateToFetch = new Date(this.copyFrom).toISOString();
fetchCalendarRangesByUser(this.userId, dateToFetch)
.then((ranges) => {
console.log(ranges.results);
// ranges.results.foreach()
ranges.results.forEach((range) => {
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) {
// // Create the copied events
// 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) {
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 {
url = `/api/1.0/calendar/calendar-range-available.json?user=${userId}`;
}