prompt before giving equal ops
parent
31ed7b9dd7
commit
59f599af5c
|
@ -85,14 +85,20 @@ module.exports = React.createClass({
|
||||||
customPicker = <span> of { input }</span>;
|
customPicker = <span> of { input }</span>;
|
||||||
}
|
}
|
||||||
|
|
||||||
var selectValue = roles[this.props.value] || "Custom";
|
var selectValue;
|
||||||
|
if (this.state.custom) {
|
||||||
|
selectValue = "Custom";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
selectValue = roles[this.props.value] || "Custom";
|
||||||
|
}
|
||||||
var select;
|
var select;
|
||||||
if (this.props.disabled) {
|
if (this.props.disabled) {
|
||||||
select = <span>{ selectValue }</span>;
|
select = <span>{ selectValue }</span>;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
select =
|
select =
|
||||||
<select ref="select" defaultValue={ selectValue } onChange={ this.onSelectChange }>
|
<select ref="select" value={ selectValue } onChange={ this.onSelectChange }>
|
||||||
<option value="User">User (0)</option>
|
<option value="User">User (0)</option>
|
||||||
<option value="Moderator">Moderator (50)</option>
|
<option value="Moderator">Moderator (50)</option>
|
||||||
<option value="Admin">Admin (100)</option>
|
<option value="Admin">Admin (100)</option>
|
||||||
|
|
|
@ -179,22 +179,7 @@ module.exports = React.createClass({
|
||||||
this.props.onFinished();
|
this.props.onFinished();
|
||||||
},
|
},
|
||||||
|
|
||||||
onPowerChange: function(powerLevel) {
|
_applyPowerChange: function(roomId, target, powerLevel, powerLevelEvent) {
|
||||||
var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
|
|
||||||
var roomId = this.props.member.roomId;
|
|
||||||
var target = this.props.member.userId;
|
|
||||||
var room = MatrixClientPeg.get().getRoom(roomId);
|
|
||||||
if (!room) {
|
|
||||||
this.props.onFinished();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var powerLevelEvent = room.currentState.getStateEvents(
|
|
||||||
"m.room.power_levels", ""
|
|
||||||
);
|
|
||||||
if (!powerLevelEvent) {
|
|
||||||
this.props.onFinished();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
MatrixClientPeg.get().setPowerLevel(roomId, target, parseInt(powerLevel), powerLevelEvent).done(
|
MatrixClientPeg.get().setPowerLevel(roomId, target, parseInt(powerLevel), powerLevelEvent).done(
|
||||||
function() {
|
function() {
|
||||||
// NO-OP; rely on the m.room.member event coming down else we could
|
// NO-OP; rely on the m.room.member event coming down else we could
|
||||||
|
@ -207,7 +192,55 @@ module.exports = React.createClass({
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
this.props.onFinished();
|
this.props.onFinished();
|
||||||
|
},
|
||||||
|
|
||||||
|
onPowerChange: function(powerLevel) {
|
||||||
|
var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
|
||||||
|
var roomId = this.props.member.roomId;
|
||||||
|
var target = this.props.member.userId;
|
||||||
|
var room = MatrixClientPeg.get().getRoom(roomId);
|
||||||
|
var self = this;
|
||||||
|
if (!room) {
|
||||||
|
this.props.onFinished();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var powerLevelEvent = room.currentState.getStateEvents(
|
||||||
|
"m.room.power_levels", ""
|
||||||
|
);
|
||||||
|
if (!powerLevelEvent) {
|
||||||
|
this.props.onFinished();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (powerLevelEvent.getContent().users) {
|
||||||
|
var myPower = powerLevelEvent.getContent().users[MatrixClientPeg.get().credentials.userId];
|
||||||
|
if (parseInt(myPower) === parseInt(powerLevel)) {
|
||||||
|
var QuestionDialog = sdk.getComponent("dialogs.QuestionDialog");
|
||||||
|
Modal.createDialog(QuestionDialog, {
|
||||||
|
title: "Warning",
|
||||||
|
description:
|
||||||
|
<div>
|
||||||
|
You will not be able to undo this change as you are promoting the user to have the same power level as yourself.<br/>
|
||||||
|
Are you sure?
|
||||||
|
</div>,
|
||||||
|
button: "Continue",
|
||||||
|
onFinished: function(confirmed) {
|
||||||
|
if (confirmed) {
|
||||||
|
self._applyPowerChange(roomId, target, powerLevel, powerLevelEvent);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
self.props.onFinished();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this._applyPowerChange(roomId, target, powerLevel, powerLevelEvent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this._applyPowerChange(roomId, target, powerLevel, powerLevelEvent);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
onChatClick: function() {
|
onChatClick: function() {
|
||||||
|
|
Loading…
Reference in New Issue