diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js
index 5869c8ef33..0a9231247c 100644
--- a/src/components/structures/MatrixChat.js
+++ b/src/components/structures/MatrixChat.js
@@ -175,7 +175,7 @@ module.exports = React.createClass({
guest: true
});
}, function(err) {
- console.error(err.data);
+ console.error("Failed to register as guest: " + err + " " + err.data);
self._setAutoRegisterAsGuest(false);
});
},
@@ -970,7 +970,9 @@ module.exports = React.createClass({
onRegisterClick={this.onRegisterClick}
homeserverUrl={this.props.config.default_hs_url}
identityServerUrl={this.props.config.default_is_url}
- onForgotPasswordClick={this.onForgotPasswordClick} />
+ onForgotPasswordClick={this.onForgotPasswordClick}
+ onLoginAsGuestClick={this.props.enableGuest && this.props.config && this.props.config.default_hs_url ? this._registerAsGuest: undefined}
+ />
);
}
}
diff --git a/src/components/structures/RoomView.js b/src/components/structures/RoomView.js
index 8687cb444c..da4a8a8fc4 100644
--- a/src/components/structures/RoomView.js
+++ b/src/components/structures/RoomView.js
@@ -840,11 +840,19 @@ module.exports = React.createClass({
self.setState({
rejecting: false
});
- }, function(err) {
- console.error("Failed to reject invite: %s", err);
+ }, function(error) {
+ console.error("Failed to reject invite: %s", error);
+
+ var msg = error.message ? error.message : JSON.stringify(error);
+ var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
+ Modal.createDialog(ErrorDialog, {
+ title: "Failed to reject invite",
+ description: msg
+ });
+
self.setState({
rejecting: false,
- rejectError: err
+ rejectError: error
});
});
},
@@ -1028,7 +1036,6 @@ module.exports = React.createClass({
);
}
else {
- var joinErrorText = this.state.joinError ? "Failed to join room!" : "";
return (
@@ -1037,7 +1044,6 @@ module.exports = React.createClass({
canJoin={ true } canPreview={ false }
spinner={this.state.joining}
/>
-
{joinErrorText}
@@ -1063,10 +1069,6 @@ module.exports = React.createClass({
} else {
var inviteEvent = myMember.events.member;
var inviterName = inviteEvent.sender ? inviteEvent.sender.name : inviteEvent.getSender();
- // XXX: Leaving this intentionally basic for now because invites are about to change totally
- // FIXME: This comment is now outdated - what do we need to fix? ^
- var joinErrorText = this.state.joinError ? "Failed to join room!" : "";
- var rejectErrorText = this.state.rejectError ? "Failed to reject invite!" : "";
// We deliberately don't try to peek into invites, even if we have permission to peek
// as they could be a spam vector.
@@ -1082,8 +1084,6 @@ module.exports = React.createClass({
canJoin={ true } canPreview={ false }
spinner={this.state.joining}
/>
- {joinErrorText}
- {rejectErrorText}
diff --git a/src/components/structures/login/Login.js b/src/components/structures/login/Login.js
index b853b8fd95..356439b0cc 100644
--- a/src/components/structures/login/Login.js
+++ b/src/components/structures/login/Login.js
@@ -35,7 +35,8 @@ module.exports = React.createClass({displayName: 'Login',
// login shouldn't know or care how registration is done.
onRegisterClick: React.PropTypes.func.isRequired,
// login shouldn't care how password recovery is done.
- onForgotPasswordClick: React.PropTypes.func
+ onForgotPasswordClick: React.PropTypes.func,
+ onLoginAsGuestClick: React.PropTypes.func,
},
getDefaultProps: function() {
@@ -167,6 +168,13 @@ module.exports = React.createClass({displayName: 'Login',
var LoginFooter = sdk.getComponent("login.LoginFooter");
var loader = this.state.busy ?
: null;
+ var loginAsGuestJsx;
+ if (this.props.onLoginAsGuestClick) {
+ loginAsGuestJsx =
+
+ Login as guest
+
+ }
return (
@@ -188,6 +196,7 @@ module.exports = React.createClass({displayName: 'Login',
Create a new account
+ { loginAsGuestJsx }
diff --git a/src/components/views/dialogs/SetDisplayNameDialog.js b/src/components/views/dialogs/SetDisplayNameDialog.js
index d1287e2570..624bb50a46 100644
--- a/src/components/views/dialogs/SetDisplayNameDialog.js
+++ b/src/components/views/dialogs/SetDisplayNameDialog.js
@@ -26,9 +26,20 @@ module.exports = React.createClass({
},
getInitialState: function() {
- return {
- value: this.props.currentDisplayName || "Guest "+MatrixClientPeg.get().getUserIdLocalpart(),
+ if (this.props.currentDisplayName) {
+ return { value: this.props.currentDisplayName };
}
+
+ if (MatrixClientPeg.get().isGuest()) {
+ return { value : "Guest " + MatrixClientPeg.get().getUserIdLocalpart() };
+ }
+ else {
+ return { value : MatrixClientPeg.get().getUserIdLocalpart() };
+ }
+ },
+
+ componentDidMount: function() {
+ this.refs.input_value.select();
},
getValue: function() {
@@ -54,11 +65,12 @@ module.exports = React.createClass({
Set a Display Name
- Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?
+ Your display name is how you'll appear to others when you speak in rooms.
+ What would you like it to be?