[ARVADOS] updated: 626db8559ebaa13df19dafe9bb03b1bd484b762c
git at public.curoverse.com
git at public.curoverse.com
Fri Jun 6 13:45:24 EDT 2014
Summary of changes:
.../app/controllers/application_controller.rb | 2 +
apps/workbench/app/controllers/jobs_controller.rb | 2 +
.../controllers/pipeline_instances_controller.rb | 26 ++++++------
apps/workbench/app/models/arvados_api_client.rb | 4 ++
.../app/views/application/_content.html.erb | 46 +++++++++++++++-------
.../pipeline_instances/_show_components.html.erb | 3 --
6 files changed, 55 insertions(+), 28 deletions(-)
via 626db8559ebaa13df19dafe9bb03b1bd484b762c (commit)
from 32f6ee6884704bde04878f5cbc176a7a819a50e8 (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 626db8559ebaa13df19dafe9bb03b1bd484b762c
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date: Fri Jun 6 13:45:18 2014 -0400
2961: Added checks if we are rendering a tab partial and skips expensive calls
to the API server if not needed to render the requested tab pane.
diff --git a/apps/workbench/app/controllers/application_controller.rb b/apps/workbench/app/controllers/application_controller.rb
index 24d6ab3..fa1b8fa 100644
--- a/apps/workbench/app/controllers/application_controller.rb
+++ b/apps/workbench/app/controllers/application_controller.rb
@@ -419,6 +419,8 @@ class ApplicationController < ActionController::Base
}
def check_user_notifications
+ return if params['tab_pane']
+
@notification_count = 0
@notifications = []
diff --git a/apps/workbench/app/controllers/jobs_controller.rb b/apps/workbench/app/controllers/jobs_controller.rb
index 9de82d8..03d5cb3 100644
--- a/apps/workbench/app/controllers/jobs_controller.rb
+++ b/apps/workbench/app/controllers/jobs_controller.rb
@@ -1,6 +1,8 @@
class JobsController < ApplicationController
def generate_provenance(jobs)
+ return if params['tab_pane'] != "Provenance"
+
nodes = []
collections = []
jobs.each do |j|
diff --git a/apps/workbench/app/controllers/pipeline_instances_controller.rb b/apps/workbench/app/controllers/pipeline_instances_controller.rb
index 761dc91..500927b 100644
--- a/apps/workbench/app/controllers/pipeline_instances_controller.rb
+++ b/apps/workbench/app/controllers/pipeline_instances_controller.rb
@@ -4,7 +4,9 @@ class PipelineInstancesController < ApplicationController
include PipelineInstancesHelper
def graph(pipelines)
- count = {}
+ return nil, nil if params['tab_pane'] != "Graph"
+
+ count = {}
provenance = {}
pips = {}
n = 1
@@ -43,7 +45,7 @@ class PipelineInstancesController < ApplicationController
pips[uuid] = 0 unless pips[uuid] != nil
pips[uuid] |= n
end
-
+
n = n << 1
end
@@ -60,13 +62,15 @@ class PipelineInstancesController < ApplicationController
end
provenance, pips = graph(@pipelines)
+ if provenance
+ @prov_svg = ProvenanceHelper::create_provenance_graph provenance, "provenance_svg", {
+ :request => request,
+ :all_script_parameters => true,
+ :combine_jobs => :script_and_version,
+ :script_version_nodes => true,
+ :pips => pips }
+ end
- @prov_svg = ProvenanceHelper::create_provenance_graph provenance, "provenance_svg", {
- :request => request,
- :all_script_parameters => true,
- :combine_jobs => :script_and_version,
- :script_version_nodes => true,
- :pips => pips }
super
end
@@ -135,7 +139,7 @@ class PipelineInstancesController < ApplicationController
@prov_svg = ProvenanceHelper::create_provenance_graph provenance, "provenance_svg", {
:request => request,
- :all_script_parameters => true,
+ :all_script_parameters => true,
:combine_jobs => :script_and_version,
:script_version_nodes => true,
:pips => pips }
@@ -149,9 +153,9 @@ class PipelineInstancesController < ApplicationController
panes
end
- def compare_pane_list
+ def compare_pane_list
%w(Compare Graph)
- end
+ end
def index
@limit = 20
diff --git a/apps/workbench/app/models/arvados_api_client.rb b/apps/workbench/app/models/arvados_api_client.rb
index 7574cf6..25c54d1 100644
--- a/apps/workbench/app/models/arvados_api_client.rb
+++ b/apps/workbench/app/models/arvados_api_client.rb
@@ -194,6 +194,10 @@ class ArvadosApiClient
resource_class.to_s.underscore
end
+ def self.class_kind(resource_class)
+ resource_class.to_s.underscore
+ end
+
protected
def profile_checkpoint label=nil
return if !@@profiling_enabled
diff --git a/apps/workbench/app/views/application/_content.html.erb b/apps/workbench/app/views/application/_content.html.erb
index 4499392..494a3ab 100644
--- a/apps/workbench/app/views/application/_content.html.erb
+++ b/apps/workbench/app/views/application/_content.html.erb
@@ -1,3 +1,24 @@
+<% content_for :js do %>
+ function ajaxRefreshTabPane(pane) {
+ $.ajax('<%= url_for @object %>?tab_pane='+pane, {dataType: 'html', type: 'GET'}).
+ done(function(data, status, jqxhr) {
+ $('#' + pane + ' > div > div').html(data);
+ $(document).trigger('ajax:complete')
+ });
+ }
+
+ $(window).on('load', smart_scroll_fixup);
+
+ $(document).on('shown.bs.tab', 'ul.nav-tabs > li > a', smart_scroll_fixup);
+ $(document).on('shown.bs.tab', function(e) {
+ ajaxRefreshTabPane(e.target.id.slice(0, -4));
+ });
+
+ $(document).on('arv-log-event', function() {
+ ajaxRefreshTabPane($('.tab-pane.active')[0].id);
+ });
+<% end %>
+
<% content_for :tab_panes do %>
<% comparable = controller.respond_to? :compare %>
@@ -11,17 +32,19 @@
<% pane_list.each_with_index do |pane, i| %>
<div id="<%= pane %>"
class="tab-pane fade <%= 'in active' if i==0 %> arv-log-event-listener"
- data-object-uuid="<%= @object.uuid if @object %>">
+<% if controller.action_name == "index" %>
+ data-object-kind="arvados#<%= ArvadosApiClient.class_kind controller.model_class %>"
+<% else %>
+ data-object-uuid="<%= @object.uuid %>"
+<% end %>
+>
<% content_for :js do %>
- $(document).on('<%= 'ready' if i != 0 %> arv-log-event', function() {
- $.ajax('<%= url_for @object %>?tab_pane=<%= pane %>', {dataType: 'html', type: 'GET'}).
- done(function(data, status, jqxhr) {
- $('#<%= pane %> > div > div').html(data);
- }).
- fail(function(jqxhr, status, error) {
- });
- });
+ <% if i != 0 %>
+ $(document).on('ready', function() {
+ ajaxRefreshTabPane('<%= pane %>');
+ });
+ <% end %>
<% end %>
<div class="smart-scroll" style="margin-top:0.5em;">
@@ -39,8 +62,3 @@
</div>
<% end %>
-
-<% content_for :js do %>
- $(window).on('load', smart_scroll_fixup);
- $(document).on('shown.bs.tab', 'ul.nav-tabs > li > a', smart_scroll_fixup);
-<% end %>
diff --git a/apps/workbench/app/views/pipeline_instances/_show_components.html.erb b/apps/workbench/app/views/pipeline_instances/_show_components.html.erb
index c075610..099d4cd 100644
--- a/apps/workbench/app/views/pipeline_instances/_show_components.html.erb
+++ b/apps/workbench/app/views/pipeline_instances/_show_components.html.erb
@@ -92,9 +92,6 @@
</table>
<% if @object.state == 'RunningOnServer' || @object.state == 'RunningOnClient' %>
-<% content_for :js do %>
-setInterval(function(){$('a.refresh').click()}, 15000);
-<% end %>
<% content_for :tab_line_buttons do %>
<%= form_tag @object, :method => :put do |f| %>
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list