diff --git a/client/galaxy/scripts/mvc/workflow/workflow-forms.js b/client/galaxy/scripts/mvc/workflow/workflow-forms.js
index b260f558bd0..40bdbcd5914 100644
--- a/client/galaxy/scripts/mvc/workflow/workflow-forms.js
+++ b/client/galaxy/scripts/mvc/workflow/workflow-forms.js
@@ -155,6 +155,7 @@ function _addLabelAnnotation(form) {
/** Visit input nodes and enrich by name/value pairs from server data */
function _visit(head, head_list, output_id, options) {
+ var post_job_actions = options.node.post_job_actions;
head_list = head_list || [];
head_list.push(head);
for (var i in head.inputs) {
@@ -171,7 +172,7 @@ function _visit(head, head_list, output_id, options) {
delete input.payload[p_id];
}
}
- var d = options.node.post_job_actions[input.action + output_id];
+ var d = post_job_actions[input.action + output_id];
if (d) {
for (var j in head_list) {
head_list[j].expanded = true;
@@ -190,14 +191,18 @@ function _visit(head, head_list, output_id, options) {
}
/** Builds sub section with step actions/annotation */
-function _makeSection(output_id, datatypes, options) {
+function _makeSection(output_id, options) {
var extensions = [];
var input_terminal_names = [];
+ var datatypes = options.datatypes;
+ var node = options.node;
+ var workflow = options.workflow;
+
for (var key in datatypes) {
extensions.push({ 0: datatypes[key], 1: datatypes[key] });
}
- for (key in options.node.input_terminals) {
- input_terminal_names.push(options.node.input_terminals[key].name);
+ for (key in node.input_terminals) {
+ input_terminal_names.push(node.input_terminals[key].name);
}
extensions.sort((a, b) => (a.label > b.label ? 1 : a.label < b.label ? -1 : 0));
extensions.unshift({
@@ -221,10 +226,10 @@ function _makeSection(output_id, datatypes, options) {
{
label: "Label",
type: "text",
- value: ((output = options.node.getWorkflowOutput(output_id)) && output.label) || "",
+ value: ((output = node.getWorkflowOutput(output_id)) && output.label) || "",
help: "This will provide a short name to describe the output - this must be unique across workflows.",
onchange: function(new_value) {
- options.workflow.attemptUpdateOutputLabel(options.node, output_id, new_value);
+ workflow.attemptUpdateOutputLabel(node, output_id, new_value);
}
},
{
@@ -324,7 +329,6 @@ function _makeSection(output_id, datatypes, options) {
function _addSections(form) {
var options = form.model.attributes;
var inputs = options.inputs;
- var datatypes = options.datatypes;
var node = options.node;
var post_job_actions = node.post_job_actions;
var output_id = node.output_terminals && Object.keys(node.output_terminals)[0];
@@ -351,7 +355,7 @@ function _addSections(form) {
"Upon completion of this step, delete non-starred outputs from completed workflow steps if they are no longer required as inputs."
});
for (var i in node.output_terminals) {
- inputs.push(_makeSection(i, datatypes, options));
+ inputs.push(_makeSection(i, options));
}
}
}
diff --git a/static/maps/mvc/workflow/workflow-forms.js.map b/static/maps/mvc/workflow/workflow-forms.js.map
index b0e06224f9f..ac3d4d2d5bb 100644
--- a/static/maps/mvc/workflow/workflow-forms.js.map
+++ b/static/maps/mvc/workflow/workflow-forms.js.map
@@ -1 +1 @@
-{"version":3,"sources":["mvc/workflow/workflow-forms.js"],"names":["_addLabelAnnotation","deepeach","options","form","input","type","test_param","node","inputs","unshift","_addSections","label","fixed","value","annotation","area","help","workflow","name","i","nodes","n","new_label","id","duplicate","data","match","element_list","input_id","model","set","trigger","_visit","head","input_element","action","output_id","head_list","pja_arg","payload","p_id","post_job_actions","d","expanded","action_arguments","_makeSection","datatypes","extensions","key","push","0","1","input_terminals","input_terminal_names","a","b","output","input_config","flat","getWorkflowOutput","new_value","title","onchange","join","ignore","output_terminals","Object","keys","host","String","Boolean","location","Default","Backbone","View","extend","initialize","self","this","_formView2","default","_utils2","merge","request","url","Galaxy","root","content_id","create","update_field_data","success","_toolFormBase2","text_enable","text_disable","initial_errors","cls","initialmodel","process","_customize","resolve","get","postchange","attributes","tool_id","version","$","current_state","buildmodel","config_form","tool_version","emit","debug","response","error","indexOf","info","textify","__class__","collapsible_value","is_workflow","length","undefined","Tool"],"mappings":"gMAwGQ,SAAAA,EAAMC,GACF,IAAAC,EAAAC,EAAIC,MAAMC,WACND,EAAAA,EAAME,SACTC,EAAAL,EAAAK,KACJL,EAAAM,OAJDC,SAKAC,KAAAA,OACAV,KAAAA,eACHW,MAAA,aA9ELC,OAAA,EA2FQC,MAAON,EAAKO,WAVpBC,MAAA,EACAC,KAAShB,kGAELE,EAAIe,OAAAA,SACJZ,KAAIE,OACJL,KAAAA,UACIG,MAAAA,QACAa,MAAAA,EAAMP,MACNA,KAAAA,oBACAC,OAAAA,EACAC,SAAAA,SAAYC,GACZC,IAAAA,GANmB,EAOnBC,IAAAA,IAAMG,KAAAF,EAAAG,MAAA,CAPV,IAAAC,EAAAJ,EAAAG,MAAAD,GASQX,GAAAA,EAARG,OAAuBU,EAAAV,OAAAW,GAAAD,EAAAE,IAAAhB,EAAAgB,GAAA,CACbC,GADa,EAEb,OAGNR,IAAAA,EAAMb,EAAAsB,KALaC,MAAA,WAAAvB,EAAAwB,aAAAC,GAOTC,MAAAC,IACN,aACAN,GAAA,gEAEIrB,EAAA4B,QAAIV,aAMR,SAAAW,EAAAC,EAAIC,EAAAA,EAAqBP,IACzBO,EAAAA,OAIA/B,KAAAA,GACH,IAAA,IAAAgB,KAAAc,EAAAzB,OAAA,CAvBkB,IAAvBJ,EAAA6B,EAAAzB,OAAAW,GAkCI,GATPf,EAAA+B,OASmB,CAHhB,GAJJ/B,EAAAc,KAAA,QAAAkB,EAAA,KAAAhC,EAAA+B,OACSH,EAAOC,UACZI,EAAYA,MAAZA,KAAAjC,EAAAkC,SAEKlC,EAAS6B,QACN7B,IAAAA,IAAQ6B,KAAKzB,EAAjB+B,QACIJ,EAAS/B,QAAbA,EAAAc,KAAIiB,KAAJK,GAAApC,EAAAmC,QAAAC,UACYpC,EAAAmC,QAAAC,GAGJpC,IAAAA,EAAAA,EAAMc,KAANuB,iBAAyBH,EAAzBH,OAAAC,GACH,GAAAM,EAAA,CACD,IAAItC,IAAAA,KAAMmC,EACNF,EAASG,GAATG,UAAuBJ,EAEnBnC,EAAAkC,QACHlC,EAAAS,MAAA6B,EAAAE,kBAAAF,EAAAE,iBAAAxC,EAAAkC,UAAAlC,EAAAS,MAED6B,EAAIxC,MAAQK,QAIXH,EAAAI,QACDwB,EAAA5B,EAAIA,EAAMkC,MAAS,GAAAF,EAAAlC,IAM1B,SAAA2C,EAAAT,EAAAU,EAAA5C,GACD,IAAA6C,KACIf,KACH,IAAA,IAAAgB,KAAAF,EACJC,EAAAE,MAAAC,EAAAJ,EAAAE,GAAAG,EAAAL,EAAAE,KAUD,IAAKA,KAAO9C,EAAQK,KAAK6C,gBAP7BC,EAAAJ,KAAA/C,EAAAK,KAAA6C,gBAAAJ,GAAA9B,MAEI6B,EAAIA,KAAAA,SAAAA,EAAAA,GAAAA,OAAJO,EAAA3C,MAAA4C,EAAA5C,MAAA,EAAA2C,EAAA3C,MAAA4C,EAAA5C,OAAA,EAAA,IACAoC,EAAIM,SACJH,EAAA,YACIH,EAAAA,cAEJA,EAAKC,SACDK,EAAAA,WACHF,EAAA,aACeJ,EAAAtC,SAAAyC,EAAhB,kBACAH,EAAAA,cAEI,IAAAS,EAFeC,GAInBV,MAAAA,sBAAmBX,EAAnBW,IACI1C,KAAA,UACAqD,MAAA,EAFelD,SAKZG,MAAA,QACAN,KAAA,OAFPQ,OAAA2C,EAAAtD,EAAAK,KAAAoD,kBAAAvB,KAAAoB,EAAA7C,OAAA,GAII6C,KAAJ,gGACIC,SAAAA,SAAeG,GACfC,EAAAA,SAAAA,yBADe3D,EAAAK,KAAA6B,EAAAwB,MAMPjD,OAAO,sBACPN,QAAM,UACNQ,MAAQ,iBACRG,KAAM,OACN8C,MAAAA,GACI5D,OAAAA,GACHc,KAAAA,qLAAAqC,EAAAU,KAEL,MAFK,eAMD1D,OAAM,uBACNQ,QALJ,UAMImD,MAAAA,kBACAhD,KAAAA,SAIJgD,OAAA,YACI7B,MAAAA,YACAG,QAASS,EACTpC,KAAAA,+EAGAE,OAAO,mBACPX,QAAS6C,OACT/B,MAAM,WAEVX,KAAA,OACI8B,MAAAA,GACAG,OAAAA,GACA3B,KAAAA,+CAGAqD,OAAQ,yBACRhD,QAAM,OAEVL,MAAA,cACIwB,KAAAA,OACAG,MAAAA,GACA3B,OAAO,GACPN,KAAM,kDAGNW,MAAM,iBAEVX,KAAA,UACIwD,MAAAA,EACAxD,SAEQ8B,OACJ,kBACIA,QAAQ,WACRG,MAAS,eACT3B,KAAO,UACPN,MAAM,GACNQ,OALJ,KASIsB,OAAQ,kBACRG,QAAS,WACT3B,MAAO,eACPN,KAAM,UACNQ,MALJ,GAMImD,OAAQ,KAIR1B,OAAS,kBACT3B,QAAO,SACPN,MAAM,aACNQ,KALJ,UAMImD,MAAQ,GAEZA,OAAA,KAGIrD,OAAO,kBACPN,QAAM,YACNQ,MALJ,gBAMImD,KAAQ,UAEZnD,MAAA,GACIsB,OAAQ,KAGR9B,OAAM,kBACNQ,QALJ,UAMImD,MAAQ,cA3CpB3D,KAAA,UA8CUQ,MAAA,GA/FNmD,OAAA,KAoGLP,KAAAA,8FAKP,OADJzB,EAAAyB,KAAsBtD,EAAMD,GACxBuD,EAIA,SAAA/C,EAAI+B,GACJ,IAAAvC,EAAIkC,EAAAA,MAAiB6B,WAJjBzD,EAASN,EAAQM,OAMrBsC,EAAIV,EAAWU,UACXtC,EAAAA,EAAAD,KACIW,EAAAA,EAAckB,iBACdzB,EAAAA,EAAOsD,kBAFCC,OAAAC,KAAA5D,EAAA0D,kBAAA,GAIRpD,GAAAA,EAAAA,CACAmD,EAAAA,MACAhD,KAAAA,QAAMoB,EAANpB,gBACAuB,MAAAA,qBACI6B,KAAAA,UADKvD,MAAAwD,OAAAC,QAAA7B,EAAAA,cAAAL,KAPD4B,OAAZ,QAWAxD,KAAAA,iEACIU,SACAP,KAAAA,OAAO4D,SAAAH,QAGPJ,EAAAA,MACAhD,KAAAA,QACIoB,EADJpB,8BANQL,MAAZ,iBASAN,KAAK,UACDG,MAAAA,OAAOyC,QAAKJ,EAAAA,4BAAZT,KACH4B,OAAA,QACJhD,KACJ,qIAJO,IAAK,IAAIG,KAMFZ,EAAA0D,iBACXO,EAASA,KADE3B,EAAA1B,EAAA2B,EAAA5C,+EAlWXsE,EAAUC,SAASC,KAAKC,QACxBC,WAAY,SAAS1E,GACjB,IAAI2E,EAAOC,KACPvE,EAAOL,EAAQK,KACnBuE,KAAK3E,KAAO,IAAA4E,EAAAC,QACRC,EAAAD,QAAME,MAAMhF,GACR4D,SAAU,WACNmB,EAAAD,QAAMG,SACF9E,KAAM,OACN+E,IAAQC,OAAOC,KAAf,6BACA7D,MACIF,GAAIhB,EAAKgB,GACTlB,KAAME,EAAKF,KACXkF,WAAYhF,EAAKgF,WACjB/E,OAAQqE,EAAK1E,KAAKsB,KAAK+D,UAdrCf,QAAcE,SAAOlD,GACnBlB,EAAAkF,kBAAkBhE,UAOVpB,EAAAA,KAAMF,MACNiF,KAAAA,KAAAA,YAKI5E,EAAAA,SAAAA,KAAAA,QAJEoE,WAAA,SAHI1E,GASVwF,IAAAA,EAAAA,KACInF,EAAAA,EAAAA,KACHuE,KAAA3E,KAAA,IAAAwF,EAAAX,QAXSC,EAAAD,QAAAE,MAAdhF,GAaH0F,YAAA,iBAhBTC,aAAA,iBAmBA7F,QAAAA,EACA8F,gBAAA,EACHC,IAAA,oBAzBLC,aAAA,SAAAC,EAAA9F,GAyCoB0E,EAAKqB,WAAW/F,GAbpC8F,EAAAE,WAEIvB,WAAY,SAAAqB,EAAS/F,GACb2E,EAAOhD,MAAXuE,IAAA,aAAIvB,CAAJoB,EAAA9F,IAEAkG,WAAY,SAAAJ,EAAA9F,GAEJyF,IAAAA,EAAazF,EAAA0B,MADIyE,WAEjBT,GACQU,QAHSrG,EAAAqB,GAIjBuE,aAJiB5F,EAAAsG,QAKZnG,KAAA,OACL2F,OAAcS,EAAA9B,QAAA,KAAAxE,EAAS8F,KAAS9F,WAE5B8F,OAAAA,KAAQE,MAAR,mCAAA,yBAAAO,GARazB,EAAAD,QAAAG,SAUjBwB,KAAY,OACRxG,IAAWiG,OAAId,KAAfnF,6BAXasB,KAAAiF,EAajBL,QAAY,SAAA5E,GACJvB,EAAAA,MAAe2B,IAAAA,EAAMyE,aACrBI,EAAAA,WAAgBvG,GAChBoG,EAASrG,OAAAA,EADO0G,aAEhBC,EAAAA,OAAc3G,EAAAA,aAKlBK,EAAAkF,kBAAchE,GACVpB,OAAMyG,KADIC,MAAA,mCAAA,sBAAAtF,GAEV2D,EAAeE,WAEfI,MAAAA,SAASsB,GACL7G,OAAK0B,KAAMC,MAAIL,mCAAf,0BAAAuF,GACAnC,EAAKqB,iBAQLb,WAAAA,SAAAA,GACAY,IAAAA,EAAAA,EAAAA,MAAAA,WACHhB,EAAAD,QAAA/E,SAAAC,EAhBSM,OAAA,SAAAJ,GAiBV6G,EAAAA,QACsB,IAAlB5B,OAAAA,mBAAkB6B,QAAA9G,EAAAC,OAClB4F,EAAAA,KAAAA,SACH7F,EAAA+G,KAAA,eAAA/G,EAAAc,KAAA,MAAA+D,EAAAD,QAAAoC,QAAAhH,EAAA2C,YAAA,IApBS3C,EAAdS,OAAAwG,UAAA,iBAsBHjH,EAAAQ,QA7CTR,EAAAkH,mBAJwBD,UAAA,gBAsDhBjH,EAAAmH,YACJrH,EAAe2B,SAAnB,IAAyByE,EAAzBpG,QAAAsH,SAAA,IAAA,UAAA,SAAAN,QAAA9G,EAAAC,UAIYD,EAAAA,QAAAA,SAAAA,EAAMC,OAAO,SAAAD,GACP+G,gBAAN/G,EAAAA,OACAA,EAAAA,WAAMS,uBAAqB4G,KAGvBJ,EAAAA,GADsBrH,EAA1BG,iBAuQhBqE,QAASA,EACTkD,KAAMA","file":"../../../scripts/mvc/workflow/workflow-forms.js","sourcesContent":["import Utils from \"utils/utils\";\nimport Form from \"mvc/form/form-view\";\nimport ToolFormBase from \"mvc/tool/tool-form-base\";\n/** Default form wrapper for non-tool modules in the workflow editor. */\nvar Default = Backbone.View.extend({\n initialize: function(options) {\n var self = this;\n var node = options.node;\n this.form = new Form(\n Utils.merge(options, {\n onchange: function() {\n Utils.request({\n type: \"POST\",\n url: `${Galaxy.root}api/workflows/build_module`,\n data: {\n id: node.id,\n type: node.type,\n content_id: node.content_id,\n inputs: self.form.data.create()\n },\n success: function(data) {\n node.update_field_data(data);\n }\n });\n }\n })\n );\n _addLabelAnnotation(this.form);\n this.form.render();\n }\n});\n\n/** Tool form wrapper for the workflow editor. */\nvar Tool = Backbone.View.extend({\n initialize: function(options) {\n var self = this;\n var node = options.node;\n this.form = new ToolFormBase(\n Utils.merge(options, {\n text_enable: \"Set in Advance\",\n text_disable: \"Set at Runtime\",\n narrow: true,\n initial_errors: true,\n cls: \"ui-portlet-narrow\",\n initialmodel: function(process, form) {\n self._customize(form);\n process.resolve();\n },\n buildmodel: function(process, form) {\n form.model.get(\"postchange\")(process, form);\n },\n postchange: function(process, form) {\n var options = form.model.attributes;\n var current_state = {\n tool_id: options.id,\n tool_version: options.version,\n type: \"tool\",\n inputs: $.extend(true, {}, form.data.create())\n };\n Galaxy.emit.debug(\"tool-form-workflow::postchange()\", \"Sending current state.\", current_state);\n Utils.request({\n type: \"POST\",\n url: `${Galaxy.root}api/workflows/build_module`,\n data: current_state,\n success: function(data) {\n form.model.set(data.config_form);\n self._customize(form);\n form.update(data.config_form);\n form.errors(data.config_form);\n // This hasn't modified the workflow, just returned\n // module information for the tool to update the workflow\n // state stored on the client with. User needs to save\n // for this to take effect.\n node.update_field_data(data);\n Galaxy.emit.debug(\"tool-form-workflow::postchange()\", \"Received new model.\", data);\n process.resolve();\n },\n error: function(response) {\n Galaxy.emit.debug(\"tool-form-workflow::postchange()\", \"Refresh request failed.\", response);\n process.reject();\n }\n });\n }\n })\n );\n },\n\n _customize: function(form) {\n var options = form.model.attributes;\n Utils.deepeach(options.inputs, input => {\n if (input.type) {\n if ([\"data\", \"data_collection\"].indexOf(input.type) != -1) {\n input.type = \"hidden\";\n input.info = `Data input '${input.name}' (${Utils.textify(input.extensions)})`;\n input.value = { __class__: \"RuntimeValue\" };\n } else if (!input.fixed) {\n input.collapsible_value = {\n __class__: \"RuntimeValue\"\n };\n input.is_workflow =\n (input.options && input.options.length === 0) || [\"integer\", \"float\"].indexOf(input.type) != -1;\n }\n }\n });\n Utils.deepeach(options.inputs, input => {\n if (input.type === \"conditional\") {\n input.test_param.collapsible_value = undefined;\n }\n });\n _addSections(form);\n _addLabelAnnotation(form);\n }\n});\n\n/** Augments the module form definition by adding label and annotation fields */\nfunction _addLabelAnnotation(form) {\n var options = form.model.attributes;\n var workflow = options.workflow;\n var node = options.node;\n options.inputs.unshift({\n type: \"text\",\n name: \"__annotation\",\n label: \"Annotation\",\n fixed: true,\n value: node.annotation,\n area: true,\n help: \"Add an annotation or notes to this step. Annotations are available when a workflow is viewed.\"\n });\n options.inputs.unshift({\n type: \"text\",\n name: \"__label\",\n label: \"Label\",\n value: node.label,\n help: \"Add a step label.\",\n fixed: true,\n onchange: function(new_label) {\n var duplicate = false;\n for (var i in workflow.nodes) {\n var n = workflow.nodes[i];\n if (n.label && n.label == new_label && n.id != node.id) {\n duplicate = true;\n break;\n }\n }\n var input_id = form.data.match(\"__label\");\n var input_element = form.element_list[input_id];\n input_element.model.set(\n \"error_text\",\n duplicate && \"Duplicate label. Please fix this before saving the workflow.\"\n );\n form.trigger(\"change\");\n }\n });\n}\n\n/** Visit input nodes and enrich by name/value pairs from server data */\nfunction _visit(head, head_list, output_id, options) {\n head_list = head_list || [];\n head_list.push(head);\n for (var i in head.inputs) {\n var input = head.inputs[i];\n var action = input.action;\n if (action) {\n input.name = `pja__${output_id}__${input.action}`;\n if (input.pja_arg) {\n input.name += `__${input.pja_arg}`;\n }\n if (input.payload) {\n for (var p_id in input.payload) {\n input.payload[`${input.name}__${p_id}`] = input.payload[p_id];\n delete input.payload[p_id];\n }\n }\n var d = options.node.post_job_actions[input.action + output_id];\n if (d) {\n for (var j in head_list) {\n head_list[j].expanded = true;\n }\n if (input.pja_arg) {\n input.value = (d.action_arguments && d.action_arguments[input.pja_arg]) || input.value;\n } else {\n input.value = \"true\";\n }\n }\n }\n if (input.inputs) {\n _visit(input, head_list.slice(0), output_id, options);\n }\n }\n}\n\n/** Builds sub section with step actions/annotation */\nfunction _makeSection(output_id, datatypes, options) {\n var extensions = [];\n var input_terminal_names = [];\n for (var key in datatypes) {\n extensions.push({ 0: datatypes[key], 1: datatypes[key] });\n }\n for (key in options.node.input_terminals) {\n input_terminal_names.push(options.node.input_terminals[key].name);\n }\n extensions.sort((a, b) => (a.label > b.label ? 1 : a.label < b.label ? -1 : 0));\n extensions.unshift({\n 0: \"Sequences\",\n 1: \"Sequences\"\n });\n extensions.unshift({\n 0: \"Roadmaps\",\n 1: \"Roadmaps\"\n });\n extensions.unshift({\n 0: \"Leave unchanged\",\n 1: \"__empty__\"\n });\n var output;\n var input_config = {\n title: `Configure Output: '${output_id}'`,\n type: \"section\",\n flat: true,\n inputs: [\n {\n label: \"Label\",\n type: \"text\",\n value: ((output = options.node.getWorkflowOutput(output_id)) && output.label) || \"\",\n help: \"This will provide a short name to describe the output - this must be unique across workflows.\",\n onchange: function(new_value) {\n options.workflow.attemptUpdateOutputLabel(options.node, output_id, new_value);\n }\n },\n {\n action: \"RenameDatasetAction\",\n pja_arg: \"newname\",\n label: \"Rename dataset\",\n type: \"text\",\n value: \"\",\n ignore: \"\",\n help: `This action will rename the output dataset. Click here for more information. Valid inputs are: ${input_terminal_names.join(\n \", \"\n )}.`\n },\n {\n action: \"ChangeDatatypeAction\",\n pja_arg: \"newtype\",\n label: \"Change datatype\",\n type: \"select\",\n ignore: \"__empty__\",\n value: \"__empty__\",\n options: extensions,\n help: \"This action will change the datatype of the output to the indicated value.\"\n },\n {\n action: \"TagDatasetAction\",\n pja_arg: \"tags\",\n label: \"Add Tags\",\n type: \"text\",\n value: \"\",\n ignore: \"\",\n help: \"This action will set tags for the dataset.\"\n },\n {\n action: \"RemoveTagDatasetAction\",\n pja_arg: \"tags\",\n label: \"Remove Tags\",\n type: \"text\",\n value: \"\",\n ignore: \"\",\n help: \"This action will remove tags for the dataset.\"\n },\n {\n title: \"Assign columns\",\n type: \"section\",\n flat: true,\n inputs: [\n {\n action: \"ColumnSetAction\",\n pja_arg: \"chromCol\",\n label: \"Chrom column\",\n type: \"integer\",\n value: \"\",\n ignore: \"\"\n },\n {\n action: \"ColumnSetAction\",\n pja_arg: \"startCol\",\n label: \"Start column\",\n type: \"integer\",\n value: \"\",\n ignore: \"\"\n },\n {\n action: \"ColumnSetAction\",\n pja_arg: \"endCol\",\n label: \"End column\",\n type: \"integer\",\n value: \"\",\n ignore: \"\"\n },\n {\n action: \"ColumnSetAction\",\n pja_arg: \"strandCol\",\n label: \"Strand column\",\n type: \"integer\",\n value: \"\",\n ignore: \"\"\n },\n {\n action: \"ColumnSetAction\",\n pja_arg: \"nameCol\",\n label: \"Name column\",\n type: \"integer\",\n value: \"\",\n ignore: \"\"\n }\n ],\n help: \"This action will set column assignments in the output dataset. Blank fields are ignored.\"\n }\n ]\n };\n _visit(input_config, [], output_id, options);\n return input_config;\n}\n\n/** Builds all sub sections */\nfunction _addSections(form) {\n var options = form.model.attributes;\n var inputs = options.inputs;\n var datatypes = options.datatypes;\n var node = options.node;\n var post_job_actions = node.post_job_actions;\n var output_id = node.output_terminals && Object.keys(node.output_terminals)[0];\n\n if (output_id) {\n inputs.push({\n name: `pja__${output_id}__EmailAction`,\n label: \"Email notification\",\n type: \"boolean\",\n value: String(Boolean(post_job_actions[`EmailAction${output_id}`])),\n ignore: \"false\",\n help: \"An email notification will be sent when the job has completed.\",\n payload: {\n host: window.location.host\n }\n });\n inputs.push({\n name: `pja__${output_id}__DeleteIntermediatesAction`,\n label: \"Output cleanup\",\n type: \"boolean\",\n value: String(Boolean(post_job_actions[`DeleteIntermediatesAction${output_id}`])),\n ignore: \"false\",\n help:\n \"Upon completion of this step, delete non-starred outputs from completed workflow steps if they are no longer required as inputs.\"\n });\n for (var i in node.output_terminals) {\n inputs.push(_makeSection(i, datatypes, options));\n }\n }\n}\n\nexport default {\n Default: Default,\n Tool: Tool\n};\n"]}
\ No newline at end of file
+{"version":3,"sources":["mvc/workflow/workflow-forms.js"],"names":["_addLabelAnnotation","deepeach","options","form","input","type","test_param","node","inputs","unshift","_addSections","label","fixed","value","annotation","area","help","workflow","name","i","nodes","n","new_label","id","duplicate","data","match","element_list","input_id","model","set","trigger","_visit","head","input_element","post_job_actions","push","action","head_list","pja_arg","payload","p_id","d","expanded","action_arguments","output_id","_makeSection","extensions","datatypes","key","1","input_terminal_names","b","a","0","output","input_config","flat","getWorkflowOutput","new_value","title","onchange","join","ignore","attributes","output_terminals","Object","keys","host","String","Boolean","location","Default","Backbone","View","extend","initialize","self","this","_formView2","default","_utils2","merge","request","url","Galaxy","root","content_id","create","update_field_data","success","_toolFormBase2","text_enable","text_disable","initial_errors","cls","initialmodel","process","_customize","resolve","get","postchange","tool_id","version","$","current_state","buildmodel","config_form","tool_version","emit","debug","response","error","indexOf","info","textify","__class__","collapsible_value","is_workflow","length","undefined","Tool"],"mappings":"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","file":"../../../scripts/mvc/workflow/workflow-forms.js","sourcesContent":["import Utils from \"utils/utils\";\nimport Form from \"mvc/form/form-view\";\nimport ToolFormBase from \"mvc/tool/tool-form-base\";\n/** Default form wrapper for non-tool modules in the workflow editor. */\nvar Default = Backbone.View.extend({\n initialize: function(options) {\n var self = this;\n var node = options.node;\n this.form = new Form(\n Utils.merge(options, {\n onchange: function() {\n Utils.request({\n type: \"POST\",\n url: `${Galaxy.root}api/workflows/build_module`,\n data: {\n id: node.id,\n type: node.type,\n content_id: node.content_id,\n inputs: self.form.data.create()\n },\n success: function(data) {\n node.update_field_data(data);\n }\n });\n }\n })\n );\n _addLabelAnnotation(this.form);\n this.form.render();\n }\n});\n\n/** Tool form wrapper for the workflow editor. */\nvar Tool = Backbone.View.extend({\n initialize: function(options) {\n var self = this;\n var node = options.node;\n this.form = new ToolFormBase(\n Utils.merge(options, {\n text_enable: \"Set in Advance\",\n text_disable: \"Set at Runtime\",\n narrow: true,\n initial_errors: true,\n cls: \"ui-portlet-narrow\",\n initialmodel: function(process, form) {\n self._customize(form);\n process.resolve();\n },\n buildmodel: function(process, form) {\n form.model.get(\"postchange\")(process, form);\n },\n postchange: function(process, form) {\n var options = form.model.attributes;\n var current_state = {\n tool_id: options.id,\n tool_version: options.version,\n type: \"tool\",\n inputs: $.extend(true, {}, form.data.create())\n };\n Galaxy.emit.debug(\"tool-form-workflow::postchange()\", \"Sending current state.\", current_state);\n Utils.request({\n type: \"POST\",\n url: `${Galaxy.root}api/workflows/build_module`,\n data: current_state,\n success: function(data) {\n form.model.set(data.config_form);\n self._customize(form);\n form.update(data.config_form);\n form.errors(data.config_form);\n // This hasn't modified the workflow, just returned\n // module information for the tool to update the workflow\n // state stored on the client with. User needs to save\n // for this to take effect.\n node.update_field_data(data);\n Galaxy.emit.debug(\"tool-form-workflow::postchange()\", \"Received new model.\", data);\n process.resolve();\n },\n error: function(response) {\n Galaxy.emit.debug(\"tool-form-workflow::postchange()\", \"Refresh request failed.\", response);\n process.reject();\n }\n });\n }\n })\n );\n },\n\n _customize: function(form) {\n var options = form.model.attributes;\n Utils.deepeach(options.inputs, input => {\n if (input.type) {\n if ([\"data\", \"data_collection\"].indexOf(input.type) != -1) {\n input.type = \"hidden\";\n input.info = `Data input '${input.name}' (${Utils.textify(input.extensions)})`;\n input.value = { __class__: \"RuntimeValue\" };\n } else if (!input.fixed) {\n input.collapsible_value = {\n __class__: \"RuntimeValue\"\n };\n input.is_workflow =\n (input.options && input.options.length === 0) || [\"integer\", \"float\"].indexOf(input.type) != -1;\n }\n }\n });\n Utils.deepeach(options.inputs, input => {\n if (input.type === \"conditional\") {\n input.test_param.collapsible_value = undefined;\n }\n });\n _addSections(form);\n _addLabelAnnotation(form);\n }\n});\n\n/** Augments the module form definition by adding label and annotation fields */\nfunction _addLabelAnnotation(form) {\n var options = form.model.attributes;\n var workflow = options.workflow;\n var node = options.node;\n options.inputs.unshift({\n type: \"text\",\n name: \"__annotation\",\n label: \"Annotation\",\n fixed: true,\n value: node.annotation,\n area: true,\n help: \"Add an annotation or notes to this step. Annotations are available when a workflow is viewed.\"\n });\n options.inputs.unshift({\n type: \"text\",\n name: \"__label\",\n label: \"Label\",\n value: node.label,\n help: \"Add a step label.\",\n fixed: true,\n onchange: function(new_label) {\n var duplicate = false;\n for (var i in workflow.nodes) {\n var n = workflow.nodes[i];\n if (n.label && n.label == new_label && n.id != node.id) {\n duplicate = true;\n break;\n }\n }\n var input_id = form.data.match(\"__label\");\n var input_element = form.element_list[input_id];\n input_element.model.set(\n \"error_text\",\n duplicate && \"Duplicate label. Please fix this before saving the workflow.\"\n );\n form.trigger(\"change\");\n }\n });\n}\n\n/** Visit input nodes and enrich by name/value pairs from server data */\nfunction _visit(head, head_list, output_id, options) {\n var post_job_actions = options.node.post_job_actions;\n head_list = head_list || [];\n head_list.push(head);\n for (var i in head.inputs) {\n var input = head.inputs[i];\n var action = input.action;\n if (action) {\n input.name = `pja__${output_id}__${input.action}`;\n if (input.pja_arg) {\n input.name += `__${input.pja_arg}`;\n }\n if (input.payload) {\n for (var p_id in input.payload) {\n input.payload[`${input.name}__${p_id}`] = input.payload[p_id];\n delete input.payload[p_id];\n }\n }\n var d = post_job_actions[input.action + output_id];\n if (d) {\n for (var j in head_list) {\n head_list[j].expanded = true;\n }\n if (input.pja_arg) {\n input.value = (d.action_arguments && d.action_arguments[input.pja_arg]) || input.value;\n } else {\n input.value = \"true\";\n }\n }\n }\n if (input.inputs) {\n _visit(input, head_list.slice(0), output_id, options);\n }\n }\n}\n\n/** Builds sub section with step actions/annotation */\nfunction _makeSection(output_id, options) {\n var extensions = [];\n var input_terminal_names = [];\n var datatypes = options.datatypes;\n var node = options.node;\n var workflow = options.workflow;\n\n for (var key in datatypes) {\n extensions.push({ 0: datatypes[key], 1: datatypes[key] });\n }\n for (key in node.input_terminals) {\n input_terminal_names.push(node.input_terminals[key].name);\n }\n extensions.sort((a, b) => (a.label > b.label ? 1 : a.label < b.label ? -1 : 0));\n extensions.unshift({\n 0: \"Sequences\",\n 1: \"Sequences\"\n });\n extensions.unshift({\n 0: \"Roadmaps\",\n 1: \"Roadmaps\"\n });\n extensions.unshift({\n 0: \"Leave unchanged\",\n 1: \"__empty__\"\n });\n var output;\n var input_config = {\n title: `Configure Output: '${output_id}'`,\n type: \"section\",\n flat: true,\n inputs: [\n {\n label: \"Label\",\n type: \"text\",\n value: ((output = node.getWorkflowOutput(output_id)) && output.label) || \"\",\n help: \"This will provide a short name to describe the output - this must be unique across workflows.\",\n onchange: function(new_value) {\n workflow.attemptUpdateOutputLabel(node, output_id, new_value);\n }\n },\n {\n action: \"RenameDatasetAction\",\n pja_arg: \"newname\",\n label: \"Rename dataset\",\n type: \"text\",\n value: \"\",\n ignore: \"\",\n help: `This action will rename the output dataset. Click here for more information. Valid inputs are: ${input_terminal_names.join(\n \", \"\n )}.`\n },\n {\n action: \"ChangeDatatypeAction\",\n pja_arg: \"newtype\",\n label: \"Change datatype\",\n type: \"select\",\n ignore: \"__empty__\",\n value: \"__empty__\",\n options: extensions,\n help: \"This action will change the datatype of the output to the indicated value.\"\n },\n {\n action: \"TagDatasetAction\",\n pja_arg: \"tags\",\n label: \"Add Tags\",\n type: \"text\",\n value: \"\",\n ignore: \"\",\n help: \"This action will set tags for the dataset.\"\n },\n {\n action: \"RemoveTagDatasetAction\",\n pja_arg: \"tags\",\n label: \"Remove Tags\",\n type: \"text\",\n value: \"\",\n ignore: \"\",\n help: \"This action will remove tags for the dataset.\"\n },\n {\n title: \"Assign columns\",\n type: \"section\",\n flat: true,\n inputs: [\n {\n action: \"ColumnSetAction\",\n pja_arg: \"chromCol\",\n label: \"Chrom column\",\n type: \"integer\",\n value: \"\",\n ignore: \"\"\n },\n {\n action: \"ColumnSetAction\",\n pja_arg: \"startCol\",\n label: \"Start column\",\n type: \"integer\",\n value: \"\",\n ignore: \"\"\n },\n {\n action: \"ColumnSetAction\",\n pja_arg: \"endCol\",\n label: \"End column\",\n type: \"integer\",\n value: \"\",\n ignore: \"\"\n },\n {\n action: \"ColumnSetAction\",\n pja_arg: \"strandCol\",\n label: \"Strand column\",\n type: \"integer\",\n value: \"\",\n ignore: \"\"\n },\n {\n action: \"ColumnSetAction\",\n pja_arg: \"nameCol\",\n label: \"Name column\",\n type: \"integer\",\n value: \"\",\n ignore: \"\"\n }\n ],\n help: \"This action will set column assignments in the output dataset. Blank fields are ignored.\"\n }\n ]\n };\n _visit(input_config, [], output_id, options);\n return input_config;\n}\n\n/** Builds all sub sections */\nfunction _addSections(form) {\n var options = form.model.attributes;\n var inputs = options.inputs;\n var node = options.node;\n var post_job_actions = node.post_job_actions;\n var output_id = node.output_terminals && Object.keys(node.output_terminals)[0];\n\n if (output_id) {\n inputs.push({\n name: `pja__${output_id}__EmailAction`,\n label: \"Email notification\",\n type: \"boolean\",\n value: String(Boolean(post_job_actions[`EmailAction${output_id}`])),\n ignore: \"false\",\n help: \"An email notification will be sent when the job has completed.\",\n payload: {\n host: window.location.host\n }\n });\n inputs.push({\n name: `pja__${output_id}__DeleteIntermediatesAction`,\n label: \"Output cleanup\",\n type: \"boolean\",\n value: String(Boolean(post_job_actions[`DeleteIntermediatesAction${output_id}`])),\n ignore: \"false\",\n help:\n \"Upon completion of this step, delete non-starred outputs from completed workflow steps if they are no longer required as inputs.\"\n });\n for (var i in node.output_terminals) {\n inputs.push(_makeSection(i, options));\n }\n }\n}\n\nexport default {\n Default: Default,\n Tool: Tool\n};\n"]}
\ No newline at end of file
diff --git a/static/scripts/mvc/workflow/workflow-forms.js b/static/scripts/mvc/workflow/workflow-forms.js
index c878c9bfb6e..1774d655357 100644
--- a/static/scripts/mvc/workflow/workflow-forms.js
+++ b/static/scripts/mvc/workflow/workflow-forms.js
@@ -1,2 +1,2 @@
-define("mvc/workflow/workflow-forms",["exports","utils/utils","mvc/form/form-view","mvc/tool/tool-form-base"],function(e,t,a,o){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=e.model.attributes,a=t.workflow,o=t.node;t.inputs.unshift({type:"text",name:"__annotation",label:"Annotation",fixed:!0,value:o.annotation,area:!0,help:"Add an annotation or notes to this step. Annotations are available when a workflow is viewed."}),t.inputs.unshift({type:"text",name:"__label",label:"Label",value:o.label,help:"Add a step label.",fixed:!0,onchange:function(t){var n=!1;for(var i in a.nodes){var l=a.nodes[i];if(l.label&&l.label==t&&l.id!=o.id){n=!0;break}}var r=e.data.match("__label");e.element_list[r].model.set("error_text",n&&"Duplicate label. Please fix this before saving the workflow."),e.trigger("change")}})}function l(e,t,a,o){(t=t||[]).push(e);for(var n in e.inputs){var i=e.inputs[n];if(i.action){if(i.name="pja__"+a+"__"+i.action,i.pja_arg&&(i.name+="__"+i.pja_arg),i.payload)for(var r in i.payload)i.payload[i.name+"__"+r]=i.payload[r],delete i.payload[r];var s=o.node.post_job_actions[i.action+a];if(s){for(var u in t)t[u].expanded=!0;i.pja_arg?i.value=s.action_arguments&&s.action_arguments[i.pja_arg]||i.value:i.value="true"}}i.inputs&&l(i,t.slice(0),a,o)}}function r(e,t,a){var o=[],n=[];for(var i in t)o.push({0:t[i],1:t[i]});for(i in a.node.input_terminals)n.push(a.node.input_terminals[i].name);o.sort(function(e,t){return e.label>t.label?1:e.labelhere for more information. Valid inputs are: '+n.join(", ")+"."},{action:"ChangeDatatypeAction",pja_arg:"newtype",label:"Change datatype",type:"select",ignore:"__empty__",value:"__empty__",options:o,help:"This action will change the datatype of the output to the indicated value."},{action:"TagDatasetAction",pja_arg:"tags",label:"Add Tags",type:"text",value:"",ignore:"",help:"This action will set tags for the dataset."},{action:"RemoveTagDatasetAction",pja_arg:"tags",label:"Remove Tags",type:"text",value:"",ignore:"",help:"This action will remove tags for the dataset."},{title:"Assign columns",type:"section",flat:!0,inputs:[{action:"ColumnSetAction",pja_arg:"chromCol",label:"Chrom column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",pja_arg:"startCol",label:"Start column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",pja_arg:"endCol",label:"End column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",pja_arg:"strandCol",label:"Strand column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",pja_arg:"nameCol",label:"Name column",type:"integer",value:"",ignore:""}],help:"This action will set column assignments in the output dataset. Blank fields are ignored."}]};return l(s,[],e,a),s}function s(e){var t=e.model.attributes,a=t.inputs,o=t.datatypes,n=t.node,i=n.post_job_actions,l=n.output_terminals&&Object.keys(n.output_terminals)[0];if(l){a.push({name:"pja__"+l+"__EmailAction",label:"Email notification",type:"boolean",value:String(Boolean(i["EmailAction"+l])),ignore:"false",help:"An email notification will be sent when the job has completed.",payload:{host:window.location.host}}),a.push({name:"pja__"+l+"__DeleteIntermediatesAction",label:"Output cleanup",type:"boolean",value:String(Boolean(i["DeleteIntermediatesAction"+l])),ignore:"false",help:"Upon completion of this step, delete non-starred outputs from completed workflow steps if they are no longer required as inputs."});for(var s in n.output_terminals)a.push(r(s,o,t))}}Object.defineProperty(e,"__esModule",{value:!0});var u=n(t),p=n(a),d=n(o),c=Backbone.View.extend({initialize:function(e){var t=this,a=e.node;this.form=new p.default(u.default.merge(e,{onchange:function(){u.default.request({type:"POST",url:Galaxy.root+"api/workflows/build_module",data:{id:a.id,type:a.type,content_id:a.content_id,inputs:t.form.data.create()},success:function(e){a.update_field_data(e)}})}})),i(this.form),this.form.render()}}),f=Backbone.View.extend({initialize:function(e){var t=this,a=e.node;this.form=new d.default(u.default.merge(e,{text_enable:"Set in Advance",text_disable:"Set at Runtime",narrow:!0,initial_errors:!0,cls:"ui-portlet-narrow",initialmodel:function(e,a){t._customize(a),e.resolve()},buildmodel:function(e,t){t.model.get("postchange")(e,t)},postchange:function(e,o){var n=o.model.attributes,i={tool_id:n.id,tool_version:n.version,type:"tool",inputs:$.extend(!0,{},o.data.create())};Galaxy.emit.debug("tool-form-workflow::postchange()","Sending current state.",i),u.default.request({type:"POST",url:Galaxy.root+"api/workflows/build_module",data:i,success:function(n){o.model.set(n.config_form),t._customize(o),o.update(n.config_form),o.errors(n.config_form),a.update_field_data(n),Galaxy.emit.debug("tool-form-workflow::postchange()","Received new model.",n),e.resolve()},error:function(t){Galaxy.emit.debug("tool-form-workflow::postchange()","Refresh request failed.",t),e.reject()}})}}))},_customize:function(e){var t=e.model.attributes;u.default.deepeach(t.inputs,function(e){e.type&&(-1!=["data","data_collection"].indexOf(e.type)?(e.type="hidden",e.info="Data input '"+e.name+"' ("+u.default.textify(e.extensions)+")",e.value={__class__:"RuntimeValue"}):e.fixed||(e.collapsible_value={__class__:"RuntimeValue"},e.is_workflow=e.options&&0===e.options.length||-1!=["integer","float"].indexOf(e.type)))}),u.default.deepeach(t.inputs,function(e){"conditional"===e.type&&(e.test_param.collapsible_value=void 0)}),s(e),i(e)}});e.default={Default:c,Tool:f}});
+define("mvc/workflow/workflow-forms",["exports","utils/utils","mvc/form/form-view","mvc/tool/tool-form-base"],function(e,t,a,o){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=e.model.attributes,a=t.workflow,o=t.node;t.inputs.unshift({type:"text",name:"__annotation",label:"Annotation",fixed:!0,value:o.annotation,area:!0,help:"Add an annotation or notes to this step. Annotations are available when a workflow is viewed."}),t.inputs.unshift({type:"text",name:"__label",label:"Label",value:o.label,help:"Add a step label.",fixed:!0,onchange:function(t){var n=!1;for(var i in a.nodes){var l=a.nodes[i];if(l.label&&l.label==t&&l.id!=o.id){n=!0;break}}var r=e.data.match("__label");e.element_list[r].model.set("error_text",n&&"Duplicate label. Please fix this before saving the workflow."),e.trigger("change")}})}function l(e,t,a,o){var n=o.node.post_job_actions;(t=t||[]).push(e);for(var i in e.inputs){var r=e.inputs[i];if(r.action){if(r.name="pja__"+a+"__"+r.action,r.pja_arg&&(r.name+="__"+r.pja_arg),r.payload)for(var s in r.payload)r.payload[r.name+"__"+s]=r.payload[s],delete r.payload[s];var u=n[r.action+a];if(u){for(var p in t)t[p].expanded=!0;r.pja_arg?r.value=u.action_arguments&&u.action_arguments[r.pja_arg]||r.value:r.value="true"}}r.inputs&&l(r,t.slice(0),a,o)}}function r(e,t){var a=[],o=[],n=t.datatypes,i=t.node,r=t.workflow;for(var s in n)a.push({0:n[s],1:n[s]});for(s in i.input_terminals)o.push(i.input_terminals[s].name);a.sort(function(e,t){return e.label>t.label?1:e.labelhere for more information. Valid inputs are: '+o.join(", ")+"."},{action:"ChangeDatatypeAction",pja_arg:"newtype",label:"Change datatype",type:"select",ignore:"__empty__",value:"__empty__",options:a,help:"This action will change the datatype of the output to the indicated value."},{action:"TagDatasetAction",pja_arg:"tags",label:"Add Tags",type:"text",value:"",ignore:"",help:"This action will set tags for the dataset."},{action:"RemoveTagDatasetAction",pja_arg:"tags",label:"Remove Tags",type:"text",value:"",ignore:"",help:"This action will remove tags for the dataset."},{title:"Assign columns",type:"section",flat:!0,inputs:[{action:"ColumnSetAction",pja_arg:"chromCol",label:"Chrom column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",pja_arg:"startCol",label:"Start column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",pja_arg:"endCol",label:"End column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",pja_arg:"strandCol",label:"Strand column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",pja_arg:"nameCol",label:"Name column",type:"integer",value:"",ignore:""}],help:"This action will set column assignments in the output dataset. Blank fields are ignored."}]};return l(p,[],e,t),p}function s(e){var t=e.model.attributes,a=t.inputs,o=t.node,n=o.post_job_actions,i=o.output_terminals&&Object.keys(o.output_terminals)[0];if(i){a.push({name:"pja__"+i+"__EmailAction",label:"Email notification",type:"boolean",value:String(Boolean(n["EmailAction"+i])),ignore:"false",help:"An email notification will be sent when the job has completed.",payload:{host:window.location.host}}),a.push({name:"pja__"+i+"__DeleteIntermediatesAction",label:"Output cleanup",type:"boolean",value:String(Boolean(n["DeleteIntermediatesAction"+i])),ignore:"false",help:"Upon completion of this step, delete non-starred outputs from completed workflow steps if they are no longer required as inputs."});for(var l in o.output_terminals)a.push(r(l,t))}}Object.defineProperty(e,"__esModule",{value:!0});var u=n(t),p=n(a),d=n(o),c=Backbone.View.extend({initialize:function(e){var t=this,a=e.node;this.form=new p.default(u.default.merge(e,{onchange:function(){u.default.request({type:"POST",url:Galaxy.root+"api/workflows/build_module",data:{id:a.id,type:a.type,content_id:a.content_id,inputs:t.form.data.create()},success:function(e){a.update_field_data(e)}})}})),i(this.form),this.form.render()}}),f=Backbone.View.extend({initialize:function(e){var t=this,a=e.node;this.form=new d.default(u.default.merge(e,{text_enable:"Set in Advance",text_disable:"Set at Runtime",narrow:!0,initial_errors:!0,cls:"ui-portlet-narrow",initialmodel:function(e,a){t._customize(a),e.resolve()},buildmodel:function(e,t){t.model.get("postchange")(e,t)},postchange:function(e,o){var n=o.model.attributes,i={tool_id:n.id,tool_version:n.version,type:"tool",inputs:$.extend(!0,{},o.data.create())};Galaxy.emit.debug("tool-form-workflow::postchange()","Sending current state.",i),u.default.request({type:"POST",url:Galaxy.root+"api/workflows/build_module",data:i,success:function(n){o.model.set(n.config_form),t._customize(o),o.update(n.config_form),o.errors(n.config_form),a.update_field_data(n),Galaxy.emit.debug("tool-form-workflow::postchange()","Received new model.",n),e.resolve()},error:function(t){Galaxy.emit.debug("tool-form-workflow::postchange()","Refresh request failed.",t),e.reject()}})}}))},_customize:function(e){var t=e.model.attributes;u.default.deepeach(t.inputs,function(e){e.type&&(-1!=["data","data_collection"].indexOf(e.type)?(e.type="hidden",e.info="Data input '"+e.name+"' ("+u.default.textify(e.extensions)+")",e.value={__class__:"RuntimeValue"}):e.fixed||(e.collapsible_value={__class__:"RuntimeValue"},e.is_workflow=e.options&&0===e.options.length||-1!=["integer","float"].indexOf(e.type)))}),u.default.deepeach(t.inputs,function(e){"conditional"===e.type&&(e.test_param.collapsible_value=void 0)}),s(e),i(e)}});e.default={Default:c,Tool:f}});
//# sourceMappingURL=../../../maps/mvc/workflow/workflow-forms.js.map