mirror of
https://mau.dev/maunium/synapse.git
synced 2024-12-17 13:23:54 +01:00
SYWEB-14: BF: rooms invitations were not visible in recents after launching/refreshing the web page
This commit is contained in:
parent
e0f060d89b
commit
26dda48e50
3 changed files with 22 additions and 3 deletions
|
@ -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,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) {
|
||||
|
@ -328,6 +339,10 @@ function(matrixService, $rootScope, $q, $timeout, mPresence) {
|
|||
$rootScope.$broadcast(RESET_EVENT);
|
||||
},
|
||||
|
||||
initRoom: function(room) {
|
||||
initRoom(room.room_id, room);
|
||||
},
|
||||
|
||||
handleEvent: function(event, isLiveEvent, isStateEvent) {
|
||||
|
||||
// FIXME: /initialSync on a particular room is not yet available
|
||||
|
|
|
@ -113,6 +113,8 @@ angular.module('eventStreamService', [])
|
|||
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;
|
||||
|
|
|
@ -37,6 +37,10 @@ angular.module('RecentsController')
|
|||
|
||||
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
|
||||
|
|
Loading…
Reference in a new issue