[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