diff options
author | Erik Johnston <erik@matrix.org> | 2014-09-18 14:52:19 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2014-09-18 14:52:19 +0100 |
commit | 79a5fb469b58ea0561a917117cd471d6cd8761df (patch) | |
tree | 2cdfba70dd998a6fae20af8cfee440f809ce357c /webclient | |
parent | Merge branch 'test-sqlite-memory' of github.com:matrix-org/synapse into develop (diff) | |
parent | Bump changelog and versions (diff) | |
download | synapse-79a5fb469b58ea0561a917117cd471d6cd8761df.tar.xz |
Merge branch 'master' of github.com:matrix-org/synapse into develop
Diffstat (limited to 'webclient')
-rw-r--r-- | webclient/components/matrix/event-handler-service.js | 17 | ||||
-rw-r--r-- | webclient/recents/recents-filter.js | 8 |
2 files changed, 6 insertions, 19 deletions
diff --git a/webclient/components/matrix/event-handler-service.js b/webclient/components/matrix/event-handler-service.js index ad69d297fa..321054f904 100644 --- a/webclient/components/matrix/event-handler-service.js +++ b/webclient/components/matrix/event-handler-service.js @@ -232,20 +232,12 @@ function(matrixService, $rootScope, $q, $timeout, mPresence) { }; var handleRoomMember = function(event, isLiveEvent, isStateEvent) { - // if the server is stupidly re-relaying a no-op join, discard it. - if (event.prev_content && - event.content.membership === "join" && - event.content.membership === event.prev_content.membership) - { - return; - } // add membership changes as if they were a room message if something interesting changed // Exception: Do not do this if the event is a room state event because such events already come // as room messages events. Moreover, when they come as room messages events, they are relatively ordered - // with other other room messages XXX This is no longer true, you only get a single event, not a room message event. - // FIXME: This possibly reintroduces multiple join messages. - if (event.content.prev !== event.content.membership) { // && !isStateEvent + // with other other room messages + if (event.content.prev !== event.content.membership && !isStateEvent) { if (isLiveEvent) { $rootScope.events.rooms[event.room_id].messages.push(event); } @@ -376,7 +368,6 @@ function(matrixService, $rootScope, $q, $timeout, mPresence) { handleMessage(event, isLiveEvent); break; case "m.room.member": - isStateEvent = true; handleRoomMember(event, isLiveEvent, isStateEvent); break; case "m.presence": @@ -406,8 +397,6 @@ function(matrixService, $rootScope, $q, $timeout, mPresence) { // isLiveEvents determines whether notifications should be shown, whether // messages get appended to the start/end of lists, etc. handleEvents: function(events, isLiveEvents, isStateEvents) { - // XXX FIXME TODO: isStateEvents is being left as undefined sometimes. It makes no sense - // to have isStateEvents as an arg, since things like m.room.member are ALWAYS state events. for (var i=0; i<events.length; i++) { this.handleEvent(events[i], isLiveEvents, isStateEvents); } @@ -423,7 +412,6 @@ function(matrixService, $rootScope, $q, $timeout, mPresence) { if (dir && 'b' === dir) { // paginateBackMessages requests messages to be in reverse chronological order for (var i=0; i<events.length; i++) { - // FIXME: Being live != being state this.handleEvent(events[i], isLiveEvents, isLiveEvents); } @@ -433,7 +421,6 @@ function(matrixService, $rootScope, $q, $timeout, mPresence) { else { // InitialSync returns messages in chronological order for (var i=events.length - 1; i>=0; i--) { - // FIXME: Being live != being state this.handleEvent(events[i], isLiveEvents, isLiveEvents); } // Store where to start pagination diff --git a/webclient/recents/recents-filter.js b/webclient/recents/recents-filter.js index d948205e19..e8323f4a31 100644 --- a/webclient/recents/recents-filter.js +++ b/webclient/recents/recents-filter.js @@ -19,14 +19,13 @@ angular.module('RecentsController') .filter('orderRecents', ["matrixService", "eventHandlerService", function(matrixService, eventHandlerService) { return function(rooms) { - var user_id = matrixService.config().user_id; // Transform the dict into an array // The key, room_id, is already in value objects var filtered = []; angular.forEach(rooms, function(room, room_id) { - + // Show the room only if the user has joined it or has been invited // (ie, do not show it if he has been banned) var member = eventHandlerService.getMember(room_id, user_id); @@ -35,8 +34,9 @@ angular.module('RecentsController') // Count users here // TODO: Compute it directly in eventHandlerService room.numUsersInRoom = eventHandlerService.getUsersCountInRoom(room_id); + + filtered.push(room); } - filtered.push(room); }); // And time sort them @@ -60,4 +60,4 @@ angular.module('RecentsController') }); return filtered; }; -}]); +}]); \ No newline at end of file |