Browse Source

public room browser

pull/2/head
Rob Colbert 3 years ago
parent
commit
243f2dfb47
  1. 3
      app/services/chat.js
  2. 4
      app/views/chat/index.pug
  3. 12
      app/views/chat/room/index.pug

3
app/services/chat.js

@ -265,6 +265,7 @@ class ChatService extends SiteService {
skip: 0, skip: 0,
cpp: 50 cpp: 50
}, pagination); }, pagination);
const totalPublicRooms = await ChatRoom.countDocuments({ visibility: 'public' });
const rooms = await ChatRoom const rooms = await ChatRoom
.find({ visibility: 'public' }) .find({ visibility: 'public' })
.sort({ lastActivity: -1, created: -1 }) .sort({ lastActivity: -1, created: -1 })
@ -272,7 +273,7 @@ class ChatService extends SiteService {
.limit(pagination.cpp) .limit(pagination.cpp)
.populate(this.populateChatRoom) .populate(this.populateChatRoom)
.lean(); .lean();
return rooms; return { rooms, totalPublicRooms };
} }
async getRoomById (roomId) { async getRoomById (roomId) {

4
app/views/chat/index.pug

@ -19,6 +19,4 @@ block content
each message in timeline each message in timeline
+renderChatMessage(message, { includeRoomInfo: true }) +renderChatMessage(message, { includeRoomInfo: true })
.chat-message-menu .chat-message-menu
button(type="button", onclick="return dtp.app.chat.resumeChatScroll(event);").chat-scroll-return Resume scrolling button(type="button", onclick="return dtp.app.chat.resumeChatScroll(event);").chat-scroll-return Resume scrolling
//- pre= JSON.stringify(userTimeline, null, 2)

12
app/views/chat/room/index.pug

@ -1,6 +1,8 @@
extends ../layouts/room extends ../layouts/room
block content block content
include ../../components/pagination-bar
mixin renderRoomTile (room) mixin renderRoomTile (room)
a(href=`/chat/room/${room._id}`).uk-display-block.uk-link-reset a(href=`/chat/room/${room._id}`).uk-display-block.uk-link-reset
div(data-room-id= room._id, data-room-name= room.name).uk-tile.uk-tile-default.uk-tile-small div(data-room-id= room._id, data-room-name= room.name).uk-tile.uk-tile-default.uk-tile-small
@ -24,11 +26,15 @@ block content
.uk-card.uk-card-default.uk-card-small .uk-card.uk-card-default.uk-card-small
.uk-card-header .uk-card-header
h1.uk-card-title Public Chat Rooms h1.uk-card-title Public Chat Rooms
.uk-card-body .uk-card-body
if Array.isArray(publicRooms) && (publicRooms.length > 0) if Array.isArray(publicRooms.rooms) && (publicRooms.rooms.length > 0)
div(uk-grid) div(uk-grid)
each room in publicRooms each room in publicRooms.rooms
div(class="uk-width-1-1 uk-width-1-2@m uk-width-1-3@l") div(class="uk-width-1-1 uk-width-1-2@m uk-width-1-3@l")
+renderRoomTile(room) +renderRoomTile(room)
else else
div #{site.name} has no public rooms. div #{site.name} has no public rooms.
.uk-card-footer
+renderPaginationBar('/chat/room', publicRooms.totalRoomCount)
Loading…
Cancel
Save