1 <%= content_for :head do %>
3 <%# https://github.com/mbostock/d3/wiki/Ordinal-Scales %>
4 <% n=-1; %w(#1f77b4 #ff7f0e #2ca02c #d62728 #9467bd #8c564b #e377c2 #7f7f7f #bcbd22 #17becf).each do |color| %>
5 .colorseries-10-<%= n += 1 %>, .btn.colorseries-10-<%= n %>:hover {
6 *background-color: <%= color %>;
7 background-color: <%= color %>;
8 background-image: none;
11 .colorseries-nil { background-color: white }
15 <%= render :partial => 'nav' %>
17 <ul class="nav nav-tabs">
18 <li class="active"><a href="#files" data-toggle="tab">Files (<%= @object.files ? @object.files.size : 0 %>)</a></li>
19 <li><a href="#provenance" data-toggle="tab">Provenance (<%= @provenance.size %>)</a></li>
20 <li><a href="#jobs" data-toggle="tab">Jobs (<%= @provenance.size %>)</a></li>
21 <li><a href="#sourcedata" data-toggle="tab">Source data (<%= @sourcedata.size %>)</a></li>
24 <div class="tab-content">
25 <div id="files" class="tab-pane fade in active">
26 <table class="table table-bordered">
28 <tr><th style="text-align:right">size (bytes)</th><th>filename</th></tr>
30 <% if @object then @object.files.each do |file| %>
32 <td style="text-align:right">
33 <%= raw(human_readable_bytes_html(file[2])) %>
35 <%= file[0] %>/<%= file[1] %>
42 <div id="provenance" class="tab-pane fade">
43 <table class="topalign table table-bordered">
48 <% @provenance.reverse.each do |p| %>
54 <td style="padding-bottom: 3em">
55 <table class="table" style="margin-bottom: 0; background: #f0f0ff">
56 <% j.script_parameters.each do |k,v| %>
58 <td style="width: 60%">
59 <% re = v.match(/^([0-9a-f]+)/) %>
60 <% justhash = (re and re[1].length == 32) ? re[1] : nil %>
61 <% if justhash and @output2job.has_key? justhash %>
62 <tt class="btn colorseries-10-<%= @output2colorindex[v] %> deemphasize"><%= v %></tt>
64 <tt class="btn colorseries-nil deemphasize"><%= justhash %></tt><br /><span class="deemphasize"><%= v %></span>
66 <span class="deemphasize"><%= v %></span>
68 </td><td style="text-align: center; width: 20%">
70 if @protected[justhash]
74 btnclass = @output2job.has_key?(v) ? 'warning' : 'danger'
78 <tt class="btn btn-<%= btnclass %> deemphasize"><%= btntext %></tt>
80 </td><td style="width: 20%">
86 <div style="text-align: center">
89 <span class="btn deemphasize"><%= j.script %><br /><tt><%= link_to_if j.script_version.match(/[0-9a-f]{40}/), j.script_version, "https://redmine.clinicalfuture.com/projects/freefactories/repository/revisions/#{j.script_version}/entry/mapreduce/mr-#{j.script}" if j.script_version %></tt></span>
93 <tt class="btn colorseries-10-<%= @output2colorindex[p[:output]] %> deemphasize"><%= p[:output] %></tt>
97 <tt><span class="deemphasize">job:</span><br /><%= j.uuid %><br /><span class="deemphasize"><%= j.submit_id %></span></tt>
104 <span class="btn btn-danger">lookup fail</span>
106 <tt class="deemphasize"><%= p[:target] %></tt>
107 </td><td colspan="4">
117 <div id="jobs" class="tab-pane fade">
118 <table class="topalign table table-bordered">
120 <tr class="contain-align-left">
138 <% @provenance.reverse.each do |p| %>
145 <tt><%= j.uuid %></tt>
147 <tt class="deemphasize"><%= j.submit_id %></tt>
149 <%= j.script_version %>
151 <span class="btn <%= if j.success then 'btn-success'; elsif j.active then 'btn-primary'; else 'btn-warning'; end %>">
152 <%= j.success || j.active ? 'ok' : 'failed' %>
159 <% if j.started_at and j.finished_at %>
160 <%= raw(distance_of_time_in_words(j.started_at, j.finished_at).sub('about ','~').sub(' ',' ')) %>
161 <% elsif j.started_at and j.running %>
162 <%= raw(distance_of_time_in_words(j.started_at, Time.now).sub('about ','~').sub(' ',' ')) %> (running)
170 <span class="btn btn-danger">lookup fail</span>
172 <tt class="deemphasize"><%= p[:target] %></tt>
173 </td><td colspan="4">
183 <div id="sourcedata" class="tab-pane fade">
184 <table class="table table-bordered table-striped">
186 <tr class="contain-align-left">
189 </th><th class="data-size">
200 <% @sourcedata.values.each do |sourcedata| %>
202 <tr class="collection">
204 <span class="btn"><tt class="deemphasize"><%= sourcedata[:uuid] %></tt></span>
205 </td><td class="data-size">
206 <%= raw(human_readable_bytes_html(sourcedata[:collection].data_size)) if sourcedata[:collection] and sourcedata[:collection].data_size %>
208 <% if @protected[sourcedata[:uuid]] %>
209 <span class="btn btn-success">keep</span>
211 <span class="btn btn-danger">cache</span>
214 <% if sourcedata[:data_origins] %>
215 <% sourcedata[:data_origins].each do |data_origin| %>
216 <span class="deemphasize"><%= data_origin[0] %></span>
217 <%= data_origin[2] %>