Get & display pushers in settings
Really this is so (in a subsequent PR) we can show whether a user has an email pusher, but we can basically display the list of pushers for free, so adding this too.
This commit is contained in:
parent
46572ae793
commit
cff1c3010b
2 changed files with 42 additions and 1 deletions
|
@ -601,7 +601,7 @@ module.exports = React.createClass({
|
||||||
|
|
||||||
_refreshFromServer: function() {
|
_refreshFromServer: function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
MatrixClientPeg.get().getPushRules().then(self._portRulesToNewAPI).done(function(rulesets) {
|
var pushRulesPromise = MatrixClientPeg.get().getPushRules().then(self._portRulesToNewAPI).done(function(rulesets) {
|
||||||
MatrixClientPeg.get().pushRules = rulesets;
|
MatrixClientPeg.get().pushRules = rulesets;
|
||||||
|
|
||||||
// Get homeserver default rules and triage them by categories
|
// Get homeserver default rules and triage them by categories
|
||||||
|
@ -811,10 +811,20 @@ module.exports = React.createClass({
|
||||||
self.state.externalPushRules.push(rule);
|
self.state.externalPushRules.push(rule);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
var pushersPromise = MatrixClientPeg.get().getPushers().then(function(resp) {
|
||||||
|
self.setState({pushers: resp.pushers});
|
||||||
|
});
|
||||||
|
|
||||||
|
q.all([pushRulesPromise, pushersPromise]).done(function() {
|
||||||
self.setState({
|
self.setState({
|
||||||
phase: self.phases.DISPLAY
|
phase: self.phases.DISPLAY
|
||||||
});
|
});
|
||||||
|
}, function(error) {
|
||||||
|
self.setState({
|
||||||
|
phase: self.phases.ERROR
|
||||||
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -936,6 +946,28 @@ module.exports = React.createClass({
|
||||||
externalRules.push(<li>Notifications on the following keywords follow rules which can’t be displayed here: { externalKeyWords }</li>);
|
externalRules.push(<li>Notifications on the following keywords follow rules which can’t be displayed here: { externalKeyWords }</li>);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var devicesSection;
|
||||||
|
if (this.state.pushers === undefined) {
|
||||||
|
devicesSection = <div className="error">Unable to fetch device list</div>
|
||||||
|
} else if (this.state.pushers.length == 0) {
|
||||||
|
devicesSection = <div><i>No devices are push notifications</i></div>
|
||||||
|
} else {
|
||||||
|
var rows = [];
|
||||||
|
for (var i = 0; i < this.state.pushers.length; ++i) {
|
||||||
|
rows.push(<tr>
|
||||||
|
<td>{this.state.pushers[i].app_display_name}</td>
|
||||||
|
<td>{this.state.pushers[i].device_display_name}</td>
|
||||||
|
</tr>);
|
||||||
|
}
|
||||||
|
devicesSection = (<table className="mx_UserSettings_devicesTable">
|
||||||
|
<tr>
|
||||||
|
<th>Application</th>
|
||||||
|
<th>Device</th>
|
||||||
|
</tr>
|
||||||
|
{rows}
|
||||||
|
</table>);
|
||||||
|
}
|
||||||
|
|
||||||
var advancedSettings;
|
var advancedSettings;
|
||||||
if (externalRules.length) {
|
if (externalRules.length) {
|
||||||
advancedSettings = (
|
advancedSettings = (
|
||||||
|
@ -1010,6 +1042,10 @@ module.exports = React.createClass({
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<h3>Devices</h3>
|
||||||
|
|
||||||
|
{ devicesSection }
|
||||||
|
|
||||||
{ advancedSettings }
|
{ advancedSettings }
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -60,3 +60,8 @@ limitations under the License.
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
color: #76cfa6;
|
color: #76cfa6;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mx_UserSettings_devicesTable td {
|
||||||
|
padding-left: 20px;
|
||||||
|
padding-right: 20px;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue