fix ability to save room settings if you don't have ops
This commit is contained in:
parent
f9c7ae1ab9
commit
bf1e0da598
1 changed files with 9 additions and 8 deletions
|
@ -56,7 +56,7 @@ module.exports = React.createClass({
|
||||||
tags_changed: false,
|
tags_changed: false,
|
||||||
tags: tags,
|
tags: tags,
|
||||||
areNotifsMuted: areNotifsMuted,
|
areNotifsMuted: areNotifsMuted,
|
||||||
// isRoomPublished: // set in componentWillMount
|
isRoomPublished: this._originalIsRoomPublished, // loaded async in componentWillMount
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -65,23 +65,24 @@ module.exports = React.createClass({
|
||||||
this.props.room.roomId
|
this.props.room.roomId
|
||||||
).done((result) => {
|
).done((result) => {
|
||||||
this.setState({ isRoomPublished: result.visibility === "public" });
|
this.setState({ isRoomPublished: result.visibility === "public" });
|
||||||
|
this._originalIsRoomPublished = result.visibility === "public";
|
||||||
}, (err) => {
|
}, (err) => {
|
||||||
console.error("Failed to get room visibility: " + err);
|
console.error("Failed to get room visibility: " + err);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
setName: function(name) {
|
setName: function(name) {
|
||||||
this.setState({
|
this.setState({
|
||||||
name: name
|
name: name
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
setTopic: function(topic) {
|
setTopic: function(topic) {
|
||||||
this.setState({
|
this.setState({
|
||||||
topic: topic
|
topic: topic
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
save: function() {
|
save: function() {
|
||||||
var stateWasSetDefer = q.defer();
|
var stateWasSetDefer = q.defer();
|
||||||
// the caller may have JUST called setState on stuff, so we need to re-render before saving
|
// the caller may have JUST called setState on stuff, so we need to re-render before saving
|
||||||
|
@ -92,13 +93,13 @@ module.exports = React.createClass({
|
||||||
stateWasSetDefer.resolve();
|
stateWasSetDefer.resolve();
|
||||||
this.setState({ _loading: false});
|
this.setState({ _loading: false});
|
||||||
});
|
});
|
||||||
|
|
||||||
return stateWasSetDefer.promise.then(() => {
|
return stateWasSetDefer.promise.then(() => {
|
||||||
return this._save();
|
return this._save();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
_save: function() {
|
_save: function() {
|
||||||
const roomId = this.props.room.roomId;
|
const roomId = this.props.room.roomId;
|
||||||
var promises = this.saveAliases(); // returns Promise[]
|
var promises = this.saveAliases(); // returns Promise[]
|
||||||
var originalState = this.getInitialState();
|
var originalState = this.getInitialState();
|
||||||
|
@ -125,7 +126,7 @@ module.exports = React.createClass({
|
||||||
|
|
||||||
if (this.state.isRoomPublished !== originalState.isRoomPublished) {
|
if (this.state.isRoomPublished !== originalState.isRoomPublished) {
|
||||||
promises.push(MatrixClientPeg.get().setRoomDirectoryVisibility(
|
promises.push(MatrixClientPeg.get().setRoomDirectoryVisibility(
|
||||||
roomId,
|
roomId,
|
||||||
this.state.isRoomPublished ? "public" : "private"
|
this.state.isRoomPublished ? "public" : "private"
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
@ -187,7 +188,7 @@ module.exports = React.createClass({
|
||||||
|
|
||||||
// color scheme
|
// color scheme
|
||||||
promises.push(this.saveColor());
|
promises.push(this.saveColor());
|
||||||
|
|
||||||
return q.allSettled(promises);
|
return q.allSettled(promises);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue