mirror of
https://github.com/hcengineering/platform.git
synced 2026-08-28 18:59:50 +02:00
Minor calendar fixes (#9339)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
This commit is contained in:
@@ -465,6 +465,7 @@ export interface CalendarItem {
|
||||
date: Timestamp
|
||||
dueDate: Timestamp
|
||||
day: number
|
||||
blockTime: boolean
|
||||
access: 'freeBusyReader' | 'reader' | 'writer' | 'owner'
|
||||
}
|
||||
|
||||
|
||||
@@ -118,6 +118,7 @@
|
||||
allDay: event.allDay,
|
||||
date: eventStart,
|
||||
dueDate: eventEnd,
|
||||
blockTime: event.blockTime,
|
||||
day,
|
||||
access: event.access
|
||||
})
|
||||
@@ -136,6 +137,7 @@
|
||||
result.push({
|
||||
_id: event._id,
|
||||
allDay: event.allDay,
|
||||
blockTime: event.blockTime,
|
||||
date: eventStart,
|
||||
dueDate: eventEnd,
|
||||
day: -1,
|
||||
@@ -343,8 +345,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
const calcTime = (events: CalendarItem[]): number => {
|
||||
if (events.length === 0) return 0
|
||||
const calcTime = (_events: CalendarItem[]): number => {
|
||||
if (_events.length === 0) return 0
|
||||
const events = _events.filter((ev) => ev.blockTime)
|
||||
|
||||
// Extract and sort intervals by start time
|
||||
const intervals = events.map((it) => [it.date, it.dueDate]).sort((a, b) => a[0] - b[0])
|
||||
|
||||
@@ -372,6 +372,7 @@ async function onEventCreate (ctx: TxCreateDoc<Event>, control: TriggerControl):
|
||||
const { _class, space, attachedTo, attachedToClass, collection, ...attr } = event
|
||||
const data = attr as any as Data<Event>
|
||||
const calendars = await control.findAll(control.ctx, calendar.class.Calendar, { hidden: false })
|
||||
const events = await control.findAll(control.ctx, calendar.class.Event, { eventId: event.eventId })
|
||||
const access = 'reader'
|
||||
for (const part of event.participants) {
|
||||
const socialIds = await getSocialIds(control, part as Ref<Person>)
|
||||
@@ -382,6 +383,7 @@ async function onEventCreate (ctx: TxCreateDoc<Event>, control: TriggerControl):
|
||||
const user = primarySocialString
|
||||
const calendar = getCalendar(calendars, socialStrings)
|
||||
if (calendar === undefined) continue
|
||||
if (events.find((p) => p.user === user) !== undefined) continue
|
||||
const innerTx = control.txFactory.createTxCreateDoc(
|
||||
_class,
|
||||
space,
|
||||
|
||||
Reference in New Issue
Block a user