diff --git a/api/types/types.go b/api/types/types.go index 1085d17259..3549cec64f 100644 --- a/api/types/types.go +++ b/api/types/types.go @@ -193,6 +193,8 @@ type WorkflowParam struct { Type string `yaml:"Type"` Default interface{} `yaml:"Default"` Values []WorkflowChoice `yaml:"Values"` + Depends string `yaml:"Depends"` + Factors []interface{} `yaml:"Factors"` } // Workflow describes a workflow diff --git a/statics/js/components/workflow.js b/statics/js/components/workflow.js index 12ccb0b37b..52652ed24e 100644 --- a/statics/js/components/workflow.js +++ b/statics/js/components/workflow.js @@ -6,7 +6,9 @@ Vue.component('item', { 'Description', 'Type', 'Values', - 'Default' + 'Default', + 'Depends', + 'Factors' ], inject: [ @@ -14,7 +16,7 @@ Vue.component('item', { ], template: ` -
+
@@ -52,7 +54,17 @@ Vue.component('item', {
-
` +
`, + + methods: { + allowed: function() { + if (this.Depends === "" || this.Factors === null) { + return true + } + let d = this.formData[this.Depends] + return this.Factors.indexOf(d) >= 0 + } + }, }) Vue.component('workflow-params', {