e67772f7f92625e2b88ed1649d2ab7bfec693c14
[arvados.git] / apps / workbench / app / views / users / home.html.erb
1 <% content_for :head do %>
2     <style>
3       .dash-list {
4         padding: 9px 0;
5       }
6       .dash-list>ul>li>a>span {
7       min-width: 1.5em;
8       margin-left: auto;
9       margin-right: auto;
10       }
11       .job-table td {
12       overflow-x: hidden;
13       }
14       .centerme {
15       margin-left: auto;
16       margin-right: auto;
17       text-align: center;
18       }
19       .bigfatnumber {
20       font-size: 4em;
21       font-weight: bold;
22       }
23     </style>
24 <% end %>
25
26 <% if current_user.andand.is_active %>
27 <div class="row-fluid">
28   <div class="col span12">
29     <div class="clearfix">
30       <h4>Account summary</h4>
31       <div class="well clearfix">
32         <% [Human, Trait, Collection, 'File', PipelineTemplate, PipelineInstance].each do |aclass| %>
33         <div class="col span2 centerme">
34           <span class="bigfatnumber">
35             <% if aclass == 'File' %>
36             <%= Collection.limit(4000).where({}).collect(&:files).flatten(1).count %>
37             <% else %>
38             <%= aclass.limit(4000).where({}).count %>
39             <% end %>
40           </span>
41           <br />
42           <%= raw(aclass.to_s.pluralize.underscore.gsub '_', '&nbsp;') %>
43         </div>
44         <% end %>
45       </div>
46     </div>
47   </div>
48 </div>
49 <% end %>
50
51 <div class="row-fluid">
52   <div class="col span3">
53     <div class="clearfix">
54       <% if not current_user.andand.is_active %>
55       <%= render partial: 'request_activation' %>
56       <% else %>
57       <h4>Configuration</h4>
58       <div class="well dash-list">
59         <ul class="nav nav-list">
60           <li class="clearfix">
61             <a href="<%= authorized_keys_path %>">
62               <span class="pull-left"><%= raw '&#x2714;' if @my_ssh_keys.any? %>&nbsp;</span>
63               SSH keys
64               <span class="pull-right"><%= @my_ssh_keys.count %></span>
65             </a>
66           </li>
67           <li class="clearfix">
68             <a href="<%= virtual_machines_path %>">
69               <span class="pull-left"><%= raw '&#x2714;' if @my_vm_perms.any? %>&nbsp;</span>
70               Virtual machines
71               <span class="pull-right"><%= @my_vm_perms.collect(&:head_uuid).uniq.count %></span>
72             </a>
73           </li>
74           <li class="clearfix">
75             <a href="<%= repositories_path %>">
76               <span class="pull-left"><%= raw '&#x2714;' if @my_repo_perms.any? %>&nbsp;</span>
77               Repositories
78               <span class="pull-right"><%= @my_repo_perms.collect(&:head_uuid).uniq.count %></span>
79             </a>
80           </li>
81         </ul>
82       </div>
83       <% end %>
84     </div>
85   </div>
86   <div class="col span4">
87     <div class="clearfix">
88       <h4>Quick links</h4>
89       <div class="well dash-list">
90         <ul class="nav nav-list">
91           <li><%= link_to "Introduction to Arvados", "https://arvados.org/projects/arvados/wiki/Introduction_to_Arvados" %></li>
92           <li><%= link_to "API Reference", "http://doc.arvados.org/api/" %></li>
93           <li><%= link_to "User Guide", "http://doc.arvados.org/api/" %></li>
94           <li><%= link_to "Tutorial 1: Your first job", "http://doc.arvados.org/user/tutorial-job1.html" %></li>
95           <li><%= link_to "Tutorial 2: GATK VariantFiltration", "http://doc.arvados.org/user/tutorial-gatk-variantfiltration.html" %></li>
96           <li><%= link_to "Tutorial 3: Search PGP data by trait", "http://doc.arvados.org/user/tutorial-trait-search.html" %></li>
97           <li><%= link_to "Tutorial 4: Create a new pipeline", "http://doc.arvados.org/user/tutorial-new-pipeline.html" %></li>
98         </ul>
99       </div>
100     </div>
101   </div>
102   <div class="col span5">
103     <div class="clearfix">
104       <h4>Recent jobs</h4>
105       <% if not current_user.andand.is_active or @my_jobs.empty? %>
106       (None)
107       <% else %>
108       <table class="table table-bordered table-condensed job-table">
109         <% @my_jobs[0..8].each do |j| %>
110         <tr>
111           <td>
112             <small>
113               <%= link_to j.script[0..31], job_path(j.uuid) %>
114             </small>
115           </td>
116           <td>
117             <small>
118               <%= j.script_version[0..7] %>
119             </small>
120           </td>
121           <td>
122             <small>
123               <%= j.script_parameters.andand[:input].andand.to_s.andand[0..7] %>
124             </small>
125           </td>
126           <td>
127             <% if j.success %>
128             <span class="label label-success">finished</span>
129             <% elsif j.success == false %>
130             <span class="label label-danger">failed</span>
131             <% elsif j.running and j.started_at and not j.finished_at %>
132             <% percent_total_tasks = 100 / (j.tasks_summary[:running] + j.tasks_summary[:done] + j.tasks_summary[:todo]) rescue 0 %>
133             <div class="progress" style="margin-bottom: 0">
134               <div class="bar bar-success" style="width: <%= j.tasks_summary[:done] * percent_total_tasks rescue 0 %>%;"></div>
135               <div class="bar" style="width: <%= j.tasks_summary[:running] * percent_total_tasks rescue 0 %>%; opacity: 0.3"></div>
136             </div>
137             <% else %>
138             <span class="label">queued</span>
139             <% end %>
140           </td>
141         </tr>
142         <% end %>
143       </table>
144       <%= link_to raw("Show more jobs / details &rarr;"), jobs_path, class: 'pull-right' %>
145       <% end %>
146     </div>
147   </div>
148 </div>