Script edit: Display conditions (#3042)
Added support so conditions will be displayed when script rules are viewed. Signed-off-by: Jeff James <jeff@james-online.com>pull/3073/head
parent
5ad2b2bf79
commit
8b7f4700dd
|
@ -426,9 +426,10 @@ export default {
|
||||||
if (this.loading) return
|
if (this.loading) return
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
|
||||||
Promise.all([this.$oh.api.get('/rest/module-types?type=trigger'), this.$oh.api.get('/rest/rules/' + this.ruleId)]).then((data) => {
|
Promise.all([this.$oh.api.get('/rest/module-types?type=trigger'), this.$oh.api.get('/rest/module-types?type=condition'), this.$oh.api.get('/rest/rules/' + this.ruleId)]).then((data) => {
|
||||||
this.$set(this.moduleTypes, 'triggers', data[0])
|
this.$set(this.moduleTypes, 'triggers', data[0])
|
||||||
this.$set(this, 'rule', data[1])
|
this.$set(this.moduleTypes, 'conditions', data[1])
|
||||||
|
this.$set(this, 'rule', data[2])
|
||||||
|
|
||||||
if (this.moduleId) {
|
if (this.moduleId) {
|
||||||
this.$set(this, 'currentModule', this.rule.actions.concat(this.rule.conditions).find((m) => m.id === this.moduleId))
|
this.$set(this, 'currentModule', this.rule.actions.concat(this.rule.conditions).find((m) => m.id === this.moduleId))
|
||||||
|
@ -441,7 +442,7 @@ export default {
|
||||||
|
|
||||||
if (!this.rule.editable) {
|
if (!this.rule.editable) {
|
||||||
const commentChar = AUTOMATION_LANGUAGES[this.mode].commentChar
|
const commentChar = AUTOMATION_LANGUAGES[this.mode].commentChar
|
||||||
let triggerDescriptionComments = `${commentChar} Triggers:\n`
|
let preamble = `${commentChar} Triggers:\n`
|
||||||
for (const trigger of this.rule.triggers) {
|
for (const trigger of this.rule.triggers) {
|
||||||
const triggerModuleType = this.moduleTypes.triggers.find((t) => t.uid === trigger.type)
|
const triggerModuleType = this.moduleTypes.triggers.find((t) => t.uid === trigger.type)
|
||||||
let description = trigger.label || this.suggestedModuleTitle(trigger, triggerModuleType, 'trigger')
|
let description = trigger.label || this.suggestedModuleTitle(trigger, triggerModuleType, 'trigger')
|
||||||
|
@ -450,9 +451,20 @@ export default {
|
||||||
} else {
|
} else {
|
||||||
description = 'When ' + description
|
description = 'When ' + description
|
||||||
}
|
}
|
||||||
triggerDescriptionComments += `${commentChar} - ${description}\n`
|
preamble += `${commentChar} - ${description}\n`
|
||||||
}
|
}
|
||||||
this.script = triggerDescriptionComments + '\n' + this.script
|
|
||||||
|
if (this.rule.conditions.length > 0) {
|
||||||
|
preamble += `\n${commentChar} Conditions:\n`
|
||||||
|
for (const condition of this.rule.conditions) {
|
||||||
|
const conditionModuleType = this.moduleTypes.conditions.find((t) => t.uid === condition.type)
|
||||||
|
let description = condition.label || this.suggestedModuleTitle(condition, conditionModuleType, 'condition')
|
||||||
|
description = 'Only If ' + description
|
||||||
|
preamble += `${commentChar} - ${description}\n`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.script = preamble + '\n' + this.script
|
||||||
}
|
}
|
||||||
|
|
||||||
this.loadScriptModuleTypes().then(() => {
|
this.loadScriptModuleTypes().then(() => {
|
||||||
|
|
Loading…
Reference in New Issue