summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/routes/frontend.ts22
-rwxr-xr-xviews/event.handlebars14
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}}
<div class="card mb-4" id="eventAttendees">
- <h5 class="card-header">Attendees {{#if eventAttendees}}({{numberOfAttendees}}){{/if}}
+ <h5 class="card-header">Attendees {{#if numberOfAttendees}}({{numberOfAttendees}}){{/if}}
<div class="btn-group" role="group" aria-label="Attendance controls">
{{#unless noMoreSpots}}
<button type="button" id="attendEvent" class="btn btn-success" data-event-id="{{eventData.id}}"><i class="fas fa-user-plus"></i> Add me</button>
@@ -147,12 +147,20 @@
<div class="alert alert-warning text-center" id="attendees-alert">{{spotsRemaining}} {{plural spotsRemaining "spot(s)"}} remaining - add yourself now!</div>
{{/if}}
{{/if}}
- {{#if eventAttendees}}
+ {{#if visibleAttendees}}
<ul class="attendeesList">
- {{#each eventAttendees}}
+ {{#each visibleAttendees}}
<li{{#if ../editingEnabled}} data-attendee-name="{{this.name}}" data-attendee-id="{{this._id}}"{{/if}}><span class="attendee-name">{{this.name}}</span>{{#if ../editingEnabled}} <a href="#" class="remove-attendee" data-toggle="modal" data-target="#removeAttendeeModal" title="Remove user from event"><i class="fas fa-user-times"></i></a>{{/if}}</li>
{{/each}}
+ {{#if editingEnabled}}
+ {{#each visibleAttendees}}
+ <li{{#if ../editingEnabled}} data-attendee-name="{{this.name}}" data-attendee-id="{{this._id}}"{{/if}}><span class="attendee-name">{{this.name}} (Hidden from public list)</span>{{#if ../editingEnabled}} <a href="#" class="remove-attendee" data-toggle="modal" data-target="#removeAttendeeModal" title="Remove user from event"><i class="fas fa-user-times"></i></a>{{/if}}</li>
+ {{/each}}
+ {{/if}}
</ul>
+ {{#if numberOfHiddenAttendees}}
+ <p class="text-center text-muted mb-0">+{{numberOfHiddenAttendees}} hidden attendee{{plural numberOfHiddenAttendees ""}}</p>
+ {{/if}}
{{else}}
<p class="text-center text-muted mb-0">No attendees yet!</p>
{{/if}}