WIP: ATTENDEE prop support #46

Draft
sinavir wants to merge 4 commits from mdebray/attendees into master
2 changed files with 27 additions and 1 deletions

View file

@ -40,11 +40,23 @@
</p>
{/if}
<p>
{#if event.extendedProps.description}
{@html md.render(event.extendedProps.description)}
{:else}
<i class="fs-7">Pas de description</i>
{/if}
</p>
{#if event.extendedProps.speakers}
<p class="fs-7 mb-1">
<strong>Intervenant&middot;e{#if event.extendedProps.speakers.size > 1}&middot;s{/if}&nbsp;:</strong>
</p>
<ul class="fs-7">
{#each event.extendedProps.speakers as s}
<li>{s.cn}</li>
{/each}
</ul>
{/if}
</ModalBody>
<ModalFooter class="justify-content-between">

View file

@ -227,7 +227,17 @@ class Calendar {
_parse_vevent(vevent) {
const event = {}
vevent.forEach(elt => {
event[elt[0]] = elt[3]
switch (elt[0]) {
case "attendee":
if (event[elt[0]] === undefined) event[elt[0]] = []
event[elt[0]].push({
props: elt[1],
val: elt[3]
})
break
default:
event[elt[0]] = elt[3]
}
})
return event
}
@ -280,6 +290,10 @@ function fcEventFromjCalEvent(cal) {
fcEvent.classNames = [`st-${evt.status.toLowerCase()}`]
}
if (evt.attendee) {
fcEvent.speakers = evt.attendee.filter(a => a.prop.cn && a.prop.role === "REQ-PARTICIPANT")
}
if (evt.rrule) {
const { freq, byday, interval } = evt.rrule
fcEvent.rrule = {