Added num_joined_users key to /publicRooms for each room. Show this information in the webclient.
4 files changed, 15 insertions, 2 deletions
diff --git a/synapse/handlers/room.py b/synapse/handlers/room.py
index a0d0f2af16..310cb46fe7 100644
--- a/synapse/handlers/room.py
+++ b/synapse/handlers/room.py
@@ -593,6 +593,12 @@ class RoomListHandler(BaseHandler):
@defer.inlineCallbacks
def get_public_room_list(self):
chunk = yield self.store.get_rooms(is_public=True)
+ for room in chunk:
+ joined_members = yield self.store.get_room_members(
+ room_id=room["room_id"],
+ membership=Membership.JOIN
+ )
+ room["num_joined_members"] = len(joined_members)
# FIXME (erikj): START is no longer a valid value
defer.returnValue({"start": "START", "end": "END", "chunk": chunk})
diff --git a/webclient/app.css b/webclient/app.css
index 0c6ae9b668..b438cf0405 100755
--- a/webclient/app.css
+++ b/webclient/app.css
@@ -273,6 +273,10 @@ a:active { color: #000; }
font-weight: bold;
}
+.publicRoomEntry {
+ margin-bottom: 5px;
+}
+
/*** Participant list ***/
#usersTableWrapper {
diff --git a/webclient/home/home.html b/webclient/home/home.html
index 12b3c7f14e..cf6771814c 100644
--- a/webclient/home/home.html
+++ b/webclient/home/home.html
@@ -25,11 +25,14 @@
<h3>Public rooms</h3>
<div class="public_rooms" ng-repeat="room in public_rooms | orderBy:'room_display_name'">
- <div>
+ <div class="publicRoomEntry">
<a href="#/room/{{ room.room_alias ? room.room_alias : room.room_id }}"
ng-class="room.room_display_name.toLowerCase().indexOf('#matrix:') === 0 ? 'roomHighlight' : ''">
{{ room.room_display_name }}
</a>
+ <div ng-show="'num_joined_members' in room">
+ {{ room.num_joined_members }} {{ room.num_joined_members == 1 ? 'user' : 'users' }}
+ </div>
</div>
</div>
<br/>
diff --git a/webclient/recents/recents.html b/webclient/recents/recents.html
index b903412815..efc5c39689 100644
--- a/webclient/recents/recents.html
+++ b/webclient/recents/recents.html
@@ -9,7 +9,7 @@
{{ room.room_id | mRoomName }}
</td>
<td class="recentsRoomSummaryTS">
- {{ room.numUsersInRoom }} users
+ {{ room.numUsersInRoom }} {{ room.numUsersInRoom == 1 ? 'user' : 'users' }}
</td>
<td class="recentsRoomSummaryTS">
{{ (room.lastMsg.ts) | date:'MMM d HH:mm' }}
|