summary refs log tree commit diff
path: root/webclient/components
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2014-09-18 18:25:23 +0100
committerErik Johnston <erik@matrix.org>2014-09-18 18:25:23 +0100
commitbeed1ba089fa4aa0aca6ac9ef9c560508197baa4 (patch)
tree51b4105de45a5dea15013b90b2692d772599e302 /webclient/components
parentRemove lie from change log. (diff)
parentfix SYWEB-41 (hopefully) (diff)
downloadsynapse-beed1ba089fa4aa0aca6ac9ef9c560508197baa4.tar.xz
Merge branch 'develop' of github.com:matrix-org/synapse
Diffstat (limited to 'webclient/components')
-rw-r--r--webclient/components/matrix/event-handler-service.js16
-rw-r--r--webclient/components/matrix/event-stream-service.js4
2 files changed, 17 insertions, 3 deletions
diff --git a/webclient/components/matrix/event-handler-service.js b/webclient/components/matrix/event-handler-service.js

index c7be65720a..5e95f34f4e 100644 --- a/webclient/components/matrix/event-handler-service.js +++ b/webclient/components/matrix/event-handler-service.js
@@ -99,7 +99,7 @@ function(matrixService, $rootScope, $q, $timeout, mPresence) { }; reset(); - var initRoom = function(room_id) { + var initRoom = function(room_id, room) { if (!(room_id in $rootScope.events.rooms)) { console.log("Creating new handler entry for " + room_id); $rootScope.events.rooms[room_id] = { @@ -112,6 +112,16 @@ function(matrixService, $rootScope, $q, $timeout, mPresence) { } }; } + + if (room) { + // Report all other metadata of the room object (membership, inviter, visibility, ...) + for (var field in room) { + if (-1 === ["room_id", "messages", "state"].indexOf(field)) { + $rootScope.events.rooms[room_id][field] = room[field]; + } + } + $rootScope.events.rooms[room_id].membership = room.membership; + } }; var resetRoomMessages = function(room_id) { @@ -327,6 +337,10 @@ function(matrixService, $rootScope, $q, $timeout, mPresence) { reset(); $rootScope.$broadcast(RESET_EVENT); }, + + initRoom: function(room) { + initRoom(room.room_id, room); + }, handleEvent: function(event, isLiveEvent, isStateEvent) { diff --git a/webclient/components/matrix/event-stream-service.js b/webclient/components/matrix/event-stream-service.js
index 5af1ab2911..05469a3ded 100644 --- a/webclient/components/matrix/event-stream-service.js +++ b/webclient/components/matrix/event-stream-service.js
@@ -112,6 +112,8 @@ angular.module('eventStreamService', []) var rooms = response.data.rooms; for (var i = 0; i < rooms.length; ++i) { var room = rooms[i]; + + eventHandlerService.initRoom(room); if ("messages" in room) { eventHandlerService.handleRoomMessages(room.room_id, room.messages, false); @@ -120,8 +122,6 @@ angular.module('eventStreamService', []) if ("state" in room) { eventHandlerService.handleEvents(room.state, false, true); } - - eventHandlerService.setRoomVisibility(room.room_id, room.visibility); } var presence = response.data.presence;