From 0db0528e8ef3aeeb68c73d51aa2bafa91459b83c Mon Sep 17 00:00:00 2001 From: Emmanuel ROHEE Date: Thu, 18 Sep 2014 15:19:35 +0200 Subject: [PATCH 1/3] Reverted patches done for SYWEB-40 --- webclient/components/matrix/event-handler-service.js | 10 ++-------- webclient/recents/recents-filter.js | 8 ++++---- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/webclient/components/matrix/event-handler-service.js b/webclient/components/matrix/event-handler-service.js index ad69d297f..d3de10c7e 100644 --- a/webclient/components/matrix/event-handler-service.js +++ b/webclient/components/matrix/event-handler-service.js @@ -243,9 +243,8 @@ function(matrixService, $rootScope, $q, $timeout, mPresence) { // 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 +375,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 +404,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=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 d948205e1..e8323f4a3 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 From b7d42c1e93034da2aa7185f1742c56c7bb45cbcc Mon Sep 17 00:00:00 2001 From: Emmanuel ROHEE Date: Thu, 18 Sep 2014 15:28:52 +0200 Subject: [PATCH 2/3] SYWEB-40: Only local rooms are shown in the recents list. Removed an old patch that deduplicated join events. This patch is now useless. Plus it is buggy since it compared event.content and event.prev_content only on the membership field whereas these objects contain more data now like displayname... --- webclient/components/matrix/event-handler-service.js | 7 ------- 1 file changed, 7 deletions(-) diff --git a/webclient/components/matrix/event-handler-service.js b/webclient/components/matrix/event-handler-service.js index d3de10c7e..321054f90 100644 --- a/webclient/components/matrix/event-handler-service.js +++ b/webclient/components/matrix/event-handler-service.js @@ -232,13 +232,6 @@ 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 From 9fd0c74e90df6fb34f07c526c29d28387fde007f Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Thu, 18 Sep 2014 14:46:23 +0100 Subject: [PATCH 3/3] Bump changelog and versions --- CHANGES.rst | 9 +++++++++ VERSION | 2 +- synapse/__init__.py | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 4e536bc4d..edf32db75 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,3 +1,12 @@ +Changes in synapse 0.3.1 (2014-09-18) +===================================== +This is a release to hotfix v0.3.0 to fix two regressions. + +Webclient: + * Fix a regression where we sometimes displayed duplicate events. + * Fix a regression where we didn't immediately remove rooms you were + banned in from the recents list. + Changes in synapse 0.3.0 (2014-09-18) ===================================== See UPGRADE for information about changes to the client server API, including diff --git a/VERSION b/VERSION index 0d91a54c7..9e11b32fc 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.3.0 +0.3.1 diff --git a/synapse/__init__.py b/synapse/__init__.py index 8ef176ea6..1b49cbb38 100644 --- a/synapse/__init__.py +++ b/synapse/__init__.py @@ -16,4 +16,4 @@ """ This is a reference implementation of a synapse home server. """ -__version__ = "0.3.0" +__version__ = "0.3.1"