summary refs log tree commit diff
diff options
context:
space:
mode:
authorKegan Dougal <kegan@matrix.org>2014-09-08 12:11:36 -0700
committerKegan Dougal <kegan@matrix.org>2014-09-08 12:15:29 -0700
commit76fe7d4eba334cee8b5c18ac26da709106dff1a2 (patch)
tree7048fb140aa290d902d82b2911347f71e9078ecf
parentHandle the case where we don't have a common ancestor (diff)
downloadsynapse-76fe7d4eba334cee8b5c18ac26da709106dff1a2.tar.xz
Added num_joined_users key to /publicRooms for each room. Show this information in the webclient.
Diffstat (limited to '')
-rw-r--r--synapse/handlers/room.py6
-rwxr-xr-xwebclient/app.css4
-rw-r--r--webclient/home/home.html5
-rw-r--r--webclient/recents/recents.html2
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' }}