diff --git a/src/TextForEvent.js b/src/TextForEvent.js
index 6e15d51cc4..10e529dfa7 100644
--- a/src/TextForEvent.js
+++ b/src/TextForEvent.js
@@ -78,6 +78,9 @@ function textForMemberEvent(ev) {
if (ConferenceHandler && ConferenceHandler.isConferenceUser(ev.getStateKey())) {
return "VoIP conference finished";
}
+ else if (ev.getPrevContent().membership === "invite") {
+ return targetName + " rejected the invitation.";
+ }
else {
return targetName + " left the room.";
}
@@ -151,6 +154,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 +184,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/structures/MatrixChat.js b/src/components/structures/MatrixChat.js
index 21174be966..51182cc17d 100644
--- a/src/components/structures/MatrixChat.js
+++ b/src/components/structures/MatrixChat.js
@@ -191,7 +191,7 @@ module.exports = React.createClass({
}
},
- _registerAsGuest: function() {
+ _registerAsGuest: function(showWarning) {
var self = this;
console.log("Doing guest login on %s", this.getCurrentHsUrl());
var hsUrl = this.getCurrentHsUrl();
@@ -209,6 +209,13 @@ module.exports = React.createClass({
guest: true
});
}, function(err) {
+ if (showWarning) {
+ var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
+ Modal.createDialog(ErrorDialog, {
+ title: "Failed to login as guest",
+ description: err.data
+ });
+ }
console.error("Failed to register as guest: " + err + " " + err.data);
self._setAutoRegisterAsGuest(false);
});
@@ -1096,7 +1103,7 @@ module.exports = React.createClass({
customHsUrl={this.getCurrentHsUrl()}
customIsUrl={this.getCurrentIsUrl()}
onForgotPasswordClick={this.onForgotPasswordClick}
- onLoginAsGuestClick={this.props.enableGuest && this.props.config && this.props.config.default_hs_url ? this._registerAsGuest: undefined}
+ onLoginAsGuestClick={this.props.enableGuest && this.props.config && this.props.config.default_hs_url ? this._registerAsGuest.bind(this, true) : undefined}
onCancelClick={ this.state.guestCreds ? this.onReturnToGuestClick : null }
/>
);
diff --git a/src/components/structures/RoomView.js b/src/components/structures/RoomView.js
index 20a058719b..dcb16f7231 100644
--- a/src/components/structures/RoomView.js
+++ b/src/components/structures/RoomView.js
@@ -1217,11 +1217,10 @@ module.exports = React.createClass({
/>
);
}
- else if (this.state.canPeek &&
- (!myMember || myMember.membership !== "join")) {
+ else if (!myMember || myMember.membership !== "join") {
aux = (