From 0e1186c4f95a3094fc565339ee2f66680b7de9df Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Tue, 15 Mar 2016 23:47:40 +0000 Subject: [PATCH] display m.room.history_visibility updates in the timeline --- src/TextForEvent.js | 25 +++++++++++++++++++++- src/components/views/rooms/EventTile.js | 3 ++- src/components/views/rooms/RoomSettings.js | 2 +- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/TextForEvent.js b/src/TextForEvent.js index 6e15d51cc4..5c733d98e7 100644 --- a/src/TextForEvent.js +++ b/src/TextForEvent.js @@ -151,6 +151,28 @@ function textForThreePidInviteEvent(event) { " to join the room."; }; +function textForHistoryVisibilityEvent(event) { + var senderName = event.sender ? event.sender.name : event.getSender(); + var vis = event.getContent().history_visibility; + var text = senderName + " made future room history visible to "; + if (vis === "invited") { + text += "all room members, from the point they are invited."; + } + else if (vis === "joined") { + text += "all room members, from the point they joined."; + } + else if (vis === "shared") { + text += "all room members."; + } + else if (vis === "world_readable") { + text += "anyone."; + } + else { + text += " unknown (" + vis + ")"; + } + return text; +}; + var handlers = { 'm.room.message': textForMessageEvent, 'm.room.name': textForRoomNameEvent, @@ -159,7 +181,8 @@ var handlers = { 'm.call.invite': textForCallInviteEvent, 'm.call.answer': textForCallAnswerEvent, 'm.call.hangup': textForCallHangupEvent, - 'm.room.third_party_invite': textForThreePidInviteEvent + 'm.room.third_party_invite': textForThreePidInviteEvent, + 'm.room.history_visibility': textForHistoryVisibilityEvent, }; module.exports = { diff --git a/src/components/views/rooms/EventTile.js b/src/components/views/rooms/EventTile.js index 123026aa93..c9e74f521f 100644 --- a/src/components/views/rooms/EventTile.js +++ b/src/components/views/rooms/EventTile.js @@ -44,7 +44,8 @@ var eventTileTypes = { 'm.call.hangup' : 'messages.TextualEvent', 'm.room.name' : 'messages.TextualEvent', 'm.room.topic' : 'messages.TextualEvent', - 'm.room.third_party_invite': 'messages.TextualEvent' + 'm.room.third_party_invite' : 'messages.TextualEvent', + 'm.room.history_visibility' : 'messages.TextualEvent', }; var MAX_READ_AVATARS = 5; diff --git a/src/components/views/rooms/RoomSettings.js b/src/components/views/rooms/RoomSettings.js index eca4dc074b..4311f1b23d 100644 --- a/src/components/views/rooms/RoomSettings.js +++ b/src/components/views/rooms/RoomSettings.js @@ -450,7 +450,7 @@ module.exports = React.createClass({ - Members only (since the room began) + Members only (since the point in time of selecting this option)