Pipeline parameter editing supports selection box for choosing from workbench persist...
[arvados.git] / apps / workbench / app / views / pipeline_instances / _show_components.html.erb
1 <% content_for :css do %>
2   .pipeline_color_legend {
3     padding-left: 1em;
4     padding-right: 1em;
5   }
6 table.pipeline-components-table {
7   width: 100%;
8   table-layout: fixed;
9   overflow: hidden;
10 }
11
12 table.pipeline-components-table thead th {
13   text-align: bottom;
14 }
15 table.pipeline-components-table div.progress {
16   margin-bottom: 0;
17 }
18
19 table.pipeline-components-table td {
20   overflow: hidden;
21   text-overflow: ellipsis;
22 }
23
24 <% end %>
25
26 <% content_for :js do %>
27   function select_Collection_source() {
28     var ret = [];
29     var lst = get_selection_list();
30     for (var i = 0; i < lst.length; i++) {
31       if (lst[i].type == 'Collection') {
32         ret.push({text: lst[i].name, value: lst[i].uuid})
33       }
34     }
35     return ret;
36   };
37 <% end %>
38
39 <% if @object.active != nil %>
40 <table class="table pipeline-components-table">
41   <colgroup>
42     <col style="width: 15%" />
43     <col style="width: 20%" />
44     <col style="width: 20%" />
45     <col style="width: 45%" />
46   </colgroup>
47   <thead>
48     <tr>
49       <th>
50         component
51       </th><th>
52         script, version
53       </th><th>
54         progress
55         <%= link_to '(refresh)', request.fullpath, class: 'refresh', remote: true, method: 'get' %>
56       </th><th>
57         output
58       </th>
59     </tr>
60   </thead>
61   <tbody>
62     <% render_pipeline_jobs.each do |pj| %>
63     <tr>
64       <td>
65         <% if pj[:job].andand[:uuid] %>
66         <%= link_to pj[:name], job_url(id: pj[:job][:uuid]) %>
67         <% else %>
68         <%= pj[:name] %>
69         <% end %>
70       </td><td>
71         <%= pj[:script] %>
72         <br /><span class="deemphasize"><%= pj[:script_version] %></span>
73       </td><td>
74         <%= pj[:progress_bar] %>
75         <% if pj[:job].andand[:cancelled_at] %>
76         <span class="pull-right label label-warning">cancelled</span>
77         <% elsif pj[:failed] %>
78         <span class="pull-right label label-warning">failed</span>
79         <% elsif pj[:result] == 'queued' %>
80         <span class="pull-right label">queued</span>
81         <% end %>
82       </td><td>
83         <%= link_to_if_arvados_object pj[:output] %>
84       </td>
85     </tr>
86     <% end %>
87   </tbody>
88   <tfoot>
89     <tr><td colspan="4"></td></tr>
90   </tfoot>
91 </table>
92
93 <% if @object.active %>
94 <% content_for :js do %>
95 setInterval(function(){$('a.refresh').click()}, 30000);
96 <% end %>
97 <% end %>
98
99 <% else %>
100
101   <%= form_tag @object, :method => :put do |f| %>
102
103   <%= hidden_field @object.class.to_s.underscore.singularize.to_sym, :active, :value => true %>
104   <%= button_tag "Run pipeline", {class: 'btn btn-primary pull-right'} %>
105   <% end %>
106
107 <table class="table pipeline-components-table" style="margin-top: -.1em">
108   <colgroup>
109     <col style="width: 15%" />
110     <col style="width: 20%" />
111     <col style="width: 20%" />
112     <col style="width: 45%" />
113   </colgroup>
114
115   <thead>
116     <tr>
117       <th>
118         component
119       </th><th>
120         script, version
121       </th><th>
122         parameter
123       </th><th>
124         input
125       </th>
126     </tr>
127   </thead>
128   <tbody>
129     <% template = PipelineTemplate.find(@object.pipeline_template_uuid) %>
130     <% template.components.each do |k, v| %>
131
132     <% sp = v[:script_parameters].collect do |k, v| [k, v] end %>
133
134     <tr>
135       <td><%= k %></td>
136
137       <td><%= v[:script] %>
138         <br /><span class="deemphasize"> <%= v[:script_version] %></span>
139       </td>
140
141       <td>
142         <%= sp[0][0] %>
143       </td>
144
145       <td>
146         <%= render_editable_subattribute @object, :components, [k, :script_parameters, sp[0][0].to_sym], sp[0][1] %>
147       </td>
148       </tr>
149
150     <% if sp.length > 1 %>
151     <tr>
152       <td style="border-top: none"></td>
153       <td style="border-top: none"></td>
154
155       <% sp[1..-1].each do |p| %>
156         <td><%= p[0] %></td>
157         <td><%= p[1] %></td>
158       <% end %>
159     </tr>
160   <% end %>
161   <% end %>
162   </tbody>
163   </table>
164   
165 <% end %>