Merge pull request #243 from matrix-org/dbkr/error_messages

Add better user-facing error messages
This commit is contained in:
David Baker 2016-03-22 17:41:00 +00:00
commit abe4df5f1c
10 changed files with 176 additions and 21 deletions

View file

@ -170,10 +170,18 @@ module.exports = React.createClass({
// get out of sync if we force setState here!
console.log("Mod toggle success");
}, function(err) {
Modal.createDialog(ErrorDialog, {
title: "Mod error",
description: err.message
});
if (err.errcode == 'M_GUEST_ACCESS_FORBIDDEN') {
var NeedToRegisterDialog = sdk.getComponent("dialogs.NeedToRegisterDialog");
Modal.createDialog(NeedToRegisterDialog, {
title: "Please Register",
description: "This action cannot be performed by a guest user. Please register to be able to do this."
});
} else {
Modal.createDialog(ErrorDialog, {
title: "Mod error",
description: err.message
});
}
}
);
this.props.onFinished();
@ -293,6 +301,16 @@ module.exports = React.createClass({
}
else {
self.setState({ creatingRoom: true });
if (MatrixClientPeg.get().isGuest()) {
var NeedToRegisterDialog = sdk.getComponent("dialogs.NeedToRegisterDialog");
Modal.createDialog(NeedToRegisterDialog, {
title: "Please Register",
description: "Guest users can't create new rooms. Please register to create room and start a chat."
});
return;
}
MatrixClientPeg.get().createRoom({
// XXX: FIXME: deduplicate this with "view_create_room" in MatrixChat
invite: [this.props.member.userId],

View file

@ -142,9 +142,18 @@ module.exports = React.createClass({
onInvite: function(inputText) {
var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
var NeedToRegisterDialog = sdk.getComponent("dialogs.NeedToRegisterDialog");
var self = this;
inputText = inputText.trim(); // react requires es5-shim so we know trim() exists
if (MatrixClientPeg.get().isGuest()) {
Modal.createDialog(NeedToRegisterDialog, {
title: "Unable to Invite",
description: "Guest user can't invite new users. Please register to be able to invite new users into a room."
});
return;
}
// email addresses and user IDs do not allow space, comma, semicolon so split
// on them for bulk inviting.
var separators =[ ";", " ", "," ];
@ -222,10 +231,17 @@ module.exports = React.createClass({
}, function(err) {
if (err !== null) {
console.error("Failed to invite: %s", JSON.stringify(err));
Modal.createDialog(ErrorDialog, {
title: "Server error whilst inviting",
description: err.message
});
if (err.errcode == 'M_FORBIDDEN') {
Modal.createDialog(ErrorDialog, {
title: "Unable to Invite",
description: "You do not have permission to invite people to this room."
});
} else {
Modal.createDialog(ErrorDialog, {
title: "Server error whilst inviting",
description: err.message
});
}
}
}).finally(function() {
self.setState({