added descriptions to conditions

This commit is contained in:
Joel McKinnon 2020-03-09 12:42:44 -07:00
parent 8900072239
commit efca7c8e58

View File

@ -44,7 +44,7 @@
<span class="c-condition__name">{{ domainObject.configuration.name }}</span> <span class="c-condition__name">{{ domainObject.configuration.name }}</span>
<!-- TODO: description should be derived from criteria --> <!-- TODO: description should be derived from criteria -->
<span class="c-condition__summary"> <span class="c-condition__summary">
<!-- {{ getDescription }} --> {{ getDescription }}
</span> </span>
<div class="c-condition__buttons"> <div class="c-condition__buttons">
@ -162,7 +162,7 @@
</span> </span>
</div> </div>
<div class="c-condition__summary"> <div class="c-condition__summary">
<!-- {{ getDescription }} --> {{ getDescription }}
</div> </div>
</div> </div>
</template> </template>
@ -219,28 +219,32 @@ export default {
if (!config.criteria.length) { if (!config.criteria.length) {
return 'When all else fails'; return 'When all else fails';
} else { } else {
let description = ''; let rule = '';
let summary = '';
if (config.criteria.length === 1 && config.criteria[0].telemetry) { if (config.criteria.length === 1 && config.criteria[0].telemetry) {
if (config.criteria[0].operation && config.criteria[0].input.length) { if (config.criteria[0].operation && config.criteria[0].input.length) {
description += `When ${config.criteria[0].telemetry.name} value ${this.findDescription(config.criteria[0].operation, config.criteria[0].input)}` rule += `${config.criteria[0].telemetry.name} value ${this.findDescription(config.criteria[0].operation, config.criteria[0].input)}`
summary = `When ${rule}`;
} else { } else {
description = 'No criteria specified' summary = 'No criteria specified'
} }
} else { } else {
let conjunction = ''; let conjunction = '';
summary = 'When ';
config.criteria.forEach((criterion, index) => { config.criteria.forEach((criterion, index) => {
if (criterion.operation && criterion.input.length) { if (criterion.operation && criterion.input.length) {
if (index !== config.criteria.length - 1 && (criterion.operation && criterion.input.length)) { rule += `${criterion.telemetry.name} value ${this.findDescription(criterion.operation, criterion.input)}`
if (index === config.criteria.length - 1) {
conjunction = config.trigger === 'all' ? 'and' : 'or'; conjunction = config.trigger === 'all' ? 'and' : 'or';
} else { } else {
conjunction = ''; conjunction = '';
} }
description += `${criterion.telemetry.name} value ${this.findDescription(criterion.operation, criterion.input)} ${conjunction}` summary += ` ${conjunction} ${rule}`
} }
}); });
} }
return description; return summary;
} }
} }
}, },
@ -260,7 +264,6 @@ export default {
findDescription(operation, values) { findDescription(operation, values) {
for (let i=0, ii= OPERATIONS.length; i < ii; i++) { for (let i=0, ii= OPERATIONS.length; i < ii; i++) {
if (operation === OPERATIONS[i].name) { if (operation === OPERATIONS[i].name) {
console.log('OPERATIONS[i].getDescription()', OPERATIONS[i].getDescription(values));
return OPERATIONS[i].getDescription(values); return OPERATIONS[i].getDescription(values);
} }
} }