[ARVADOS] updated: 928565a23bf5ff54fb524b6c38f8e2b0f4b27725

git at public.curoverse.com git at public.curoverse.com
Thu Feb 6 15:03:24 EST 2014


Summary of changes:
 .../api_client_authorizations_controller.rb        |    5 +
 .../app/controllers/application_controller.rb      |    6 +-
 .../app/controllers/collections_controller.rb      |    6 +-
 apps/workbench/app/controllers/jobs_controller.rb  |   10 ++-
 .../controllers/pipeline_instances_controller.rb   |    8 +-
 apps/workbench/app/helpers/provenance_helper.rb    |    4 +-
 .../views/api_client_authorizations/_help.html.erb |   14 --
 .../views/application/_arvados_attr_value.html.erb |    2 +-
 .../app/views/application/_recent.html.erb         |   61 ---------
 .../app/views/application/_show_links.html.erb     |   40 ------
 .../workbench/app/views/application/index.html.erb |   26 +---
 apps/workbench/app/views/application/show.html.erb |   49 +++----
 .../app/views/authorized_keys/_help.html.erb       |   10 --
 .../app/views/authorized_keys/index.html.erb       |    1 -
 .../app/views/collections/_index_tbody.html.erb    |   24 +++-
 .../app/views/collections/_recent.html.erb         |   43 ------
 apps/workbench/app/views/groups/index.html.erb     |   42 ------
 apps/workbench/app/views/jobs/_recent.html.erb     |  141 --------------------
 .../app/views/layouts/application.html.erb         |   17 +++-
 .../app/views/pipeline_instances/_recent.html.erb  |   85 ------------
 .../app/views/pipeline_instances/compare.html.erb  |   88 +------------
 .../app/views/pipeline_templates/_recent.html.erb  |   34 -----
 .../app/views/pipeline_templates/show.html.erb     |   42 ------
 .../app/views/repositories/_help.html.erb          |   27 ----
 .../app/views/virtual_machines/_help.html.erb      |   26 ----
 25 files changed, 91 insertions(+), 720 deletions(-)
 delete mode 100644 apps/workbench/app/views/api_client_authorizations/_help.html.erb
 delete mode 100644 apps/workbench/app/views/application/_recent.html.erb
 delete mode 100644 apps/workbench/app/views/application/_show_links.html.erb
 delete mode 100644 apps/workbench/app/views/authorized_keys/_help.html.erb
 delete mode 100644 apps/workbench/app/views/authorized_keys/index.html.erb
 delete mode 100644 apps/workbench/app/views/collections/_recent.html.erb
 delete mode 100644 apps/workbench/app/views/groups/index.html.erb
 delete mode 100644 apps/workbench/app/views/jobs/_recent.html.erb
 delete mode 100644 apps/workbench/app/views/pipeline_instances/_recent.html.erb
 delete mode 100644 apps/workbench/app/views/pipeline_templates/_recent.html.erb
 delete mode 100644 apps/workbench/app/views/pipeline_templates/show.html.erb
 delete mode 100644 apps/workbench/app/views/repositories/_help.html.erb
 delete mode 100644 apps/workbench/app/views/virtual_machines/_help.html.erb

       via  928565a23bf5ff54fb524b6c38f8e2b0f4b27725 (commit)
      from  dcd5dad4a40baef826270f43ae80d7b39a3b9113 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit 928565a23bf5ff54fb524b6c38f8e2b0f4b27725
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Thu Feb 6 15:04:19 2014 -0500

    Harmonized all sections to use the new content template and layout

diff --git a/apps/workbench/app/controllers/api_client_authorizations_controller.rb b/apps/workbench/app/controllers/api_client_authorizations_controller.rb
index 1c55b11..03f0a04 100644
--- a/apps/workbench/app/controllers/api_client_authorizations_controller.rb
+++ b/apps/workbench/app/controllers/api_client_authorizations_controller.rb
@@ -5,4 +5,9 @@ class ApiClientAuthorizationsController < ApplicationController
     end
     super
   end
+
+  def index_pane_list
+    %w(recent help)
+  end
+
 end
diff --git a/apps/workbench/app/controllers/application_controller.rb b/apps/workbench/app/controllers/application_controller.rb
index 4c2d6dd..02103c0 100644
--- a/apps/workbench/app/controllers/application_controller.rb
+++ b/apps/workbench/app/controllers/application_controller.rb
@@ -142,8 +142,12 @@ class ApplicationController < ActionController::Base
      (@object.friendly_link_name if @object.respond_to? :friendly_link_name))
   end
 
+  def index_pane_list
+    %w(recent)
+  end
+
   def show_pane_list
-    %w(attributes links json api)
+    %w(attributes metadata json api)
   end
 
   protected
diff --git a/apps/workbench/app/controllers/collections_controller.rb b/apps/workbench/app/controllers/collections_controller.rb
index c38ca9a..d393da0 100644
--- a/apps/workbench/app/controllers/collections_controller.rb
+++ b/apps/workbench/app/controllers/collections_controller.rb
@@ -3,7 +3,7 @@ class CollectionsController < ApplicationController
   skip_before_filter :check_user_agreements, :only => [:show_file]
 
   def show_pane_list
-    %w(files attributes provenance_graph used_by)
+    %w(files attributes metadata provenance_graph used_by json api)
   end
   def index
     if params[:search].andand.length.andand > 0
@@ -102,8 +102,8 @@ class CollectionsController < ApplicationController
     end
     
     Collection.where(uuid: @object.uuid).each do |u|
-      @prov_svg = ProvenanceHelper::create_provenance_graph u.provenance, "provenance_svg", {:direction => :bottom_up, :combine_jobs => :script_only}
-      @used_by_svg = ProvenanceHelper::create_provenance_graph u.used_by, "used_by_svg", {:direction => :top_down, :combine_jobs => :script_only, :pdata_only => true}
+      @prov_svg = ProvenanceHelper::create_provenance_graph u.provenance, "provenance_svg", {:direction => :bottom_up, :combine_jobs => :script_only} rescue nil
+      @used_by_svg = ProvenanceHelper::create_provenance_graph u.used_by, "used_by_svg", {:direction => :top_down, :combine_jobs => :script_only, :pdata_only => true} rescue nil
     end
   end
 
diff --git a/apps/workbench/app/controllers/jobs_controller.rb b/apps/workbench/app/controllers/jobs_controller.rb
index 9b52977..be9fe03 100644
--- a/apps/workbench/app/controllers/jobs_controller.rb
+++ b/apps/workbench/app/controllers/jobs_controller.rb
@@ -31,7 +31,15 @@ class JobsController < ApplicationController
     generate_provenance([@object])
   end
 
+  def index_pane_list
+    if params[:uuid]
+      %w(recent provenance)
+    else
+      %w(recent)
+    end
+  end
+
   def show_pane_list
-    %w(attributes provenance links json api)
+    %w(attributes provenance metadata json api)
   end
 end
diff --git a/apps/workbench/app/controllers/pipeline_instances_controller.rb b/apps/workbench/app/controllers/pipeline_instances_controller.rb
index b7339c0..60a380d 100644
--- a/apps/workbench/app/controllers/pipeline_instances_controller.rb
+++ b/apps/workbench/app/controllers/pipeline_instances_controller.rb
@@ -121,6 +121,8 @@ class PipelineInstancesController < ApplicationController
 
     provenance, pips = graph(@objects)
 
+    @pipelines = @objects
+
     @prov_svg = ProvenanceHelper::create_provenance_graph provenance, "provenance_svg", {
       :all_script_parameters => true, 
       :combine_jobs => :script_and_version,
@@ -129,9 +131,13 @@ class PipelineInstancesController < ApplicationController
   end
 
   def show_pane_list
-    %w(components graph attributes  links json api)
+    %w(components graph attributes metadata json api)
   end
 
+  def compare_pane_list 
+    %w(text_compare graph)
+  end 
+
   protected
   def for_comparison v
     if v.is_a? Hash or v.is_a? Array
diff --git a/apps/workbench/app/helpers/provenance_helper.rb b/apps/workbench/app/helpers/provenance_helper.rb
index ef165e8..cb2d924 100644
--- a/apps/workbench/app/helpers/provenance_helper.rb
+++ b/apps/workbench/app/helpers/provenance_helper.rb
@@ -46,10 +46,10 @@ module ProvenanceHelper
       
         #"\"#{uuid}\" [label=\"#{rsc}\\n#{uuid}\",href=\"#{href}\"];\n"
         if rsc == Collection
-          puts uuid
+          #puts uuid
           if uuid == :"d41d8cd98f00b204e9800998ecf8427e+0"
             # special case
-            puts "empty!"
+            #puts "empty!"
             return "\"#{uuid}\" [label=\"(empty collection)\"];\n"
           end
           if @pdata[uuid] 
diff --git a/apps/workbench/app/views/api_client_authorizations/_help.html.erb b/apps/workbench/app/views/api_client_authorizations/_help.html.erb
deleted file mode 100644
index 1481721..0000000
--- a/apps/workbench/app/views/api_client_authorizations/_help.html.erb
+++ /dev/null
@@ -1,14 +0,0 @@
-<pre>
-### Pasting the following lines at a shell prompt will allow Arvados SDKs
-### to authenticate to your account, <%= current_user.email %>
-
-read ARVADOS_API_TOKEN <<EOF
-<%= Thread.current[:arvados_api_token] %>
-EOF
-export ARVADOS_API_TOKEN ARVADOS_API_HOST=<%= current_api_host %>
-<% if Rails.configuration.arvados_insecure_https %>
-export ARVADOS_API_HOST_INSECURE=true
-<% else %>
-unset ARVADOS_API_HOST_INSECURE
-<% end %>
-</pre>
diff --git a/apps/workbench/app/views/application/_arvados_attr_value.html.erb b/apps/workbench/app/views/application/_arvados_attr_value.html.erb
index cb60714..80dfa33 100644
--- a/apps/workbench/app/views/application/_arvados_attr_value.html.erb
+++ b/apps/workbench/app/views/application/_arvados_attr_value.html.erb
@@ -16,7 +16,7 @@
       <% end %>
       <!--
       <% if resource_class_for_uuid(attrvalue, {referring_object: obj, referring_attr: attr}) %>
-        <%= link_to_if_arvados_object(attrvalue, { referring_object: obj, link_text: raw('<span class="icon-hand-right"></span>'), referring_attr: attr })  %>
+        <%= link_to_if_arvados_object(attrvalue, { referring_object: obj, link_text: raw('<span class="glyphicon glyphicon-hand-right"></span>'), referring_attr: attr })  %>
       <% end %>
       -->
 <% end %>
diff --git a/apps/workbench/app/views/application/_recent.html.erb b/apps/workbench/app/views/application/_recent.html.erb
deleted file mode 100644
index 86b6b04..0000000
--- a/apps/workbench/app/views/application/_recent.html.erb
+++ /dev/null
@@ -1,61 +0,0 @@
-<% if @objects.empty? %>
-<br/>
-<p style="text-align: center">
-  No <%= controller.model_class.to_s.pluralize.underscore.gsub '_', ' ' %> to display.
-</p>
-
-<% else %>
-
-<% attr_blacklist = ' created_at modified_at modified_by_user_uuid modified_by_client_uuid updated_at' %>
-
-<table class="table arv-index">
-  <thead>
-    <tr>
-      <% @objects.first.attributes_for_display.each do |attr, attrvalue| %>
-      <% next if attr_blacklist.index(" "+attr) %>
-      <th class="arv-attr-<%= attr %>">
-        <%= controller.model_class.attribute_info[attr.to_sym].andand[:column_heading] or attr.sub /_uuid/, '' %>
-      </th>
-      <% end %>
-      <th>
-        <!-- a column for delete buttons -->
-      </th>
-    </tr>
-  </thead>
-      
-  <tbody>
-    <% @objects.each do |object| %>
-    <tr data-object-uuid="<%= object.uuid %>">
-      <% object.attributes_for_display.each do |attr, attrvalue| %>
-      <% next if attr_blacklist.index(" "+attr) %>
-      <td class="arv-object-<%= object.class.to_s %> arv-attr-<%= attr %>">
-        <% if attr == 'uuid' %>
-        <%= link_to_if_arvados_object object %>
-        <%= link_to_if_arvados_object(object, { link_text: raw('<i class="icon-hand-right"></i>') }) %>
-        <% else %>
-        <% if object.attribute_editable? attr %>
-        <%= render_editable_attribute object, attr %>
-        <% else %>
-        <%= resource_class_for_uuid(attrvalue, referring_attr: attr, referring_object: @object).to_s %>
-        <%= attrvalue %>
-        <% end %>
-        <%= link_to_if_arvados_object(attrvalue, { referring_object: @object, link_text: raw('<i class="icon-hand-right"></i>') }) if resource_class_for_uuid(attrvalue, {referring_object: @object}) %>
-        <% end %>
-      </td>
-      <% end %>
-      <td>
-        <% if object.editable? %>
-        <%= link_to({action: 'destroy', id: object.uuid}, method: :delete, remote: true, data: {confirm: "You are about to delete #{controller.model_class} #{object.uuid}.\n\nAre you sure?"}) do %>
-        <i class="glyphicon glyphicon-trash"></i>
-        <% end %>
-        <% end %>
-      </td>
-    </tr>
-    <% end %>
-  </tbody>
-
-  <tfoot>
-  </tfoot>
-</table>
-
-<% end %>
diff --git a/apps/workbench/app/views/application/_show_links.html.erb b/apps/workbench/app/views/application/_show_links.html.erb
deleted file mode 100644
index 8dcf335..0000000
--- a/apps/workbench/app/views/application/_show_links.html.erb
+++ /dev/null
@@ -1,40 +0,0 @@
-<% incoming = Link.where(tail_uuid: @object.uuid) %>
-<% if incoming.items_available > 0 %>
-<h3>Incoming Links</h3>
-<table class="table topalign">
-  <thead>
-  </thead>
-  <tbody>
-    <% incoming.each do |link| %>
-      <tr>
-        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "uuid", attrvalue: link.uuid } %></td>
-        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "link_class", attrvalue: link.link_class } %></td>
-        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "name", attrvalue: link.name } %></td>
-        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "head_uuid", attrvalue: link.head_uuid } %></td>
-        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "properties", attrvalue: link.properties } %></td>
-      </tr>
-    <% end %>
-  </tbody>
-</table>
-<% end %>
-
-<% outgoing = Link.where(head_uuid: @object.uuid) %>
-<% if outgoing.items_available > 0 %>
-<h3>Outgoing Links</h3>
-<table class="table topalign">
-  <thead>
-  </thead>
-  <tbody>
-    <% outgoing.each do |link| %>
-      <tr>
-        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "uuid", attrvalue: link.uuid } %></td>
-        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "link_class", attrvalue: link.link_class } %></td>
-        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "name", attrvalue: link.name } %></td>
-        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "tail_uuid", attrvalue: link.tail_uuid } %></td>
-        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "properties", attrvalue: link.properties } %></td>
-      </tr>
-    <% end %>
-  </tbody>
-</table>
-<% end %>
-
diff --git a/apps/workbench/app/views/application/index.html.erb b/apps/workbench/app/views/application/index.html.erb
index 26adf59..67b5004 100644
--- a/apps/workbench/app/views/application/index.html.erb
+++ b/apps/workbench/app/views/application/index.html.erb
@@ -1,31 +1,15 @@
 <% content_for :page_title do %>
-<%= controller.model_class.to_s.pluralize.underscore.capitalize.gsub '_', ' ' %>
+<%= controller.model_class.to_s.pluralize.underscore.capitalize.gsub('_', ' ') %>
 <% end %>
 
+<% content_for :tab_line_buttons do %>
+
 <% if controller.model_class.creatable? %>
 <%= button_to "Add a new #{controller.model_class.to_s.underscore.gsub '_', ' '}", 
     { action: 'create', return_to: request.url }, 
     { class: 'btn btn-primary pull-right' } %>
 <% end %>
 
-<%= form_tag({action: 'compare', controller: params[:controller], method: 'get'}, {method: 'get', id: 'compare', class: 'pull-right small-form-margin'}) do |f| %>
-<%= submit_tag 'Compare selected', {class: 'btn btn-primary', disabled: true, style: 'display: none'} %>
- 
-<% end rescue nil %>
-
-<% pane_list = controller.index_pane_list rescue %w(recent) %>
-
-<ul class="nav nav-tabs">
-  <% pane_list.each_with_index do |pane, i| %>
-    <li class="<%= 'active' if i==0 %>"><a href="#<%= pane %>" data-toggle="tab" id="<%= pane %>-tab"> <%= pane.capitalize %></a></li>
-  <% end %>
-</ul>
-<div class="tab-content">
-<% pane_list.each_with_index do |pane, i| %>
-  <div id="<%= pane %>" class="tab-pane fade <%= 'in active' if i==0 %>">
-    <div class="smart-scroll">
-      <%= render partial: pane %>
-    </div>
-  </div>
 <% end %>
-</div>
+
+<%= render partial: 'content', layout: 'content_layout', locals: {pane_list: controller.index_pane_list }%>
diff --git a/apps/workbench/app/views/application/show.html.erb b/apps/workbench/app/views/application/show.html.erb
index 03a8f9b..9da8ea1 100644
--- a/apps/workbench/app/views/application/show.html.erb
+++ b/apps/workbench/app/views/application/show.html.erb
@@ -1,40 +1,29 @@
 <% content_for :page_title do %>
-<%= (@object.respond_to?(:properties) ? @object.properties[:page_title] : nil) ||
-    @object.friendly_link_name %>
+  <%= (@object.respond_to?(:properties) ? @object.properties[:page_title] : nil) ||
+        @object.friendly_link_name %>
 <% end %>
 
+<% content_for :content_top do %>
+
 <% if @object.respond_to? :properties %>
-<% if @object.properties[:page_content] %>
-<% content_for :page_content do %>
-<h1>
-<%= render_content_from_database(@object.properties[:page_title] || @object.uuid) %>
-</h1>
+  <% if @object.properties[:page_content] %>
+    <% content_for :page_content do %>
+      <h1>
+        <%= render_content_from_database(@object.properties[:page_title] || @object.uuid) %>
+      </h1>
+      
+      <% if @object.properties[:page_subtitle] %>
+        <h4>
+          <%= render_content_from_database @object.properties[:page_subtitle] %>
+        </h4>
+      <% end %>
 
-<% if @object.properties[:page_subtitle] %>
-<h4>
-<%= render_content_from_database @object.properties[:page_subtitle] %>
-</h4>
+      <%= render_content_from_database @object.properties[:page_content] %>
+    <% end %>
+  <% end %>
 <% end %>
 
-<%= render_content_from_database @object.properties[:page_content] %>
-<% end %>
-<% end %>
 <% end %>
 
-<% pane_list = controller.show_pane_list  %>
+<%= render partial: 'content', layout: 'content_layout', locals: {pane_list: controller.show_pane_list }%>
 
-<ul class="nav nav-tabs">
-  <% pane_list.each_with_index do |pane, i| %>
-  <li class="<%= 'active' if i==0 %>"><a href="#<%= pane %>" data-toggle="tab" id="<%= pane %>-tab"><%= pane.capitalize.gsub '_', ' ' %></a></li>
-  <% end %>
-</ul>
-
-<div class="tab-content">
-  <% pane_list.each_with_index do |pane, i| %>
-  <div id="<%= pane %>" class="tab-pane fade in <%= 'active' if i==0 %>">
-    <div class="smart-scroll">
-      <%= render partial: 'show_' + pane %>
-    </div>
-  </div>
-  <% end %>
-</div>
diff --git a/apps/workbench/app/views/authorized_keys/_help.html.erb b/apps/workbench/app/views/authorized_keys/_help.html.erb
deleted file mode 100644
index db4d4dc..0000000
--- a/apps/workbench/app/views/authorized_keys/_help.html.erb
+++ /dev/null
@@ -1,10 +0,0 @@
-<p>
-  More information about how to log in to VMs:
-</p>
-<ul>
-  <li>
-    <%= link_to raw('Arvados Docs → User Guide → SSH access'),
-        "#{Rails.configuration.arvados_docsite}/user/getting_started/ssh-access.html",
-        target: "_blank"%>.
-  </li>
-</ul>
diff --git a/apps/workbench/app/views/authorized_keys/index.html.erb b/apps/workbench/app/views/authorized_keys/index.html.erb
deleted file mode 100644
index 37e8fce..0000000
--- a/apps/workbench/app/views/authorized_keys/index.html.erb
+++ /dev/null
@@ -1 +0,0 @@
-<%= render template: 'application/index' %>
diff --git a/apps/workbench/app/views/collections/_index_tbody.html.erb b/apps/workbench/app/views/collections/_index_tbody.html.erb
index f8fbcdc..b412345 100644
--- a/apps/workbench/app/views/collections/_index_tbody.html.erb
+++ b/apps/workbench/app/views/collections/_index_tbody.html.erb
@@ -3,17 +3,29 @@
 <tr class="collection">
   <td>
     <%= link_to_if_arvados_object c.uuid %>
-  </td><td>
-    <% c.files.each do |file| %>
-      <%= file[0] == '.' ? file[1] : "#{file[0]}/#{file[1]}" %>
+  </td>
+  <td>
+    <% i = 0 %>
+    <% while i < 3 and i < c.files.length %>
+      <% file = c.files[i] %>
+      <% file_path = "#{file[0]}/#{file[1]}" %>
+      <%= link_to file[1], {controller: 'collections', action: 'show_file', uuid: c.uuid, file: file_path, size: file[2], disposition: 'inline'}, {title: 'View in browser'} %><br />
+      <% i += 1 %>
+    <% end %>
+    <% if i < c.files.length %>
+      ⋮
     <% end %>
-  </td><td>
+  </td>
+  <td><%= render partial: 'application/arvados_attr_value', locals: { obj: c, attr: "owner_uuid", attrvalue: c.owner_uuid } %></td>
+  <td>
     <%= raw(distance_of_time_in_words(c.created_at, Time.now).sub('about ','~').sub(' ',' ')) if c.created_at %>
-  </td><td>
+  </td>
+  <td>
     <% if @collection_info[c.uuid] %>
       <%= @collection_info[c.uuid][:tags].uniq.join ', ' %>
     <% end %>
-  </td><td>
+  </td>
+  <td>
     <% if @collection_info[c.uuid][:wanted_by_me] %>
       <span class="label label-info">2×</span>
     <% elsif @collection_info[c.uuid][:wanted] %>
diff --git a/apps/workbench/app/views/collections/_recent.html.erb b/apps/workbench/app/views/collections/_recent.html.erb
deleted file mode 100644
index 4f383f3..0000000
--- a/apps/workbench/app/views/collections/_recent.html.erb
+++ /dev/null
@@ -1,43 +0,0 @@
-<div class="pull-right">
-  <%= form_tag collections_path, method: 'get', remote: true, class: 'form-search' do %>
-  <div class="input-append">
-    <%= text_field_tag :search, params[:search], class: 'search-query' %>
-    <%= submit_tag "Search", name: nil, class: 'btn btn-info' %>
-  </div>  
-  <% end %>
-</div>
-
-<table id="collections-index" class="topalign table table-bordered table-condensed table-fixedlayout table-smallcontent">
-  <colgroup>
-    <col width="10%" />
-    <col width="50%" />
-    <col width="16%" />
-    <col width="16%" />
-    <col width="8%" />
-  </colgroup>
-  <thead>
-    <tr class="contain-align-left">
-      <th>
-	uuid
-      </th><th>
-	contents
-      </th><th>
-	age
-      </th><th>
-	tags
-      </th><th>
-	storage
-      </th>
-    </tr>
-  </thead>
-  <tbody>
-    <%= render partial: 'index_tbody' %>
-  </tbody>
-</table>
-
-<% content_for :js do %>
-$(document).on('click', 'form[data-remote] input[type=submit]', function() {
-  $('table#collections-index tbody').fadeTo(200, 0.3);
-  return true;
-});
-<% end %>
diff --git a/apps/workbench/app/views/groups/index.html.erb b/apps/workbench/app/views/groups/index.html.erb
deleted file mode 100644
index 1e81518..0000000
--- a/apps/workbench/app/views/groups/index.html.erb
+++ /dev/null
@@ -1,42 +0,0 @@
-<table class="table table-hover">
-  <thead>
-    <tr class="contain-align-left">
-      <th>
-	id
-      </th><th>
-	name
-      </th><th>
-	owner
-      </th><th>
-	incoming permissions
-      </th><th>
-	outgoing permissions
-      </th><th>
-	owned
-      </th>
-    </tr>
-  </thead>
-  <tbody>
-
-    <% @groups.sort_by { |g| g[:created_at] }.reverse.each do |g| %>
-
-    <tr>
-      <td>
-        <%= link_to_if_arvados_object g %>
-      </td><td>
-        <%= g.name %>
-      </td><td>
-        <%= g.owner_uuid %>
-      </td><td>
-        <%= @links_to.select { |x| x.head_uuid == g.uuid }.collect(&:tail_uuid).uniq.count %>
-      </td><td>
-        <%= @links_from.select { |x| x.tail_uuid == g.uuid }.collect(&:head_uuid).uniq.count %>
-      </td><td>
-        <%= @owned_users.select { |x| x.owner_uuid == g.uuid }.count %> users<br />
-      </td>
-    </tr>
-
-    <% end %>
-
-  </tbody>
-</table>
diff --git a/apps/workbench/app/views/jobs/_recent.html.erb b/apps/workbench/app/views/jobs/_recent.html.erb
deleted file mode 100644
index 2f16391..0000000
--- a/apps/workbench/app/views/jobs/_recent.html.erb
+++ /dev/null
@@ -1,141 +0,0 @@
-<% content_for :css do %>
-  table.topalign>tbody>tr>td {
-  vertical-align: top;
-  }
-  table.topalign>thead>tr>td {
-  vertical-align: bottom;
-  }
-<% end %>
-
-<table class="topalign table">
-  <thead>
-    <tr class="contain-align-left">
-      <th>
-      </th><th>
-	status
-      </th><th>
-	progress
-      </th><th>
-	uuid
-      </th><th>
-	script
-      </th><th>
-	version
-      </th><th>
-	output
-      </th>
-    </tr>
-  </thead>
-  <tbody>
-
-    <% @jobs.sort_by { |j| j[:created_at] }.reverse.each do |j| %>
-
-    <tr class="cell-noborder">
-      <td>
-        <i class="icon-plus-sign expand-collapse-row" data-id="<%= j.uuid %>" style="cursor: pointer"></i>
-      </td>
-      <td>
-        <% if j.success == false %>
-        <span class="badge badge-warning" title="fail">&#x2716;</span>
-        <% elsif j.success %>
-        <span class="badge badge-success" title="success">&#x2714;</span>
-        <% elsif j.running %>
-        <span class="badge badge-info" title="running">&#x2708;</span>
-        <% else %>
-        <span class="badge" title="queued">&#x2709;</span>
-        <% end %>
-      </td>
-      <td>
-        <% if j.started_at and not j.finished_at %>
-        <% percent_total_tasks = 100 / (j.tasks_summary[:running] + j.tasks_summary[:done] + j.tasks_summary[:todo]) rescue 0 %>
-        <div class="progress" style="margin-bottom: 0">
-          <div class="bar bar-success" style="width: <%= j.tasks_summary[:done] * percent_total_tasks rescue 0 %>%;"></div>
-          <div class="bar" style="width: <%= j.tasks_summary[:running] * percent_total_tasks rescue 0 %>%; opacity: 0.3"></div>
-        </div>
-        <% end %>
-      </td>
-      <td>
-        <%= link_to_if_arvados_object j.uuid %>
-      </td>
-      <td>
-        <%= j.script %>
-      </td>
-      <td>
-        <%= j.script_version.andand[0..8] %>
-      </td>
-      <td>
-        <%= link_to_if_arvados_object j.output %>
-      </td>
-    </tr>
-    <tr class="cell-noborder" id="<%= j.uuid %>" style="display:none">
-      <td colspan="7"><table class="table table-justforlayout"><tr>
-      <td style="border-left: 1px solid black">
-        <table class="table table-condensed">
-          <tr>
-            <td>
-              queued
-            </td>
-            <td>
-	      &#x2709; <span title="<%= j.created_at %>"><%= raw distance_of_time_in_words(Time.now, j.created_at).sub('about ','~').sub(' ',' ') + ' ago' if j.created_at %></span>
-            </td>
-            <td>
-	      <%= raw('for ' + distance_of_time_in_words(j.started_at, j.created_at).sub('about ','~').sub(' ',' ')) if j.created_at and j.started_at %>
-            </td>
-          </tr>
-          <% if j.started_at.is_a? Time %>
-          <tr>
-            <td>
-              started
-            </td>
-            <td>
-	      &#x2708; <span title="<%= j.created_at %>"><%= raw distance_of_time_in_words(j.started_at, Time.now).sub('about ','~').sub(' ',' ') + ' ago' if j.started_at %></span>
-            </td>
-            <td>
-              <% if j.finished_at.is_a? Time %>
-	      <%= raw('ran ' + distance_of_time_in_words(j.finished_at, j.started_at).sub('about ','~').sub(' ',' ')) %>
-              <% elsif j.running %>
-              <span class="badge badge-success" title="tasks finished">&#x2714; <%= j.tasks_summary[:done] %></span>
-              <span class="badge badge-info" title="tasks running">&#x2708; <%= j.tasks_summary[:running] %></span>
-              <span class="badge" title="tasks todo">&#x2709; <%= j.tasks_summary[:todo] %></span>
-              <% if j.tasks_summary[:failed] %>
-              <span class="badge badge-warning" title="task failures">&#x2716; <%= j.tasks_summary[:failed] %></span>
-              <% end %>
-              <% end %>
-            </td>
-          </tr>
-          <% end %>
-        </table>
-      </td><td>
-        <table class="table table-condensed">
-          <tr><td colspan="2">
-              <%= j.script %> <%= j.script_version %>
-          </td></tr>
-          <% j.script_parameters.sort.each do |k,v| %>
-          <tr>
-            <td><%= k %></td><td><%= link_to_if_arvados_object v %></td>
-          </tr>
-          <% end %>
-          <tr>
-            <td>output</td><td><%= link_to_if_arvados_object j.output %></td>
-          </tr>
-        </table>
-      </td><td>
-        <table class="table table-condensed">
-        <% j.runtime_constraints.sort.each do |k,v| %>
-        <tr><td><%= v %></td><td><%= k %></td></tr>
-        <% end %>
-        </table>
-      </td>
-      </tr></table></td>
-    </tr>
-
-    <% end %>
-
-  </tbody>
-</table>
-
-<%= render partial: 'application/svg_div', locals: {
-      divId: "provenance_graph", 
-      svgId: "provenance_svg", 
-      svg: @svg } %>
-
diff --git a/apps/workbench/app/views/layouts/application.html.erb b/apps/workbench/app/views/layouts/application.html.erb
index 2e2fb84..f186fda 100644
--- a/apps/workbench/app/views/layouts/application.html.erb
+++ b/apps/workbench/app/views/layouts/application.html.erb
@@ -102,6 +102,7 @@
           </div>
         </li>
 
+        <!-- XXX placeholder for this when search is implemented
         <li>
           <form class="navbar-form" role="search">
             <div class="input-group" style="width: 220px">
@@ -110,6 +111,20 @@
             </div>
           </form>
         </li>
+        -->
+
+        <!-- XXX placeholder for this when persistent selection is implemented
+        <li class="dropdown">
+          <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+            <span class="glyphicon glyphicon-paperclip"></span>
+            <span class="badge"><%= @selection_count %></span>
+            <span class="caret"></span>
+          </a>
+          <ul class="dropdown-menu" role="menu">
+              <li style="padding: 10px">No selections.</li>
+          </ul>
+        </li>        
+        -->
 
         <li class="dropdown">
           <a href="#" class="dropdown-toggle" data-toggle="dropdown">
@@ -161,7 +176,7 @@
                         ['traits'],
                         ['specimens'],
                         ['collections', 'Files'],
-                        ['links']]],
+                        ['links', 'Metadata']]],
               ['Compute', [['pipeline_templates', 'Pipelines'],
                            ['repositories', 'Code repositories'],
                            ['virtual_machines']]],
diff --git a/apps/workbench/app/views/pipeline_instances/_recent.html.erb b/apps/workbench/app/views/pipeline_instances/_recent.html.erb
deleted file mode 100644
index ef394e8..0000000
--- a/apps/workbench/app/views/pipeline_instances/_recent.html.erb
+++ /dev/null
@@ -1,85 +0,0 @@
-<%= form_tag do |f| %>
-
-<table class="table table-hover">
-  <thead>
-    <tr class="contain-align-left">
-      <th>
-      </th><th>
-	status
-      </th><th>
-	id
-      </th><th>
-	name
-      </th><th>
-	template
-      </th><th>
-	owner
-      </th><th>
-	components
-      </th><th>
-	dependencies
-      </th><th>
-	created
-      </th><th>
-      </th>
-    </tr>
-  </thead>
-  <tbody>
-
-    <% @objects.sort_by { |ob| ob.created_at }.reverse.each do |ob| %>
-
-    <tr data-object-uuid="<%= ob.uuid %>">
-      <td>
-        <%= check_box_tag 'uuids[]', ob.uuid, false %>
-      </td><td>
-        <% if ob.success %>
-        <span class="label label-success">success</span>
-        <% elsif ob.active %>
-        <span class="label label-info">active</span>
-        <% end %>
-      </td><td>
-        <%= link_to_if_arvados_object ob %>
-      </td><td>
-        <%= ob.name %>
-      </td><td>
-        <%= link_to_if_arvados_object ob.pipeline_template_uuid %>
-      </td><td>
-        <%= link_to_if_arvados_object ob.owner_uuid %>
-      </td><td>
-        <% ob.components.each do |cname, c| %>
-        <% status = if !(c.is_a?(Hash) && c[:job].is_a?(Hash)) then nil elsif c[:job][:success] then 'success' elsif c[:job][:running] then 'info' else 'warning' end %>
-        <span class="label <%= "label-#{status}" if status %>"><%= cname.to_s %></span>
-        <% end %>
-      </td><td>
-        <small>
-          <% ob.dependencies.each do |d| %>
-          <%= d %><br />
-          <% end %>
-        </small>
-      </td><td>
-        <%= ob.created_at %>
-      </td>
-    </tr>
-
-    <% end %>
-
-  </tbody>
-</table>
-
-<% end %>
-
-<% content_for :footer_js do %>
-var showhide_compare = function() {
-    var form = $('form#compare')[0];
-    $('input[type=hidden][name="uuids[]"]', form).remove();
-    $('input[type=submit]', form).prop('disabled',true);
-    $('input[name="uuids[]"]').each(function(){
-        if(this.checked) {
-            $('input[type=submit]', form).prop('disabled',false).show();
-            $(form).append($('<input type="hidden" name="uuids[]"/>').val(this.value));
-        }
-    });
-};
-$('form input[name="uuids[]"]').on('click', showhide_compare);
-showhide_compare();
-<% end %>
diff --git a/apps/workbench/app/views/pipeline_instances/compare.html.erb b/apps/workbench/app/views/pipeline_instances/compare.html.erb
index 79a1038..9e8d1e5 100644
--- a/apps/workbench/app/views/pipeline_instances/compare.html.erb
+++ b/apps/workbench/app/views/pipeline_instances/compare.html.erb
@@ -1,87 +1 @@
-<% content_for :css do %>
-.notnormal {
-  background: #ffffaa;
-}
-.headrow div {
-  padding-top: .5em;
-  padding-bottom: .5em;
-}
-.headrow:first-child {
-  border-bottom: 1px solid black;
-}
-<% end %>
-
-<% pi_span = [(10.0/[@objects.count,1].max).floor,1].max %>
-<div>
-<% [['Instance', :uuid], ['Template', :pipeline_template_uuid]].each do |label, attr| %>
-<div class="row headrow">
-  <div class="span2">
-    <%# label %>
-  </div>
-  <% @objects.each do |object| %>
-  <div class="span<%= pi_span %>">
-    <%= render partial: 'application/arvados_attr_value', locals: { obj: object, attr: attr, attrvalue: object.send(attr.to_sym) } %>
-  </div>
-  <% end %>
-</div>
-<% end %>
-</div>
-
-<% @rows.each do |row| %>
-<div class="row">
-  <div class="span2">
-    <%= row[:name] %>
-  </div>
-  <% @objects.each_with_index do |_, x| %>
-    <div class="span<%= pi_span %>">
-      <div class="row">
-
-        <% if row[:components][x] %>
-          <% pj = render_pipeline_job row[:components][x] %>
-
-          <div class="span3">
-            <%= link_to_if_arvados_object pj[:job_id], {friendly_name: true, with_class_name: true}, {class: 'deemphasize'} %>
-          </div>
-
-          <% %w(script script_version script_parameters output).each do |key| %>
-            <div class="span3">
-              <% unless key=='output' and pj[:result] != 'complete' %>
-              <% val = pj[key.to_sym] || pj[:job].andand[key.to_sym] %>
-              <% link_name = case
-                 when !val
-                   val = ''
-                 when key == 'script_version' && val.match(/^[0-9a-f]{7,}$/)
-                   val = val[0..7] # TODO: leave val alone, make link_to handle git commits
-                 when key == 'output'
-                   val.sub! /\+K.*$/, ''
-                   val[0..12]
-                 when key == 'script_parameters'
-                   val = val.keys.sort.join(', ')
-                 end
-                 %>
-              <span class="deemphasize"><%= key %>:</span> <span class="<%= 'notnormal' if !pj[:is_normal][key.to_sym] %>"><%= link_to_if_arvados_object val, {friendly_name: true, link_text: link_name} %></span>
-              <% end %>
-            </div>
-          <% end %>
-          <% else %>
-          None
-        <% end %>
-      </div>
-    </div>
-  <% end %>
-</div>
-<div class="row" style="padding: .5em">
-</div>
-<% end %>
-
-
-  <div style="text-align: center">
-    <span class="pipeline_color_legend" style="background: #88ff88">This pipeline</span> 
-    <span class="pipeline_color_legend" style="background: #8888ff">Comparison pipeline</span>
-    <span class="pipeline_color_legend" style="background: #88ffff">Shared by both pipelines</span>
-  </div>
-
-   <%= render partial: 'application/svg_div', locals: {
-         divId: "provenance_graph", 
-         svgId: "provenance_svg", 
-         svg: @prov_svg } %>
+<%= render partial: 'content', layout: 'content_layout', locals: {pane_list: controller.compare_pane_list }  %>
diff --git a/apps/workbench/app/views/pipeline_templates/_recent.html.erb b/apps/workbench/app/views/pipeline_templates/_recent.html.erb
deleted file mode 100644
index dd8bad0..0000000
--- a/apps/workbench/app/views/pipeline_templates/_recent.html.erb
+++ /dev/null
@@ -1,34 +0,0 @@
-<table class="table table-hover">
-  <thead>
-    <tr class="contain-align-left">
-      <th>
-	id
-      </th><th>
-	name
-      </th><th>
-	owner
-      </th><th>
-	components
-      </th>
-    </tr>
-  </thead>
-  <tbody>
-
-    <% @objects.sort_by { |ob| ob[:created_at] }.reverse.each do |ob| %>
-
-    <tr>
-      <td>
-        <%= link_to_if_arvados_object ob %>
-      </td><td>
-        <%= render_editable_attribute ob, 'name' %>
-      </td><td>
-        <%= link_to_if_arvados_object ob.owner_uuid %>
-      </td><td>
-        <%= ob.components.collect { |k,v| k.to_s }.join(", ") %>
-      </td>
-    </tr>
-
-    <% end %>
-
-  </tbody>
-</table>
diff --git a/apps/workbench/app/views/pipeline_templates/show.html.erb b/apps/workbench/app/views/pipeline_templates/show.html.erb
deleted file mode 100644
index 097347b..0000000
--- a/apps/workbench/app/views/pipeline_templates/show.html.erb
+++ /dev/null
@@ -1,42 +0,0 @@
-<table class="table topalign">
-  <thead>
-  </thead>
-  <tbody>
-    <% @object.attributes_for_display.each do |attr, attrvalue| %>
-    <% if attr == 'components' and attrvalue.is_a? Hash and attrvalue[:steps].is_a? Array %>
-
-    <tr><td>components[steps]</td><td>
-        <table class="table">
-          <% attrvalue[:steps].each_with_index do |s, i| %>
-          <tr>
-            <td><%= i %></td>
-            <% %w(name function min_revision max_steps_per_node params).each do |key| %>
-            <td>
-              <% if key == 'params' %>
-              <% s[key.to_sym].each do |p| %>
-              <%= p[:name] %>
-              <% if p[:data_locator] || p[:value] %>
-              ← <%= p[:data_locator] || p[:value] %>
-              <% end %>
-              <%= '(optional)' if p[:optional] %>
-              <br />
-              <% end %>
-              <% else %>
-              <%= s[key.to_sym] %>
-              <% end %>
-            </td>
-            <% end %>
-          </tr>
-          <% end %>
-        </table>
-    </td></tr>
-
-    <% else %>
-    <%= render partial: 'application/arvados_object_attr', locals: { attr: attr, attrvalue: attrvalue } %>
-    <% end %>
-    <% end %>
-  </tbody>
-</table>
-<pre>
-<%= JSON.pretty_generate(@object.attributes) rescue nil %>
-</pre>
diff --git a/apps/workbench/app/views/repositories/_help.html.erb b/apps/workbench/app/views/repositories/_help.html.erb
deleted file mode 100644
index 2830da5..0000000
--- a/apps/workbench/app/views/repositories/_help.html.erb
+++ /dev/null
@@ -1,27 +0,0 @@
-<% if (example = @objects.select(&:push_url).first) %>
-
-<p>
-Sample git quick start:
-</p>
-
-<pre>
-git clone <%= example.push_url %> <%= example.name unless example.push_url.match(/:(\S+)\.git$/).andand[1] == example.name %>
-cd <%= example.name %>
-# edit files
-git add the/files/you/changed
-git commit
-git push
-</pre>
-
-<% end %>
-
-<p>
-  See also:
-  <%= link_to raw('Arvados Docs → User Guide → SSH access'),
-  "#{Rails.configuration.arvados_docsite}/user/getting_started/ssh-access.html",
-      target: "_blank"%> and 
-  <%= link_to raw('Arvados Docs → User Guide → Writing a Crunch
-  Script'),
-  "#{Rails.configuration.arvados_docsite}/user/tutorials/tutorial-firstscript.html",
-  target: "_blank"%>.
-</p>
diff --git a/apps/workbench/app/views/virtual_machines/_help.html.erb b/apps/workbench/app/views/virtual_machines/_help.html.erb
deleted file mode 100644
index abf76b0..0000000
--- a/apps/workbench/app/views/virtual_machines/_help.html.erb
+++ /dev/null
@@ -1,26 +0,0 @@
-<p>
-Sample <code>~/.ssh/config</code> section:
-</p>
-
-<pre>
-Host *.arvados
-  ProxyCommand ssh -p2222 turnout at switchyard.<%= current_api_host || 'xyzzy.arvadosapi.com' %> -x -a $SSH_PROXY_FLAGS %h
-<% if @objects.first.andand.current_user_logins.andand.first %>
-  User <%= @objects.first.current_user_logins.andand.first %>
-<% end %>
-</pre>
-
-<p>
-Sample login command:
-</p>
-
-<pre>
-ssh <%= @objects.first.andand.hostname.andand.sub('.'+current_api_host,'') or 'vm-hostname' %>.arvados
-</pre>
-
-<p>
-  See also:
-  <%= link_to raw('Arvados Docs → User Guide → SSH access'),
-  "#{Rails.configuration.arvados_docsite}/user/getting_started/ssh-access.html",
-  target: "_blank"%>.
-</p>

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


hooks/post-receive
-- 




More information about the arvados-commits mailing list