From 2b47f4f8141820835c778ea748f8ae7f47ef261d Mon Sep 17 00:00:00 2001 From: Raphael Kabo Date: Mon, 5 Feb 2024 19:26:34 +0000 Subject: Handle hidden attendees in frontend --- src/routes/frontend.ts | 22 +++++++++++++++++++++- views/event.handlebars | 14 +++++++++++--- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/routes/frontend.ts b/src/routes/frontend.ts index cc97ab8..23418df 100644 --- a/src/routes/frontend.ts +++ b/src/routes/frontend.ts @@ -159,6 +159,24 @@ router.get("/:eventID", async (req: Request, res: Response) => { } return acc; }, 0) || 0; + const visibleAttendees = event.attendees?.filter( + (attendee) => attendee.visibility === "public", + ); + const hiddenAttendees = event.attendees?.filter( + (attendee) => attendee.visibility === "private", + ); + const numberOfHiddenAttendees = event.attendees?.reduce( + (acc, attendee) => { + if ( + attendee.status === "attending" && + attendee.visibility === "private" + ) { + return acc + (attendee.number || 1); + } + return acc; + }, + 0, + ); if (event.maxAttendees) { spotsRemaining = event.maxAttendees - numberOfAttendees; if (spotsRemaining <= 0) { @@ -189,8 +207,10 @@ router.get("/:eventID", async (req: Request, res: Response) => { title: event.name, escapedName: escapedName, eventData: event, - eventAttendees: eventAttendees, + visibleAttendees, + hiddenAttendees, numberOfAttendees, + numberOfHiddenAttendees, spotsRemaining: spotsRemaining, noMoreSpots: noMoreSpots, eventStartISO: eventStartISO, diff --git a/views/event.handlebars b/views/event.handlebars index 999a12b..4a732e2 100755 --- a/views/event.handlebars +++ b/views/event.handlebars @@ -131,7 +131,7 @@ {{#if eventData.usersCanAttend}}
-
Attendees {{#if eventAttendees}}({{numberOfAttendees}}){{/if}} +
Attendees {{#if numberOfAttendees}}({{numberOfAttendees}}){{/if}}
{{#unless noMoreSpots}} @@ -147,12 +147,20 @@
{{spotsRemaining}} {{plural spotsRemaining "spot(s)"}} remaining - add yourself now!
{{/if}} {{/if}} - {{#if eventAttendees}} + {{#if visibleAttendees}}
    - {{#each eventAttendees}} + {{#each visibleAttendees}} {{this.name}}{{#if ../editingEnabled}} {{/if}} {{/each}} + {{#if editingEnabled}} + {{#each visibleAttendees}} + {{this.name}} (Hidden from public list){{#if ../editingEnabled}} {{/if}} + {{/each}} + {{/if}}
+ {{#if numberOfHiddenAttendees}} +

+{{numberOfHiddenAttendees}} hidden attendee{{plural numberOfHiddenAttendees ""}}

+ {{/if}} {{else}}

No attendees yet!

{{/if}} -- cgit v1.2.3