render: function() { var self = this; var inputs = Utils.clone(this.chart.plugin.settings) || []; var panel_option = this.chart.plugin.specs.use_panels; if (panel_option == "optional") { inputs.push({ name: "__use_panels", type: "boolean", label: "Use multi-panels", help: "Would you like to separate your data into individual panels?" }); } else { this.chart.settings.set("__use_panels", panel_option == "yes" ? "true" : "false"); } this.$el.empty(); if (_.size(inputs) > 0) { FormData.visitInputs(inputs, function(input, name) { var model_value = self.chart.settings.get(name); if (model_value !== undefined && !input.hidden) { input.value = model_value; } }); this.form = new Form({ inputs: inputs, onchange: function() { self.chart.settings.set(self.form.data.create()); self.chart.trigger("redraw"); } }); this.chart.settings.set(this.form.data.create()); this.$el.append(this.form.$el); } }
_.each(this.steps, (step, i) => { if (step.step_type == "tool") { var data_resolved = true; FormData.visitInputs(step.inputs, (input, name, context) => { var is_runtime_value = input.value && input.value.__class__ == "RuntimeValue"; var is_data_input = ["data", "data_collection"].indexOf(input.type) != -1; var data_ref = context[input.data_ref]; if (input.step_linked && !self._isDataStep(input.step_linked)) { data_resolved = false; } if (input.options && ((input.options.length == 0 && !data_resolved) || input.wp_linked)) { input.is_workflow = true; } if (data_ref) { input.is_workflow = (data_ref.step_linked && !self._isDataStep(data_ref.step_linked)) || input.wp_linked; } if ( is_data_input || (input.value && input.value.__class__ == "RuntimeValue" && !input.step_linked) ) { step.collapsed = false; } if (is_runtime_value) { input.value = null; } input.flavor = "workflow"; if (!is_runtime_value && !is_data_input && input.type !== "hidden" && !input.wp_linked) { if (input.optional || (!Utils.isEmpty(input.value) && input.value !== "")) { input.collapsible_value = input.value; input.collapsible_preview = true; } } }); } });
_.each(this.steps, (step, i) => { FormData.visitInputs(step.inputs, (input, name) => { self.parms[i][name] = input; }); });
success: function(response) { FormData.visitInputs(response.inputs, function(node, name, context) { visits.push({ name: name, node: node }); }); }