forked from matrix/element-web
PushRules settings: Fixed triage of matrix content rules into the unique Vector rule
This commit is contained in:
parent
7f95362dd2
commit
b9080c770d
|
@ -158,7 +158,7 @@ module.exports = React.createClass({
|
||||||
// HS default rules
|
// HS default rules
|
||||||
var defaultRules = {master: [], vector: {}, additional: [], fallthrough: [], suppression: []};
|
var defaultRules = {master: [], vector: {}, additional: [], fallthrough: [], suppression: []};
|
||||||
// Content/keyword rules
|
// Content/keyword rules
|
||||||
var contentRules = {on: [], strong: [], off: [], other: []};
|
var contentRules = {on: [], on_but_disabled:[], strong: [], strong_but_disabled: [], other: []};
|
||||||
|
|
||||||
for (var kind in rulesets.global) {
|
for (var kind in rulesets.global) {
|
||||||
for (var i = 0; i < Object.keys(rulesets.global[kind]).length; ++i) {
|
for (var i = 0; i < Object.keys(rulesets.global[kind]).length; ++i) {
|
||||||
|
@ -180,31 +180,36 @@ module.exports = React.createClass({
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (kind === 'content') {
|
else if (kind === 'content') {
|
||||||
if (r.enabled) {
|
// Count tweaks to determine if it is a ON or STRONG rule
|
||||||
// Count tweaks to determine if it is a ON or STRONG rule
|
var tweaks = 0;
|
||||||
var tweaks = 0;
|
for (var j in r.actions) {
|
||||||
for (var j in r.actions) {
|
var action = r.actions[j];
|
||||||
var action = r.actions[j];
|
if (action.set_tweak === 'sound' ||
|
||||||
if (action.set_tweak === 'sound' ||
|
(action.set_tweak === 'highlight' && action.value)) {
|
||||||
(action.set_tweak === 'highlight' && action.value)) {
|
tweaks++;
|
||||||
tweaks++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (tweaks) {
|
|
||||||
case 0:
|
|
||||||
contentRules.on.push(r);
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
contentRules.strong.push(r);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
contentRules.other.push(r);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
contentRules.off.push(r);
|
switch (tweaks) {
|
||||||
|
case 0:
|
||||||
|
if (r.enabled) {
|
||||||
|
contentRules.on.push(r);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
contentRules.on_but_disabled.push(r);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if (r.enabled) {
|
||||||
|
contentRules.strong.push(r);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
contentRules.strong_but_disabled.push(r);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
contentRules.other.push(r);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -228,21 +233,31 @@ module.exports = React.createClass({
|
||||||
state: PushRuleState.STRONG,
|
state: PushRuleState.STRONG,
|
||||||
rules: contentRules.strong
|
rules: contentRules.strong
|
||||||
}
|
}
|
||||||
self.state.externalContentRules = [].concat(contentRules.on, contentRules.other, contentRules.off);
|
self.state.externalContentRules = [].concat(contentRules.strong_but_disabled, contentRules.on, contentRules.on_but_disabled, contentRules.other);
|
||||||
|
}
|
||||||
|
else if (contentRules.strong_but_disabled.length) {
|
||||||
|
self.state.vectorContentRules = {
|
||||||
|
state: PushRuleState.OFF,
|
||||||
|
rules: contentRules.strong_but_disabled
|
||||||
|
}
|
||||||
|
self.state.externalContentRules = [].concat(contentRules.on, contentRules.on_but_disabled, contentRules.other);
|
||||||
}
|
}
|
||||||
else if (contentRules.on.length) {
|
else if (contentRules.on.length) {
|
||||||
self.state.vectorContentRules = {
|
self.state.vectorContentRules = {
|
||||||
state: PushRuleState.ON,
|
state: PushRuleState.ON,
|
||||||
rules: contentRules.on
|
rules: contentRules.on
|
||||||
}
|
}
|
||||||
self.state.externalContentRules = [].concat(contentRules.strong, contentRules.other, contentRules.off);
|
self.state.externalContentRules = [].concat(contentRules.on_but_disabled, contentRules.other);
|
||||||
}
|
}
|
||||||
else if (contentRules.off.length) {
|
else if (contentRules.on_but_disabled.length) {
|
||||||
self.state.vectorContentRules = {
|
self.state.vectorContentRules = {
|
||||||
state: PushRuleState.OFF,
|
state: PushRuleState.OFF,
|
||||||
rules: contentRules.off
|
rules: contentRules.on_but_disabled
|
||||||
}
|
}
|
||||||
self.state.externalContentRules = [].concat(contentRules.strong, contentRules.on, contentRules.other);
|
self.state.externalContentRules = contentRules.other;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
self.state.externalContentRules = contentRules.other;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build the rules displayed by Vector UI
|
// Build the rules displayed by Vector UI
|
||||||
|
|
Loading…
Reference in New Issue