- Load Events

- Edit Events
- When a field is updated: undate also memory list record

- Duplicate Event
This commit is contained in:
Paolo Arena
2019-10-20 22:44:18 +02:00
parent b8ec241b37
commit 9656b14cd0
11 changed files with 348 additions and 75 deletions

View File

@@ -349,7 +349,7 @@ export default class CEventsCalendar extends Vue {
}
public getEndTime(eventparam) {
let endTime = new Date(eventparam.date + ' ' + eventparam.time + ':00')
let endTime = new Date(eventparam.date)
endTime = date.addToDate(endTime, { minutes: eventparam.dur })
endTime = date.formatDate(endTime, 'HH:mm')
return endTime
@@ -421,8 +421,8 @@ export default class CEventsCalendar extends Vue {
this.resetForm()
this.contextDay = { ...eventparam }
let timestamp
if (eventparam.time) {
timestamp = eventparam.date + ' ' + eventparam.time
if (eventparam.withtime) {
timestamp = eventparam.date
const startTime = new Date(timestamp)
const endTime = date.addToDate(startTime, { minutes: eventparam.dur })
this.eventForm.dateTimeStart = this.formatDate(startTime) + ' ' + this.formatTime(startTime) // endTime.toString()
@@ -431,7 +431,7 @@ export default class CEventsCalendar extends Vue {
timestamp = eventparam.date
this.eventForm.dateTimeStart = timestamp
}
this.eventForm.allDay = !eventparam.time
this.eventForm.allDay = !eventparam.withtime
this.eventForm.bgcolor = eventparam.bgcolor
this.eventForm.icon = eventparam.icon
this.eventForm.title = eventparam.title
@@ -515,7 +515,7 @@ export default class CEventsCalendar extends Vue {
// an add
}
const data: IEvents = {
time: '',
withtime: false,
dur: 0,
dur2: 0,
title: form.title,
@@ -526,7 +526,7 @@ export default class CEventsCalendar extends Vue {
}
if (form.allDay === false) {
// get time into separate var
data.time = String(form.dateTimeStart).slice(11, 16)
// data.time = String(form.dateTimeStart).slice(11, 16)
data.dur = self.getDuration(form.dateTimeStart, form.dateTimeEnd, 'minutes')
}
if (update === true) {
@@ -685,7 +685,8 @@ export default class CEventsCalendar extends Vue {
return this.draggedEvent.date !== day.date
} else if (type === 'interval') {
stopAndPrevent(ev)
return this.draggedEvent.date !== day.date && this.draggedEvent.time !== day.time
// return this.draggedEvent.date !== day.date && this.draggedEvent.time !== day.time
return this.draggedEvent.date !== day.date
}
}
@@ -697,7 +698,7 @@ export default class CEventsCalendar extends Vue {
this.draggedEvent.side = void 0
} else if (type === 'interval') {
this.draggedEvent.date = day.date
this.draggedEvent.time = day.time
// this.draggedEvent.time = day.time
this.draggedEvent.side = void 0
}
}
@@ -724,6 +725,16 @@ export default class CEventsCalendar extends Vue {
return this.dateFormatter.format(mydate)
}
public getTeacherName(teacherusername) {
const op = CalendarStore.state.operators.find((myop) => myop.username === teacherusername)
return (op) ? `${op.name} ${op.surname}` : ''
}
public getTeacherImg(teacherusername) {
const op = CalendarStore.state.operators.find((myop) => myop.username === teacherusername)
return (op) ? op.img : 'avatar/noimage.png'
}
public badgeClasses(eventparam, type) {
const cssColor = tools.isCssColor(eventparam.bgcolor)
const isHeader = type === 'header'
@@ -743,7 +754,7 @@ export default class CEventsCalendar extends Vue {
s.color = colors.luminosity(eventparam.bgcolor) > 0.5 ? 'black' : 'white'
}
if (timeStartPos) {
s.top = timeStartPos(eventparam.time) + 'px'
s.top = timeStartPos(tools.getstrTime(eventparam.date)) + 'px'
}
if (timeDurationHeight) {
s.height = timeDurationHeight(eventparam.dur) + 'px'
@@ -786,7 +797,8 @@ export default class CEventsCalendar extends Vue {
for (let i = 0; i < CalendarStore.state.eventlist.length; ++i) {
// console.log(' ciclo i = ', i, CalendarStore.state.eventlist[i])
const dateEvent = new Date(CalendarStore.state.eventlist[i].date + ' 00:00:00')
// const dateEvent = new Date(CalendarStore.state.eventlist[i].date + ' 00:00:00')
const dateEvent = new Date(CalendarStore.state.eventlist[i].date)
if (dateEvent >= datenow) {
eventsloc.push(CalendarStore.state.eventlist[i])
@@ -802,14 +814,15 @@ export default class CEventsCalendar extends Vue {
for (let i = 0; i < CalendarStore.state.eventlist.length; ++i) {
let added = false
// console.log(' ciclo i = ', i, CalendarStore.state.eventlist[i])
if (CalendarStore.state.eventlist[i].date === dt) {
if (CalendarStore.state.eventlist[i].time) {
if (tools.getstrYYMMDDDate(CalendarStore.state.eventlist[i].date) === dt) {
// if (CalendarStore.state.eventlist[i].time) {
if (eventsloc.length > 0) {
// check for overlapping times
const startTime = new Date(CalendarStore.state.eventlist[i].date + ' ' + CalendarStore.state.eventlist[i].time)
// const startTime = new Date(CalendarStore.state.eventlist[i].date + ' ' + CalendarStore.state.eventlist[i].time)
const startTime = new Date(CalendarStore.state.eventlist[i].date)
const endTime = date.addToDate(startTime, { minutes: CalendarStore.state.eventlist[i].dur })
for (let j = 0; j < eventsloc.length; ++j) {
const startTime2 = new Date(eventsloc[j].date + ' ' + eventsloc[j].time)
const startTime2 = new Date(eventsloc[j].date)
const endTime2 = date.addToDate(startTime2, { minutes: eventsloc[j].dur2 })
if (date.isBetweenDates(startTime, startTime2, endTime2) || date.isBetweenDates(endTime, startTime2, endTime2)) {
eventsloc[j].side = 'left'
@@ -820,14 +833,15 @@ export default class CEventsCalendar extends Vue {
}
}
}
}
// }
if (!added) {
// CalendarStore.state.eventlist[i].side = void 0
eventsloc.push(CalendarStore.state.eventlist[i])
}
} else if (CalendarStore.state.eventlist[i].days) {
// check for overlapping dates
const startDate = new Date(CalendarStore.state.eventlist[i].date + ' 00:00:00')
// const startDate = new Date(CalendarStore.state.eventlist[i].date + ' 00:00:00')
const startDate = new Date(CalendarStore.state.eventlist[i].date)
const endDate = date.addToDate(startDate, { days: CalendarStore.state.eventlist[i].days })
if (date.isBetweenDates(dt, startDate, endDate)) {
eventsloc.push(CalendarStore.state.eventlist[i])
@@ -866,7 +880,8 @@ export default class CEventsCalendar extends Vue {
// check if event is in the past
const datenow = tools.addDays(tools.getDateNow(), -1)
let dateEvent = new Date(myevent.date + ' 00:00:00')
// let dateEvent = new Date(myevent.date + ' 00:00:00')
let dateEvent = new Date(myevent.date)
if (myevent.days) {
dateEvent = tools.addDays(dateEvent, myevent.days)