1 | <%inherit file="/display_base.mako"/> |
---|
2 | |
---|
3 | <%! |
---|
4 | from galaxy.tools.parameters import DataToolParameter, RuntimeValue |
---|
5 | from galaxy.web import form_builder |
---|
6 | %> |
---|
7 | |
---|
8 | <%def name="stylesheets()"> |
---|
9 | ${parent.stylesheets()} |
---|
10 | ${h.css( "workflow" )} |
---|
11 | </%def> |
---|
12 | |
---|
13 | <%def name="do_inputs( inputs, values, prefix, step, other_values=None )"> |
---|
14 | %for input_index, input in enumerate( inputs.itervalues() ): |
---|
15 | %if input.type == "repeat": |
---|
16 | <div class="repeat-group"> |
---|
17 | <div class="form-title-row"><b>${input.title_plural}</b></div> |
---|
18 | <% repeat_values = values[input.name] %> |
---|
19 | %for i in range( len( repeat_values ) ): |
---|
20 | <div class="repeat-group-item"> |
---|
21 | <% index = repeat_values[i]['__index__'] %> |
---|
22 | <div class="form-title-row"><b>${input.title} ${i + 1}</b></div> |
---|
23 | ${do_inputs( input.inputs, repeat_values[ i ], prefix + input.name + "_" + str(index) + "|", step, other_values )} |
---|
24 | </div> |
---|
25 | %endfor |
---|
26 | </div> |
---|
27 | %elif input.type == "conditional": |
---|
28 | <% group_values = values[input.name] %> |
---|
29 | <% current_case = group_values['__current_case__'] %> |
---|
30 | <% new_prefix = prefix + input.name + "|" %> |
---|
31 | ${row_for_param( input.test_param, group_values[ input.test_param.name ], other_values, prefix, step )} |
---|
32 | ${do_inputs( input.cases[ current_case ].inputs, group_values, new_prefix, step, other_values )} |
---|
33 | %else: |
---|
34 | ${row_for_param( input, values[ input.name ], other_values, prefix, step )} |
---|
35 | %endif |
---|
36 | %endfor |
---|
37 | </%def> |
---|
38 | |
---|
39 | <%def name="row_for_param( param, value, other_values, prefix, step )"> |
---|
40 | <% cls = "form-row" %> |
---|
41 | <div class="${cls}"> |
---|
42 | <label>${param.get_label()}</label> |
---|
43 | <div> |
---|
44 | %if isinstance( param, DataToolParameter ): |
---|
45 | %if ( prefix + param.name ) in step.input_connections_by_name: |
---|
46 | <% |
---|
47 | conn = step.input_connections_by_name[ prefix + param.name ] |
---|
48 | %> |
---|
49 | Output dataset '${conn.output_name}' from step ${int(conn.output_step.order_index)+1} |
---|
50 | %else: |
---|
51 | <i>select at runtime</i> |
---|
52 | %endif |
---|
53 | %else: |
---|
54 | ${param.value_to_display_text( value, app )} |
---|
55 | %endif |
---|
56 | </div> |
---|
57 | </div> |
---|
58 | </%def> |
---|
59 | |
---|
60 | |
---|
61 | <%def name="render_item_links( workflow )"> |
---|
62 | <a |
---|
63 | href="${h.url_for( controller='/workflow', action='imp', id=trans.security.encode_id(workflow.id) )}" |
---|
64 | class="icon-button import" |
---|
65 | ## Needed to overwide initial width so that link is floated left appropriately. |
---|
66 | style="width: 100%" |
---|
67 | title="Import workflow">Import workflow</a> |
---|
68 | </%def> |
---|
69 | |
---|
70 | <%def name="render_item( workflow, steps )"> |
---|
71 | <% |
---|
72 | # HACK: Rendering workflow steps requires that trans have a history; however, if it's user's first visit to Galaxy is here, he won't have a history |
---|
73 | # and an error will occur. To prevent this error, make sure user has a history. |
---|
74 | trans.get_history( create=True ) |
---|
75 | %> |
---|
76 | <table class="annotated-item"> |
---|
77 | <tr><th>Step</th><th class="annotation">Annotation</th></tr> |
---|
78 | %for i, step in enumerate( steps ): |
---|
79 | <tr><td> |
---|
80 | %if step.type == 'tool' or step.type is None: |
---|
81 | <% tool = app.toolbox.tools_by_id[step.tool_id] %> |
---|
82 | <div class="toolForm"> |
---|
83 | <div class="toolFormTitle">Step ${int(step.order_index)+1}: ${tool.name}</div> |
---|
84 | <div class="toolFormBody"> |
---|
85 | ${do_inputs( tool.inputs, step.state.inputs, "", step )} |
---|
86 | </div> |
---|
87 | </div> |
---|
88 | %else: |
---|
89 | ## TODO: always input dataset? |
---|
90 | <% module = step.module %> |
---|
91 | <div class="toolForm"> |
---|
92 | <div class="toolFormTitle">Step ${int(step.order_index)+1}: ${module.name}</div> |
---|
93 | <div class="toolFormBody"> |
---|
94 | ${do_inputs( module.get_runtime_inputs(), step.state.inputs, "", step )} |
---|
95 | </div> |
---|
96 | </div> |
---|
97 | %endif |
---|
98 | </td> |
---|
99 | <td class="annotation"> |
---|
100 | %if hasattr( step, "annotation") and step.annotation is not None: |
---|
101 | ${step.annotation} |
---|
102 | %endif |
---|
103 | </td> |
---|
104 | </tr> |
---|
105 | %endfor |
---|
106 | </table> |
---|
107 | </%def> |
---|