DTP Base provides a scalable and secure Node.js application development harness ready for production service.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

84 lines
3.2 KiB

extends layout/main
block view-content
mixin renderRoomListEntry (room)
div(uk-grid)
.uk-width-expand
a(href=`/chat/room/${room._id}`).uk-link-reset
.uk-text-bold= room.name
.uk-text-small= room.topic || '(no topic assigned)'
.uk-width-auto
.uk-text-small Active
.uk-text-bold(class={
'uk-text-success': (room.stats.presentCount > 0),
'uk-text-muted': (room.stats.presentCount === 0),
})= room.stats.presentCount
.uk-width-auto
.uk-text-small Members
.uk-text-bold= room.stats.memberCount
section.uk-section.uk-section-default
.uk-container
div(uk-grid)
if Array.isArray(invites) && (invites.length > 0)
div(class="uk-width-1-1 uk-width-1-3@m")
.uk-margin-medium
.uk-background-secondary.uk-light.uk-padding-small.uk-border-rounded
h4 Room Invites
ul.uk-list
each invite in invites
li(data-invite-id= invite._id)
div(uk-grid).uk-grid-small
.uk-width-expand
.uk-text-bold.uk-text-truncate= invite.room.name
.uk-text-small @#{invite.owner.username} #{dayjs(invite.created).fromNow()}
.uk-width-auto
a(
href="",
data-room-id= invite.room._id,
data-invite-id= invite._id,
data-invite-action= "accepted",
onclick="return dtp.app.processRoomInvite(event)",
).uk-text-success
i.fa-solid.fa-check
.uk-width-auto
a(
href="",
data-room-id= invite.room._id,
data-invite-id= invite._id,
data-invite-action= "rejected",
onclick="return dtp.app.processRoomInvite(event)",
).uk-text-danger
i.fa-solid.fa-times
.uk-width-expand
.uk-margin-medium
div(uk-grid)
.uk-width-expand
.uk-text-lead YOUR ROOMS
.uk-width-auto
a(href="/chat/room/create").uk-button.uk-button-default.uk-border-rounded
span
i.fas.fa-plus
span.uk-margin-small-left Create Room
if (Array.isArray(ownerRooms) && (ownerRooms.length > 0))
ul.uk-list
each room in ownerRooms
li.uk-list-divider
+renderRoomListEntry(room)
else
p You don't own any rooms.
.uk-margin-medium
.uk-text-lead ROOM MEMBERSHIPS
if (Array.isArray(memberRooms) && (memberRooms.length > 0))
ul.uk-list
each room in memberRooms
li.uk-list-divider
+renderRoomListEntry(room)
else
p You haven't joined any rooms that you don't own.