diff --git a/fr-calendar.css b/fr-calendar.css index 002f53c..046d022 100644 --- a/fr-calendar.css +++ b/fr-calendar.css @@ -116,6 +116,12 @@ margin: 5px 3px; display: block; } +.frcal__event.frcal__event_concurrent1 span { + width: 50%; +} +.frcal__event.frcal__event_concurrent2 { + padding-left: 50%; +} .frcal__timed_item .frcal__event { position: relative; diff --git a/main.js b/main.js index 62c4bd1..fb328f1 100644 --- a/main.js +++ b/main.js @@ -631,15 +631,42 @@ class CalendarView extends ItemView time[0] = time[0].hour()*60 + time[0].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', { - cls: 'frcal__event', - id: "fr_event_" + event.id, + cls: classes, attr: { + 'id': "fr_event_" + event.id, 'data-group': event.group, 'data-state': event.state, 'data-type': event.type, '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') }, });