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> </p>
{/if} {/if}
<p>
{#if event.extendedProps.description} {#if event.extendedProps.description}
{@html md.render(event.extendedProps.description)} {@html md.render(event.extendedProps.description)}
{:else} {:else}
<i class="fs-7">Pas de description</i> <i class="fs-7">Pas de description</i>
{/if} {/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> </ModalBody>
<ModalFooter class="justify-content-between"> <ModalFooter class="justify-content-between">

View file

@ -227,7 +227,17 @@ class Calendar {
_parse_vevent(vevent) { _parse_vevent(vevent) {
const event = {} const event = {}
vevent.forEach(elt => { 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 return event
} }
@ -280,6 +290,10 @@ function fcEventFromjCalEvent(cal) {
fcEvent.classNames = [`st-${evt.status.toLowerCase()}`] 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) { if (evt.rrule) {
const { freq, byday, interval } = evt.rrule const { freq, byday, interval } = evt.rrule
fcEvent.rrule = { fcEvent.rrule = {