Checkpoint, working on form to set component inputs.
[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 }
10
11 table.pipeline-components-table thead th {
12   text-align: bottom;
13 }
14 table.pipeline-components-table div.progress {
15   margin-bottom: 0;
16 }
17
18 <% end %>
19
20 <% if @object.active != nil %>
21 <table class="table pipeline-components-table">
22   <colgroup>
23     <col style="width: 15%" />
24     <col style="width: 35%" />
25     <col style="width: 15%" />
26     <col style="width: 35%" />
27   </colgroup>
28   <thead>
29     <tr>
30       <th>
31         component
32       </th><th>
33         script, version
34       </th><th>
35         progress
36         <%= link_to '(refresh)', request.fullpath, class: 'refresh', remote: true, method: 'get' %>
37       </th><th>
38         output
39       </th>
40     </tr>
41   </thead>
42   <tbody>
43     <% render_pipeline_jobs.each do |pj| %>
44     <tr>
45       <td>
46         <% if pj[:job].andand[:uuid] %>
47         <%= link_to pj[:name], job_url(id: pj[:job][:uuid]) %>
48         <% else %>
49         <%= pj[:name] %>
50         <% end %>
51       </td><td>
52         <%= pj[:script] %>
53         <br /><span class="deemphasize"><%= pj[:script_version] %></span>
54       </td><td>
55         <%= pj[:progress_bar] %>
56         <% if pj[:job].andand[:cancelled_at] %>
57         <span class="pull-right label label-warning">cancelled</span>
58         <% elsif pj[:failed] %>
59         <span class="pull-right label label-warning">failed</span>
60         <% elsif pj[:result] == 'queued' %>
61         <span class="pull-right label">queued</span>
62         <% end %>
63       </td><td>
64         <%= link_to_if_arvados_object pj[:output] %>
65       </td>
66     </tr>
67     <% end %>
68   </tbody>
69   <tfoot>
70     <tr><td colspan="4"></td></tr>
71   </tfoot>
72 </table>
73
74 <% if @object.active %>
75 <% content_for :js do %>
76 setInterval(function(){$('a.refresh').click()}, 30000);
77 <% end %>
78 <% end %>
79
80 <% else %>
81
82   <%= form_tag @object, :method => :put do |f| %>
83
84   <%= hidden_field @object.class.to_s.underscore.singularize.to_sym, :active, :value => true %>
85   <%= button_tag "Run pipeline", {class: 'btn btn-primary pull-right'} %>
86   <% end %>
87
88 <table class="table pipeline-components-table" style="margin-top: -.1em">
89   <colgroup>
90     <col style="width: 15%" />
91     <col style="width: 35%" />
92     <col style="width: 15%" />
93     <col style="width: 35%" />
94   </colgroup>
95
96   <thead>
97     <tr>
98       <th>
99         component
100       </th><th>
101         script, version
102       </th><th>
103         parameter
104       </th><th>
105         input
106       </th>
107     </tr>
108   </thead>
109   <tbody>
110   <% @object.components.each do |k, v| %>
111
112     <% sp = v[:script_parameters].collect do |k, v| [k, v] end %>
113
114     <tr>
115       <td><%= k %></td>
116
117       <td><%= v[:script] %>
118         <br /><span class="deemphasize"> <%= v[:script_version] %></span>
119       </td>
120
121       <td>
122         <%= sp[0][0] %>
123       </td>
124
125       <td>
126         <%= sp[0][1] %>
127       </td>
128       </tr>
129
130     <% if sp.length > 1 %>
131     <tr>
132       <td></td>
133       <td></td>
134
135       <% sp[1..-1].each do |p| %>
136         <%= p[0] %>
137         <%= p[1] %>
138       <% end %>
139     </tr>
140   <% end %>
141   <% end %>
142   </tbody>
143   </table>
144   
145 <% end %>