[ARVADOS] updated: c16a97576716f81c721bcd0c889309cb75e3eb9a
git at public.curoverse.com
git at public.curoverse.com
Wed Feb 5 23:03:44 EST 2014
Summary of changes:
.../app/assets/javascripts/application.js | 2 +
.../workbench/app/assets/javascripts/provenance.js | 13 +++-
.../app/assets/stylesheets/application.css.scss | 4 +
.../app/controllers/application_controller.rb | 33 +------
.../app/controllers/collections_controller.rb | 2 +-
apps/workbench/app/controllers/jobs_controller.rb | 4 +
.../controllers/pipeline_instances_controller.rb | 4 +
.../app/views/application/_arvados_object.html.erb | 88 ----------------
.../app/views/application/_show_api.html.erb | 27 +++++
.../views/application/_show_attributes.html.erb | 14 +++-
.../app/views/application/_show_json.html.erb | 3 +
.../app/views/application/_show_links.html.erb | 40 ++++++++
.../app/views/application/_svg_div.html.erb | 4 +-
.../workbench/app/views/application/index.html.erb | 22 ++---
apps/workbench/app/views/application/show.html.erb | 7 +-
.../app/views/collections/_show_files.html.erb | 4 +-
.../{show.html.erb => _show_provenance.html.erb} | 2 -
.../app/views/layouts/application.html.erb | 105 +++++++++++++-------
.../{show.html.erb => _show_components.html.erb} | 17 ---
.../views/pipeline_instances/_show_graph.html.erb | 19 ++++
.../{show.js.erb => _show_graph.js.erb} | 0
21 files changed, 217 insertions(+), 197 deletions(-)
create mode 100644 apps/workbench/app/views/application/_show_api.html.erb
create mode 100644 apps/workbench/app/views/application/_show_json.html.erb
create mode 100644 apps/workbench/app/views/application/_show_links.html.erb
rename apps/workbench/app/views/jobs/{show.html.erb => _show_provenance.html.erb} (77%)
rename apps/workbench/app/views/pipeline_instances/{show.html.erb => _show_components.html.erb} (74%)
create mode 100644 apps/workbench/app/views/pipeline_instances/_show_graph.html.erb
rename apps/workbench/app/views/pipeline_instances/{show.js.erb => _show_graph.js.erb} (100%)
via c16a97576716f81c721bcd0c889309cb75e3eb9a (commit)
from 0863b0df409012677f0911ac3a068195067f7c7b (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 c16a97576716f81c721bcd0c889309cb75e3eb9a
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date: Wed Feb 5 23:04:40 2014 -0500
* Left nav correctly highlights current section
* Refactored pipeline instances and job pages to use tabs
* Uses javascript to adjust height of tab pane so that scrollbars show up in the right place
* Fixed some glyphicons broken by bootstrap 3
diff --git a/apps/workbench/app/assets/javascripts/application.js b/apps/workbench/app/assets/javascripts/application.js
index 863776b..fbbf8f3 100644
--- a/apps/workbench/app/assets/javascripts/application.js
+++ b/apps/workbench/app/assets/javascripts/application.js
@@ -14,6 +14,7 @@
//= require jquery_ujs
//= require bootstrap
//= require bootstrap/dropdown
+//= require bootstrap/tab
//= require bootstrap-editable
//= require bootstrap-editable-rails
//= require_tree .
@@ -46,3 +47,4 @@ jQuery(function($){
$('.loading').hide();
});
})(jQuery);
+
diff --git a/apps/workbench/app/assets/javascripts/provenance.js b/apps/workbench/app/assets/javascripts/provenance.js
index bacbfd1..53e2d19 100644
--- a/apps/workbench/app/assets/javascripts/provenance.js
+++ b/apps/workbench/app/assets/javascripts/provenance.js
@@ -29,6 +29,7 @@ function provenance_sizing_fixup(divId, svgId) {
b.style.paddingTop = String(max) + "px";
}
+ /*
w = window.innerWidth - 25;
a.style.width = String(w) + "px";
gw = parseFloat(g.getAttribute("width"));
@@ -37,7 +38,7 @@ function provenance_sizing_fixup(divId, svgId) {
}
else {
c.style.paddingLeft = "0px";
- }
+ }*/
}
function graph_zoom(divId, svgId, scale) {
@@ -51,3 +52,13 @@ function graph_zoom(divId, svgId, scale) {
pg.scrollLeft = (hcenter * pg.scrollWidth) - (pg.scrollWidth - pg.scrollLeftMax)/2.0;
provenance_sizing_fixup(divId, svgId);
}
+
+$(window).on('load resize', function () {
+ var s = document.getElementsByClassName("smart-scroll");
+ for (var i = 0; i < s.length; i++) {
+ a = s[i];
+ var h = window.innerHeight - a.getBoundingClientRect().top - 20;
+ height = String(h) + "px";
+ a.style.height = height;
+ }
+});
diff --git a/apps/workbench/app/assets/stylesheets/application.css.scss b/apps/workbench/app/assets/stylesheets/application.css.scss
index 6fc4522..d94dc4e 100644
--- a/apps/workbench/app/assets/stylesheets/application.css.scss
+++ b/apps/workbench/app/assets/stylesheets/application.css.scss
@@ -117,3 +117,7 @@ ul.arvados-nav li ul li {
margin-right: 1em;
float: left
}
+
+.smart-scroll {
+ overflow: auto;
+}
\ No newline at end of file
diff --git a/apps/workbench/app/controllers/application_controller.rb b/apps/workbench/app/controllers/application_controller.rb
index aa87a60..4c2d6dd 100644
--- a/apps/workbench/app/controllers/application_controller.rb
+++ b/apps/workbench/app/controllers/application_controller.rb
@@ -142,6 +142,10 @@ class ApplicationController < ActionController::Base
(@object.friendly_link_name if @object.respond_to? :friendly_link_name))
end
+ def show_pane_list
+ %w(attributes links json api)
+ end
+
protected
def find_object_by_uuid
@@ -343,34 +347,5 @@ class ApplicationController < ActionController::Base
if @notification_count == 0
@notification_count = ''
end
-
- # @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_tag_links = {}
-
- # @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)
-
- # Link.limit(1000).where(head_uuid: @my_collections.collect(&:uuid),
- # link_class: 'tag').each do |link|
- # (@my_tag_links[link.head_uuid] ||= []) << link
- # end
-
- # @my_pipelines = PipelineInstance.
- # limit(10).
- # order('created_at desc').
- # where(created_by: current_user.uuid)
-
-
-
end
end
diff --git a/apps/workbench/app/controllers/collections_controller.rb b/apps/workbench/app/controllers/collections_controller.rb
index c6a7eaf..c38ca9a 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 provenance_graph used_by)
+ %w(files attributes provenance_graph used_by)
end
def index
if params[:search].andand.length.andand > 0
diff --git a/apps/workbench/app/controllers/jobs_controller.rb b/apps/workbench/app/controllers/jobs_controller.rb
index e6179ff..9b52977 100644
--- a/apps/workbench/app/controllers/jobs_controller.rb
+++ b/apps/workbench/app/controllers/jobs_controller.rb
@@ -30,4 +30,8 @@ class JobsController < ApplicationController
def show
generate_provenance([@object])
end
+
+ def show_pane_list
+ %w(attributes provenance links 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 4798271..b7339c0 100644
--- a/apps/workbench/app/controllers/pipeline_instances_controller.rb
+++ b/apps/workbench/app/controllers/pipeline_instances_controller.rb
@@ -128,6 +128,10 @@ class PipelineInstancesController < ApplicationController
:pips => pips }
end
+ def show_pane_list
+ %w(components graph attributes links json api)
+ end
+
protected
def for_comparison v
if v.is_a? Hash or v.is_a? Array
diff --git a/apps/workbench/app/views/application/_arvados_object.html.erb b/apps/workbench/app/views/application/_arvados_object.html.erb
index d04ca84..b4bf70d 100644
--- a/apps/workbench/app/views/application/_arvados_object.html.erb
+++ b/apps/workbench/app/views/application/_arvados_object.html.erb
@@ -1,57 +1,5 @@
<% content_for :arvados_object_table do %>
-<%= form_for @object do |f| %>
-<table class="table topalign">
- <thead>
- </thead>
- <tbody>
- <% @object.attributes_for_display.each do |attr, attrvalue| %>
- <%= render partial: 'application/arvados_object_attr', locals: { attr: attr, attrvalue: attrvalue } %>
- <% end %>
- </tbody>
-</table>
-
-<% 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 %>
-
-<% end %>
<% end %>
<% if content_for? :page_content %>
@@ -80,45 +28,9 @@
</div>
<% end %>
<div id="arvados-object-json" class="tab-pane fade in active">
- <pre>
-<%= JSON.pretty_generate(@object.attributes.reject { |k,v| k == 'id' }) rescue nil %>
- </pre>
- </div>
- <% if @object.andand.uuid %>
-
- <div id="arvados-object-curl" class="tab-pane fade">
- <pre>
-curl -X PUT \
- -H "Authorization: OAuth2 $ARVADOS_API_TOKEN" \
- --data-urlencode <%= @object.class.to_s.underscore %>@/dev/stdin \
- https://$ARVADOS_API_HOST/arvados/v1/<%= @object.class.to_s.pluralize.underscore %>/<%= @object.uuid %> \
- <<EOF
-<%= JSON.pretty_generate({@object.attributes.keys[-3] => @object.attributes.values[-3]}) %>
-EOF
- </pre>
- </div>
-
- <div id="arvados-object-arv" class="tab-pane fade">
- <pre>
-arv --pretty <%= @object.class.to_s.underscore %> get \
- --uuid <%= @object.uuid %>
-
-arv <%= @object.class.to_s.underscore %> update \
- --uuid <%= @object.uuid %> \
- --<%= @object.class.to_s.underscore.gsub '_', '-' %> '<%= JSON.generate({@object.attributes.keys[-3] => @object.attributes.values[-3]}).gsub("'","'\''") %>'
- </pre>
</div>
- <div id="arvados-object-python" class="tab-pane fade">
- <pre>
-import arvados
-
-x = arvados.api().<%= @object.class.to_s.pluralize.underscore %>().get(uuid='<%= @object.uuid %>').execute()
- </pre>
- </div>
-
- <% end %>
</div>
</div>
diff --git a/apps/workbench/app/views/application/_show_api.html.erb b/apps/workbench/app/views/application/_show_api.html.erb
new file mode 100644
index 0000000..df271e0
--- /dev/null
+++ b/apps/workbench/app/views/application/_show_api.html.erb
@@ -0,0 +1,27 @@
+<% if @object.andand.uuid %>
+
+ <pre>
+curl -X PUT \
+ -H "Authorization: OAuth2 $ARVADOS_API_TOKEN" \
+ --data-urlencode <%= @object.class.to_s.underscore %>@/dev/stdin \
+ https://$ARVADOS_API_HOST/arvados/v1/<%= @object.class.to_s.pluralize.underscore %>/<%= @object.uuid %> \
+ <<EOF
+<%= JSON.pretty_generate({@object.attributes.keys[-3] => @object.attributes.values[-3]}) %>
+EOF
+ </pre>
+
+ <pre>
+arv --pretty <%= @object.class.to_s.underscore %> get \
+ --uuid <%= @object.uuid %>
+
+arv <%= @object.class.to_s.underscore %> update \
+ --uuid <%= @object.uuid %> \
+ --<%= @object.class.to_s.underscore.gsub '_', '-' %> '<%= JSON.generate({@object.attributes.keys[-3] => @object.attributes.values[-3]}).gsub("'","'\''") %>'
+ </pre>
+
+ <pre>
+import arvados
+
+x = arvados.api().<%= @object.class.to_s.pluralize.underscore %>().get(uuid='<%= @object.uuid %>').execute()
+ </pre>
+<% end %>
diff --git a/apps/workbench/app/views/application/_show_attributes.html.erb b/apps/workbench/app/views/application/_show_attributes.html.erb
index 0e8d2a2..965ec5a 100644
--- a/apps/workbench/app/views/application/_show_attributes.html.erb
+++ b/apps/workbench/app/views/application/_show_attributes.html.erb
@@ -1 +1,13 @@
-<%= render partial: 'arvados_object' %>
+<%= form_for @object do |f| %>
+<table class="table topalign">
+ <thead>
+ </thead>
+ <tbody>
+ <% @object.attributes_for_display.each do |attr, attrvalue| %>
+ <%= render partial: 'application/arvados_object_attr', locals: { attr: attr, attrvalue: attrvalue } %>
+ <% end %>
+ </tbody>
+</table>
+
+<% end %>
+
diff --git a/apps/workbench/app/views/application/_show_json.html.erb b/apps/workbench/app/views/application/_show_json.html.erb
new file mode 100644
index 0000000..2f0cd21
--- /dev/null
+++ b/apps/workbench/app/views/application/_show_json.html.erb
@@ -0,0 +1,3 @@
+<pre>
+<%= JSON.pretty_generate(@object.attributes.reject { |k,v| k == 'id' }) rescue nil %>
+</pre>
diff --git a/apps/workbench/app/views/application/_show_links.html.erb b/apps/workbench/app/views/application/_show_links.html.erb
new file mode 100644
index 0000000..8dcf335
--- /dev/null
+++ b/apps/workbench/app/views/application/_show_links.html.erb
@@ -0,0 +1,40 @@
+<% 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/_svg_div.html.erb b/apps/workbench/app/views/application/_svg_div.html.erb
index ddc8e61..9f5f330 100644
--- a/apps/workbench/app/views/application/_svg_div.html.erb
+++ b/apps/workbench/app/views/application/_svg_div.html.erb
@@ -27,8 +27,8 @@ stroke-linecap: round;
<div id="_<%= divId %>_container" style="padding-top: 41px; margin-top: -41px">
<div style="text-align: right">
- <a style="cursor: pointer"><span class="icon-zoom-out" onclick="graph_zoom('<%= divId %>', '<%= svgId %>', .9)"></span></a>
- <a style="cursor: pointer"><span class="icon-zoom-in" onclick="graph_zoom('<%= divId %>', '<%= svgId %>', 1./.9)"></span></a>
+ <a style="cursor: pointer"><span class="glyphicon glyphicon-zoom-out" onclick="graph_zoom('<%= divId %>', '<%= svgId %>', .9)"></span></a>
+ <a style="cursor: pointer"><span class="glyphicon glyphicon-zoom-in" onclick="graph_zoom('<%= divId %>', '<%= svgId %>', 1./.9)"></span></a>
</div>
<div id="<%= divId %>">
diff --git a/apps/workbench/app/views/application/index.html.erb b/apps/workbench/app/views/application/index.html.erb
index 4ebedf6..26adf59 100644
--- a/apps/workbench/app/views/application/index.html.erb
+++ b/apps/workbench/app/views/application/index.html.erb
@@ -7,6 +7,7 @@
{ 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'} %>
@@ -14,24 +15,17 @@
<% pane_list = controller.index_pane_list rescue %w(recent) %>
-<% if pane_list.length > 1 %>
-<div class="tabbable">
<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>
+ <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 %>">
- <%= render partial: pane %>
+<% 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>
-
-<% else %>
- <% pane_list.each_with_index do |pane, i| %>
- <%= render partial: pane %>
- <% end %>
<% end %>
+</div>
diff --git a/apps/workbench/app/views/application/show.html.erb b/apps/workbench/app/views/application/show.html.erb
index d2abd72..03a8f9b 100644
--- a/apps/workbench/app/views/application/show.html.erb
+++ b/apps/workbench/app/views/application/show.html.erb
@@ -21,9 +21,8 @@
<% end %>
<% end %>
-<% pane_list = controller.show_pane_list rescue %w(attributes) %>
+<% pane_list = controller.show_pane_list %>
-<div class="tabbable">
<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>
@@ -33,7 +32,9 @@
<div class="tab-content">
<% pane_list.each_with_index do |pane, i| %>
<div id="<%= pane %>" class="tab-pane fade in <%= 'active' if i==0 %>">
- <%= render partial: 'show_' + pane %>
+ <div class="smart-scroll">
+ <%= render partial: 'show_' + pane %>
+ </div>
</div>
<% end %>
</div>
diff --git a/apps/workbench/app/views/collections/_show_files.html.erb b/apps/workbench/app/views/collections/_show_files.html.erb
index 3973800..991c92d 100644
--- a/apps/workbench/app/views/collections/_show_files.html.erb
+++ b/apps/workbench/app/views/collections/_show_files.html.erb
@@ -3,7 +3,7 @@
<tr>
<th>path</th>
<th>file</th>
- <th style="width:1.5em">d/l</th>
+ <th style="width: 3em">d/l</th>
<th style="width: 7em; text-align:right">size</th>
</tr>
</thead><tbody>
@@ -20,7 +20,7 @@
<td>
<div style="display:inline-block">
- <%= link_to raw('<i class="icon-download"></i>'), {controller: 'collections', action: 'show_file', uuid: @object.uuid, file: file_path, size: file[2], disposition: 'attachment'}, {class: 'label label-info', title: 'Download'} %>
+ <%= link_to raw('<i class="glyphicon glyphicon-download"></i>'), {controller: 'collections', action: 'show_file', uuid: @object.uuid, file: file_path, size: file[2], disposition: 'attachment'}, {class: 'label label-info', title: 'Download'} %>
</div>
</td>
diff --git a/apps/workbench/app/views/jobs/show.html.erb b/apps/workbench/app/views/jobs/_show_provenance.html.erb
similarity index 77%
rename from apps/workbench/app/views/jobs/show.html.erb
rename to apps/workbench/app/views/jobs/_show_provenance.html.erb
index 2bc74ca..253af56 100644
--- a/apps/workbench/app/views/jobs/show.html.erb
+++ b/apps/workbench/app/views/jobs/_show_provenance.html.erb
@@ -1,5 +1,3 @@
-<%= render partial: 'arvados_object' %>
-
<%= render partial: 'application/svg_div', locals: {
divId: "provenance_graph",
svgId: "provenance_svg",
diff --git a/apps/workbench/app/views/layouts/application.html.erb b/apps/workbench/app/views/layouts/application.html.erb
index b5bf677..b7f4ad3 100644
--- a/apps/workbench/app/views/layouts/application.html.erb
+++ b/apps/workbench/app/views/layouts/application.html.erb
@@ -23,9 +23,19 @@
<% end %>
<style>
<%= yield :css %>
+ body {
+ min-height: 100%;
+ height: 100%;
+ }
+
body > div.container-fluid {
padding-top: 70px; /* 70px to make the container go all the way to the bottom of the navbar */
}
+
+ body > div.container-fluid > div.col-sm-9.col-sm-offset-3 {
+ overflow: auto;
+ }
+
@media (max-width: 979px) { body { padding-top: 0; } }
.navbar .nav li.nav-separator > span.glyphicon.glyphicon-arrow-right {
@@ -39,7 +49,14 @@
width: 400px;
overflow-y: auto;
}
-
+
+ .arvados-nav-container {
+ position: fixed;
+ top: 70px;
+ height: calc(100% - 70px);
+ overflow: auto;
+ z-index: 2;
+ }
.arvados-nav-active {
background: rgb(66, 139, 202);
}
@@ -87,10 +104,11 @@
<li>
<form class="navbar-form" role="search">
- <div class="input-group" style="width: 300px">
+ <div class="input-group" style="width: 220px">
<input type="text" class="form-control" placeholder="search">
- <span class="input-group-addon"><span class="glyphicon glyphicon-search"></span>
+ <span class="input-group-addon"><span class="glyphicon glyphicon-search"></span></span>
</div>
+ </form>
</li>
<li class="dropdown">
@@ -131,34 +149,36 @@
</div>
</div>
- <div style="padding: 70px 15px 0px">
- <div class="row">
+ <div class="container-fluid">
<div class="col-sm-3">
+ <div class="left-nav arvados-nav-container">
<% if current_user %>
<div class="well">
<ul class="arvados-nav">
<li><a href="/">Dashboard</a></li>
- <li>Data
- <ul>
- <li class="arvados-nav-active"><a href="/humans">Humans</a></li>
- <li><a href="/traits">Traits</a></li>
- <li><a href="/specimens">Specimens</a></li>
- <li><a href="/collections">Files</a></li>
- </ul>
- </li>
- <li>Compute
- <ul>
- <li><a href="/pipeline_templates">Pipelines</a></li>
- <li><a href="/repositories">Script repositories</a></li>
- <li><a href="/virtual_machines">Virtual machines</a></li>
- </ul>
- </li>
- <li>History
- <ul>
- <li><a href="/pipeline_instances">Pipeline history</a></li>
- <li><a href="/jobs">Job history</a></li>
- </ul>
- </li>
+
+ <% [['Data', [['humans'],
+ ['traits'],
+ ['specimens'],
+ ['collections', 'Files']]],
+ ['Compute', [['pipeline_templates', 'Pipelines'],
+ ['repositories', 'Code repositories'],
+ ['virtual_machines']]],
+ ['Activity', [['pipeline_instances', 'Recent pipelines'],
+ ['jobs', 'Recent jobs']]]].each do |j| %>
+ <li><%= j[0] %>
+ <ul>
+ <% j[1].each do |k| %>
+ <li class="<%= 'arvados-nav-active' if params[:controller] == k[0] %>">
+ <a href="/<%= k[0] %>">
+ <%= if k[1] then k[1] else k[0].capitalize.gsub('_', ' ') end %>
+ </a>
+ </li>
+ <% end %>
+ </ul>
+ </li>
+ <% end %>
+
<li>Help
<ul>
<li><%= link_to 'Tutorials and User guide', "#{Rails.configuration.arvados_docsite}/user", target: "_blank" %></li>
@@ -168,23 +188,34 @@
</ul>
</li>
<% if current_user.andand.is_admin %>
- <li>Admin
- <ul>
- <li><a href="/users">Users</a></li>
- <li><a href="/groups">Groups</a></li>
- <li><a href="/compute_nodes">Compute nodes</a></li>
- <li><a href="/keep_disks">Keep disks</a></li>
- </ul>
- </li>
+
+ <% [['Admin', [['users'],
+ ['groups'],
+ ['nodes', 'Compute nodes'],
+ ['keep_disks']]]].each do |j| %>
+ <li><%= j[0] %>
+ <ul>
+ <% j[1].each do |k| %>
+ <li class="<%= "arvados-nav-active" if params[:controller] == k[0] %>">
+ <a href="/<%= k[0] %>">
+ <%= if k[1] then k[1] else k[0].capitalize.gsub('_', ' ') end %>
+ </a>
+ </li>
+ <% end %>
+ </ul>
+ </li>
+ <% end %>
<% end %>
</ul>
</div>
<% end %>
</div>
- <div class="col-sm-9">
- <%= yield %>
+ </div>
+ <div class="col-sm-9 col-sm-offset-3">
+ <div id="content">
+ <%= yield %>
+ </div>
</div>
- </div>
</div>
<%= piwik_tracking_tag %>
diff --git a/apps/workbench/app/views/pipeline_instances/show.html.erb b/apps/workbench/app/views/pipeline_instances/_show_components.html.erb
similarity index 74%
rename from apps/workbench/app/views/pipeline_instances/show.html.erb
rename to apps/workbench/app/views/pipeline_instances/_show_components.html.erb
index cf56b97..c6f7f9a 100644
--- a/apps/workbench/app/views/pipeline_instances/show.html.erb
+++ b/apps/workbench/app/views/pipeline_instances/_show_components.html.erb
@@ -65,23 +65,6 @@ table.pipeline-components-table div.progress {
</tfoot>
</table>
-<% if @pipelines.count > 1 %>
- <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>
-<% end %>
-
- <%= render partial: 'application/svg_div', locals: {
- divId: "provenance_graph",
- svgId: "provenance_svg",
- svg: @prov_svg } %>
-
-<div style="height: 1em"></div>
-
-<%= render partial: 'arvados_object' %>
-
<% if @object.active %>
<% content_for :js do %>
setInterval(function(){$('a.refresh').click()}, 30000);
diff --git a/apps/workbench/app/views/pipeline_instances/_show_graph.html.erb b/apps/workbench/app/views/pipeline_instances/_show_graph.html.erb
new file mode 100644
index 0000000..ad3a8bb
--- /dev/null
+++ b/apps/workbench/app/views/pipeline_instances/_show_graph.html.erb
@@ -0,0 +1,19 @@
+<% content_for :css do %>
+ .pipeline_color_legend {
+ padding-left: 1em;
+ padding-right: 1em;
+ }
+<% end %>
+
+<% if @pipelines.count > 1 %>
+ <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>
+<% end %>
+
+<%= render partial: 'application/svg_div', locals: {
+ divId: "provenance_graph",
+ svgId: "provenance_svg",
+ svg: @prov_svg } %>
diff --git a/apps/workbench/app/views/pipeline_instances/show.js.erb b/apps/workbench/app/views/pipeline_instances/_show_graph.js.erb
similarity index 100%
rename from apps/workbench/app/views/pipeline_instances/show.js.erb
rename to apps/workbench/app/views/pipeline_instances/_show_graph.js.erb
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list