add basic suport for concurrent events (#6)

This commit is contained in:
Laila van Reenen 2024-05-15 19:45:57 +02:00
parent 0c5f577464
commit 7b36ee9094
Signed by: LailaTheElf
GPG Key ID: 1F4E6EE3E6DDF769
2 changed files with 36 additions and 3 deletions

View File

@ -116,6 +116,12 @@
margin: 5px 3px; margin: 5px 3px;
display: block; display: block;
} }
.frcal__event.frcal__event_concurrent1 span {
width: 50%;
}
.frcal__event.frcal__event_concurrent2 {
padding-left: 50%;
}
.frcal__timed_item .frcal__event { .frcal__timed_item .frcal__event {
position: relative; position: relative;

33
main.js
View File

@ -631,15 +631,42 @@ class CalendarView extends ItemView
time[0] = time[0].hour()*60 + time[0].minute(); time[0] = time[0].hour()*60 + time[0].minute();
time[1] = time[1].hour()*60 + time[1].minute(); time[1] = time[1].hour()*60 + time[1].minute();
// check for concurrent events
let classes = "frcal__event";
for (let i in container.children)
{
let child = container.children[i];
if ((child instanceof HTMLElement) && child.hasClass("frcal__event"))
{
if (
(time[1] > parseInt(child.dataset.start))
&& (time[0] < parseInt(child.dataset.end))
)
{
if (time[0] < parseInt(child.dataset.start))
{
classes += " frcal__event_concurrent1";
child.addClass("frcal__event_concurrent2");
}
else
{
child.addClass("frcal__event_concurrent1");
classes += " frcal__event_concurrent2";
}
}
}
}
let el = container.createEl('div', { let el = container.createEl('div', {
cls: 'frcal__event', cls: classes,
id: "fr_event_" + event.id,
attr: { attr: {
'id': "fr_event_" + event.id,
'data-group': event.group, 'data-group': event.group,
'data-state': event.state, 'data-state': event.state,
'data-type': event.type, 'data-type': event.type,
'data-start': time[0].toString(), 'data-start': time[0].toString(),
'data-duration': (time[1] - time[0]).toString(), 'data-end': time[1].toString(),
'style': ((allDay) ? '' : 'top:' + (time[0]*this.zoom).toString() + 'px') 'style': ((allDay) ? '' : 'top:' + (time[0]*this.zoom).toString() + 'px')
}, },
}); });