Improvements and bugfixes refs #2242.
[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 td.required {
25   background: #ffdddd;
26 }
27
28 <% end %>
29
30 <% template = PipelineTemplate.find(@object.pipeline_template_uuid) %>
31 <%= content_for :content_top do %>
32   <% if template %>
33     <h2><%= template.name %></h2>
34   <% end %>
35   
36 <% end %>
37
38 <% if @object.active != nil %>
39 <table class="table pipeline-components-table">
40   <colgroup>
41     <col style="width: 15%" />
42     <col style="width: 20%" />
43     <col style="width: 12%" />
44     <col style="width: 12%" />
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       </th><th>
58         output
59       </th>
60     </tr>
61   </thead>
62   <tbody>
63     <% render_pipeline_jobs.each do |pj| %>
64     <tr>
65       <td>
66         <% job_status = render(partial: 'job_status_label', 
67                                locals: { :j => pj[:job], :title => pj[:name] }) %>
68         <% if pj[:job].andand[:uuid] %>
69           <%= link_to(job_status, job_url(id: pj[:job][:uuid])) %>
70         <% else %>
71           <%= job_status %>
72         <% end %>
73       </td><td>
74         <%= pj[:script] %>
75         <br /><span class="deemphasize"><%= pj[:script_version] %></span>
76       </td><td>
77         <%= pj[:progress_bar] %>
78       </td><td>
79         <%= render(partial: 'job_status_label', 
80                                locals: { :j => pj[:job] }) %>
81       </td><td>
82         <%= link_to_if_arvados_object pj[:output] %>
83       </td>
84     </tr>
85     <% end %>
86   </tbody>
87   <tfoot>
88     <tr><td colspan="5"></td></tr>
89   </tfoot>
90 </table>
91
92 <% if @object.active %>
93 <% content_for :js do %>
94 setInterval(function(){$('a.refresh').click()}, 15000);
95 <% end %>
96 <% end %>
97
98 <% else %>
99
100   <p>Please set the desired input parameters for the components of this pipeline.  Parameters highlighted in red are required.</p>
101
102   <% content_for :tab_line_buttons do %>
103     <%= form_tag @object, :method => :put do |f| %>
104       
105       <%= hidden_field @object.class.to_s.underscore.singularize.to_sym, :active, :value => true %>
106
107       <%= button_tag "Run pipeline", {class: 'btn btn-primary pull-right', id: "run-pipeline-button"} %>
108     <% end %>
109   <% end %>
110
111 <table class="table pipeline-components-table" style="margin-top: -.1em">
112   <colgroup>
113     <col style="width: 15%" />
114     <col style="width: 20%" />
115     <col style="width: 20%" />
116     <col style="width: 45%" />
117   </colgroup>
118
119   <thead>
120     <tr>
121       <th>
122         component
123       </th><th>
124         script
125       </th><th>
126         parameter
127       </th><th>
128         value
129       </th>
130     </tr>
131   </thead>
132   <tbody>
133     <% template.components.each do |k, template_value| %>
134
135     <tr>
136       <td><span class="label label-default"><%= k %></span></td>
137
138       <td><%= render_editable_subattribute @object, :components, [k, :script], template_value[:script] %></td>
139
140       <td>script version</td>
141
142       <td>
143         <%= render_editable_subattribute @object, :components, [k, :script_version], template_value[:script_version] %>
144       </td>
145     </tr>
146
147     <% if template_value[:script_parameters].length > 0 %>
148       <% template_value[:script_parameters].each do |p, tv| %>
149         <tr>
150           <td style="border-top: none"></td>
151           <td style="border-top: none"></td>
152           
153           <td class="property-edit-row"><%= p %></td>
154           <td class="property-edit-row"><%= render_editable_subattribute @object, :components, [k, :script_parameters, p.to_sym], tv %></td>
155       <% end %>
156       </tr>
157     <% end %>
158   <% end %>
159   </tbody>
160   </table>
161   
162 <% end %>