8876: remove some job specific bits and make them generic
[arvados.git] / apps / workbench / app / views / work_unit / _component_detail.html.erb
1       <div class="container">
2         <div class="row">
3           <div class="col-md-5">
4             <table>
5               <% [:uuid, :modified_by_user_uuid, :created_at, :started_at, :finished_at, :output, :priority].each do |k| %>
6                 <% val = current_obj.send(k) if current_obj.respond_to?(k) %>
7                 <% if val %>
8                 <tr>
9                   <td style="padding-right: 1em">
10                     <%= k.to_s %>:
11                   </td>
12                   <td>
13                     <% if k == :uuid %>
14                       <%= link_to_arvados_object_if_readable(val, val, link_text: val) %>
15                     <% elsif k.to_s.end_with? 'uuid' %>
16                       <%= link_to_arvados_object_if_readable(val, val, friendly_name: true) %>
17                     <% elsif k.to_s.end_with? '_at' %>
18                       <%= render_localized_date(val) %>
19                     <% elsif k == :output %>
20                       <%= link_to_arvados_object_if_readable(val, 'Output data not available', friendly_name: true) %>
21                     <% else %>
22                       <%= val %>
23                     <% end %>
24                   </td>
25                 </tr>
26                 <% end %>
27               <% end %>
28             </table>
29           </div>
30           <div class="col-md-6">
31             <table>
32               <% # link to repo tree/file only if the repo is readable
33                  # and the commit is a sha1...
34                  repo =
35                  (/^[0-9a-f]{40}$/ =~ current_obj.script_version and
36                  Repository.where(name: current_obj.repository).first)
37
38                  # ...and the api server provides an http:// or https:// url
39                  repo = nil unless repo.andand.http_fetch_url
40                  %>
41               <% [:script, :repository, :script_version, :supplied_script_version, :nondeterministic].each do |k| %>
42                 <% val = current_obj.send(k) if current_obj.respond_to?(k) %>
43                 <% if val %>
44                 <tr>
45                   <td style="padding-right: 1em">
46                     <%= k.to_s %>:
47                   </td>
48                   <td>
49                     <% if repo and k == :repository %>
50                       <%= link_to val, show_repository_tree_path(id: repo.uuid, commit: current_obj.script_version, path: '/') %>
51                     <% elsif repo and k == :script %>
52                       <%= link_to val, show_repository_blob_path(id: repo.uuid, commit: current_obj.script_version, path: 'crunch_scripts/'+current_obj.script) %>
53                     <% elsif repo and k == :script_version %>
54                       <%= link_to val, show_repository_commit_path(id: repo.uuid, commit: current_obj.script_version) %>
55                     <% else %>
56                       <%= val %>
57                     <% end %>
58                   </td>
59                 </tr>
60                 <% end %>
61               <% end %>
62               <% if current_obj.runtime_constraints.andand[:docker_image] and current_obj.docker_image %>
63                 <tr>
64                   <td style="padding-right: 1em">
65                     docker_image:
66                   </td>
67                   <td>
68                     <%= current_obj.runtime_constraints[:docker_image] %>
69                   </td>
70                 </tr>
71                 <tr>
72                   <td style="padding-right: 1em">
73                     docker_image_locator:
74                   </td>
75                   <td>
76                     <%= link_to_arvados_object_if_readable(current_obj.docker_image,
77                       current_obj.docker_image, friendly_name: true) %>
78                   </td>
79                 </tr>
80               <% end %>
81             </table>
82           </div>
83         </div>
84
85         <% if current_obj.parameters and !current_obj.parameters.empty? %>
86         <div class="row">
87           <div class="col-md-6">
88             <p>script_parameters:</p>
89             <pre><%= JSON.pretty_generate(current_obj.parameters) rescue nil %></pre>
90           </div>
91         </div>
92         <% end %>
93       </div>