[ARVADOS] created: f4705620139af8c1d9032da8c0dacc71fe9085be

git at public.curoverse.com git at public.curoverse.com
Fri Dec 27 16:26:21 EST 2013


        at  f4705620139af8c1d9032da8c0dacc71fe9085be (commit)


commit f4705620139af8c1d9032da8c0dacc71fe9085be
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Fri Dec 27 16:26:40 2013 -0500

    Dashboard now consists of recent collections, jobs, and pipeline instances.

diff --git a/apps/workbench/app/controllers/users_controller.rb b/apps/workbench/app/controllers/users_controller.rb
index f48d3b2..002ea62 100644
--- a/apps/workbench/app/controllers/users_controller.rb
+++ b/apps/workbench/app/controllers/users_controller.rb
@@ -11,13 +11,24 @@ class UsersController < ApplicationController
 
   def home
     @my_ssh_keys = AuthorizedKey.where(authorized_user_uuid: current_user.uuid)
-    @my_vm_perms = Link.where(tail_uuid: current_user.uuid, head_kind: 'arvados#virtual_machine', link_class: 'permission', name: 'can_login')
-    @my_repo_perms = Link.where(tail_uuid: current_user.uuid, head_kind: 'arvados#repository', link_class: 'permission', name: 'can_write')
+    # @my_vm_perms = Link.where(tail_uuid: current_user.uuid, head_kind: 'arvados#virtual_machine', link_class: 'permission', name: 'can_login')
+    # @my_repo_perms = Link.where(tail_uuid: current_user.uuid, head_kind: 'arvados#repository', link_class: 'permission', name: 'can_write')
     @my_jobs = Job.
       limit(10).
       order('created_at desc').
       where(created_by: current_user.uuid)
 
+    @my_collections = Collection.
+      limit(10).
+      order('created_at desc').
+      where(created_by: current_user.uuid)
+
+    @my_pipelines = PipelineInstance.
+      limit(10).
+      order('created_at desc').
+      where(created_by: current_user.uuid)
+
+
     # A Tutorial is a Link which has link_class "resources" and name
     # "wants", and is owned by the Tutorials Group (i.e., named
     # "Arvados Tutorials" and owned by the system user).
diff --git a/apps/workbench/app/views/users/home.html.erb b/apps/workbench/app/views/users/home.html.erb
index 8cdb795..68897cd 100644
--- a/apps/workbench/app/views/users/home.html.erb
+++ b/apps/workbench/app/views/users/home.html.erb
@@ -8,8 +8,14 @@
       margin-left: auto;
       margin-right: auto;
       }
+      .job-table {
+      white-space: nowrap;
+      table-layout: fixed;
+      }
       .job-table td {
+      overflow: hidden;
       overflow-x: hidden;
+      text-overflow: ellipsis;
       }
       .centerme {
       margin-left: auto;
@@ -20,6 +26,14 @@
       font-size: 4em;
       font-weight: bold;
       }
+      .dax {
+      max-width: 5%;
+      margin-right: 1em;
+      float: left
+      }
+      .daxalert {
+      overflow: hidden;
+      }
     </style>
 <% end %>
 
@@ -27,10 +41,10 @@
 
 
 <% if @my_ssh_keys.count == 0%>
-  <div class="alert alert-info">
+  <div class="alert alert-info daxalert">
     <button type="button" class="close" data-dismiss="alert">×</button>
-    <div class="span5" style="overflow: hidden; margin-right: 1em">
-      <%= image_tag "dax.png", style: "max-width: 10%; margin-right: 1em; float: left" %>
+    <%= image_tag "dax.png", class: "dax" %>
+    <div class="span5" style="margin-right: 1em">
       Hi, I noticed that you have not yet set up an SSH public key for use with Arvados.  
       <%= link_to "Click here to learn about SSH keys in Arvados.",
 	  "http://doc.arvados.org/user/getting_started/ssh-access.html", style: "font-weight: bold" %>
@@ -39,16 +53,17 @@
     </div>
       <%= form_for AuthorizedKey.new do |f| %>
 	<%= hidden_field_tag :return_to, request.original_url %>
-	<%= f.text_area :public_key, cols: 50, rows: 4, placeholder: "Paste your public key here", style: "width: 45%" %>
+	<%= f.text_area :public_key, cols: 50, rows: 4, placeholder: "Paste your public key here", style: "width: 40%" %>
 	<%= f.submit :Save, value: raw("✓"), class: "btn btn-primary", style: "vertical-align: top" %>
       <% end %>
   </div>
 <% end %>
 
 <% if Collection.limit(1).where(created_by: current_user.uuid).count == 0 %>
-<div class="alert alert-block alert-info">
+<div class="alert alert-info daxalert">
   <button type="button" class="close" data-dismiss="alert">×</button>
-  <p><%= image_tag "dax.png", style: "max-width: 5%; margin-right: 1em" %>
+  <%= image_tag "dax.png", class: "dax" %>
+  <p>
     Hi, I noticed you haven't uploaded a new collection yet. 
     <%= link_to "Click here to learn how to upload data to Arvados Keep.", "http://doc.arvados.org/user/tutorials/tutorial-keep.html", style: "font-weight: bold" %>
   </p>
@@ -57,9 +72,9 @@
 <% end %>
 
 <% if Job.limit(1).where(created_by: current_user.uuid).count == 0 %>
-<div class="alert alert-block alert-info">
+<div class="alert alert-info daxalert">
   <button type="button" class="close" data-dismiss="alert">×</button>  
-  <p><%= image_tag "dax.png", style: "max-width: 5%; margin-right: 1em" %>
+  <p><%= image_tag "dax.png", class: "dax" %>
     Hi, I noticed you haven't run a job yet. 
     <%= link_to "Click here to learn how to run an Arvados Crunch job.", "http://doc.arvados.org/user/tutorials/tutorial-job1.html", style: "font-weight: bold" %>
   </p>
@@ -67,9 +82,9 @@
 <% end %>
 
 <% if PipelineInstance.limit(1).where(created_by: current_user.uuid).count == 0 %>
-<div class="alert alert-block alert-info">
+<div class="alert alert-info daxalert">
   <button type="button" class="close" data-dismiss="alert">×</button>
-  <p><%= image_tag "dax.png", style: "max-width: 5%; margin-right: 1em" %>
+  <p><%= image_tag "dax.png", class: "dax" %>
     Hi, I noticed you haven't run a pipeline yet.  
     <%= link_to "Click here to learn how to run an Arvados Crunch pipeline.", "http://doc.arvados.org/user/tutorials/tutorial-new-pipeline.html", style: "font-weight: bold" %>
   </p>
@@ -77,84 +92,57 @@
 <% end %>
 
 <div class="row-fluid">
-  <div class="col span12">
-    <div class="clearfix">
-      <h4>Account summary</h4>
-      <div class="well clearfix">
-        <% [Human, Trait, Collection, 'File', PipelineTemplate, PipelineInstance].each do |aclass| %>
-        <div class="col span2 centerme">
-          <span class="bigfatnumber">
-            <% if aclass == 'File' %>
-            <%= Collection.limit(4000).where({}).collect(&:files).flatten(1).count %>
-            <% else %>
-            <%= aclass.limit(4000).where({}).count %>
-            <% end %>
-          </span>
-          <br />
-          <%= raw(aclass.to_s.pluralize.underscore.gsub '_', ' ') %>
-        </div>
-	<% end %>
-      </div>
-    </div>
-  </div>
-</div>
 
-<div class="row-fluid">
-  <div class="col span3">
-    <div class="clearfix">
-      <h4>Configuration</h4>
-      <div class="well dash-list">
-        <ul class="nav nav-list">
-          <li class="clearfix">
-            <a href="<%= authorized_keys_path %>">
-              <span class="pull-left"><%= raw '&#x2714;' if @my_ssh_keys.any? %> </span>
-              SSH keys
-              <span class="pull-right"><%= @my_ssh_keys.count %></span>
-            </a>
-          </li>
-          <li class="clearfix">
-            <a href="<%= virtual_machines_path %>">
-              <span class="pull-left"><%= raw '&#x2714;' if @my_vm_perms.any? %> </span>
-              Virtual machines
-              <span class="pull-right"><%= @my_vm_perms.collect(&:head_uuid).uniq.count %></span>
-            </a>
-          </li>
-          <li class="clearfix">
-            <a href="<%= repositories_path %>">
-              <span class="pull-left"><%= raw '&#x2714;' if @my_repo_perms.any? %> </span>
-              Repositories
-              <span class="pull-right"><%= @my_repo_perms.collect(&:head_uuid).uniq.count %></span>
-            </a>
-          </li>
-        </ul>
-      </div>
-    </div>
-  </div>
   <div class="col span4">
-    <%= render partial: 'quick_links' %>
-  </div>
-  <div class="col span5">
     <div class="clearfix">
-      <h4>Recent jobs</h4>
-      <% if not current_user.andand.is_active or @my_jobs.empty? %>
+      <h4>Recent collections</h4>
+      <% if not current_user.andand.is_active or @my_collections.empty? %>
       (None)
       <% else %>
       <table class="table table-bordered table-condensed job-table">
-        <% @my_jobs[0..8].each do |j| %>
+	<colgroup>
+          <col width="70%" />
+          <col width="30%" />
+	</colgroup>
+        <% @my_collections[0..8].each do |c| %>
         <tr>
           <td>
             <small>
-              <%= link_to j.script[0..31], job_path(j.uuid) %>
+              <%= link_to c.uuid[0..31], collection_path(c.uuid) %> 
             </small>
           </td>
           <td>
             <small>
-              <%= j.script_version[0..7] %>
+<%= raw(distance_of_time_in_words(c[:created_at], Time.now).sub('about
+','~').sub(' ',' ')) if c[:created_at] %> ago
             </small>
           </td>
+        </tr>
+        <% end %>
+      </table>
+      <%= link_to raw("Show all collections →"), collections_path, class: 'pull-right' %>
+      <% end %>
+    </div>
+  </div>
+
+  <div class="col span4">
+    <div class="clearfix">
+      <h4>Recent jobs</h4>
+      <% if not current_user.andand.is_active or @my_jobs.empty? %>
+      (None)
+      <% else %>
+      <table class="table table-bordered table-condensed job-table">
+	<colgroup>
+          <col width="40%" />
+          <col width="20%" />
+          <col width="40%" />
+	</colgroup>
+
+        <% @my_jobs[0..8].each do |j| %>
+        <tr>
           <td>
             <small>
-              <%= j.script_parameters.andand[:input].andand.to_s.andand[0..7] %>
+              <%= link_to j.script[0..31], job_path(j.uuid) %>
             </small>
           </td>
           <td>
@@ -172,13 +160,61 @@
             <span class="label">queued</span>
             <% end %>
           </td>
+	  <td>
+	    <small>
+	    <% if j.success %>
+	    <%= link_to j.output[0..31], collection_path(j.output) %>  
+	    <% end %>
+	    </small>
+	  </td>
         </tr>
         <% end %>
       </table>
-      <%= link_to raw("Show more jobs / details →"), jobs_path, class: 'pull-right' %>
+      <%= link_to raw("Show all jobs →"), jobs_path, class: 'pull-right' %>
       <% end %>
     </div>
   </div>
+
+  <div class="col span4">
+    <div class="clearfix">
+      <h4>Recent pipeline instances</h4>
+      <% if not current_user.andand.is_active or @my_pipelines.empty? %>
+      (None)
+      <% else %>
+      <table class="table table-bordered table-condensed job-table">
+	<colgroup>
+          <col width="80%" />
+          <col width="20%" />
+	</colgroup>
+
+        <% @my_pipelines[0..8].each do |p| %>
+        <tr>
+          <td>
+            <small>
+	      <% i = PipelineTemplate.limit(1).where(uuid: p.pipeline_template_uuid)[0] %>
+		<%= link_to i.name, pipeline_instance_path(p.uuid) %>
+            </small>
+          </td>
+          <td>
+            <% if p.success %>
+            <span class="label label-success">finished</span>
+            <% elsif p.success == false %>
+            <span class="label label-danger">failed</span>
+            <% elsif p.active %>
+            <span class="label label-info">running</span>
+            <% else %>
+            <span class="label">queued</span>
+            <% end %>
+          </td>
+        </tr>
+        <% end %>
+      </table>
+      <%= link_to raw("Show all pipeline instances →"), jobs_path, class: 'pull-right' %>
+      <% end %>
+    </div>
+  </div>
+
+
 </div>
 
 <% elsif current_user %>

commit 67e5d42cccb652e4200a6c97164d492225394305
Merge: d6b0525 6d69aef
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Fri Dec 27 14:51:28 2013 -0500

    Merge branch 'master' of git.clinicalfuture.com:arvados into 1692-redesign-dashboard


commit d6b05255cc0a7732408360c8b989d306e329346d
Merge: 740dcfd afc4513
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Fri Dec 27 13:36:54 2013 -0500

    Merge remote-tracking branch 'origin' into 1692-redesign-dashboard


-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list