SYWEB-14: BF: rooms invitations were not visible in recents after launching/refreshing the web page

This commit is contained in:
Emmanuel ROHEE 2014-09-18 17:34:13 +02:00
parent e0f060d89b
commit 26dda48e50
3 changed files with 22 additions and 3 deletions

View File

@ -99,7 +99,7 @@ function(matrixService, $rootScope, $q, $timeout, mPresence) {
}; };
reset(); reset();
var initRoom = function(room_id) { var initRoom = function(room_id, room) {
if (!(room_id in $rootScope.events.rooms)) { if (!(room_id in $rootScope.events.rooms)) {
console.log("Creating new handler entry for " + room_id); console.log("Creating new handler entry for " + room_id);
$rootScope.events.rooms[room_id] = { $rootScope.events.rooms[room_id] = {
@ -112,6 +112,17 @@ 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)) {
console.log("#### " + field);
$rootScope.events.rooms[room_id][field] = room[field];
}
}
$rootScope.events.rooms[room_id].membership = room.membership;
}
}; };
var resetRoomMessages = function(room_id) { var resetRoomMessages = function(room_id) {
@ -328,6 +339,10 @@ function(matrixService, $rootScope, $q, $timeout, mPresence) {
$rootScope.$broadcast(RESET_EVENT); $rootScope.$broadcast(RESET_EVENT);
}, },
initRoom: function(room) {
initRoom(room.room_id, room);
},
handleEvent: function(event, isLiveEvent, isStateEvent) { handleEvent: function(event, isLiveEvent, isStateEvent) {
// FIXME: /initialSync on a particular room is not yet available // FIXME: /initialSync on a particular room is not yet available

View File

@ -113,6 +113,8 @@ angular.module('eventStreamService', [])
for (var i = 0; i < rooms.length; ++i) { for (var i = 0; i < rooms.length; ++i) {
var room = rooms[i]; var room = rooms[i];
eventHandlerService.initRoom(room);
if ("messages" in room) { if ("messages" in room) {
eventHandlerService.handleRoomMessages(room.room_id, room.messages, false); eventHandlerService.handleRoomMessages(room.room_id, room.messages, false);
} }
@ -120,8 +122,6 @@ angular.module('eventStreamService', [])
if ("state" in room) { if ("state" in room) {
eventHandlerService.handleEvents(room.state, false, true); eventHandlerService.handleEvents(room.state, false, true);
} }
eventHandlerService.setRoomVisibility(room.room_id, room.visibility);
} }
var presence = response.data.presence; var presence = response.data.presence;

View File

@ -37,6 +37,10 @@ angular.module('RecentsController')
filtered.push(room); filtered.push(room);
} }
else if ("invite" === room.membership) {
// The only information we have about the room is that the user has been invited
filtered.push(room);
}
}); });
// And time sort them // And time sort them