[ARVADOS] updated: 92594178fbe4155f3122a1b0a52b5b3da995aabb

git at public.curoverse.com git at public.curoverse.com
Tue Jun 10 10:20:39 EDT 2014


Summary of changes:
 .../app/assets/javascripts/application.js          | 12 +++++++--
 .../app/controllers/application_controller.rb      | 31 +++++++++++++---------
 .../app/controllers/collections_controller.rb      |  2 +-
 .../app/controllers/folders_controller.rb          |  2 +-
 .../workbench/app/controllers/groups_controller.rb |  2 +-
 apps/workbench/app/controllers/jobs_controller.rb  |  3 ++-
 .../app/controllers/sessions_controller.rb         |  4 ++-
 .../app/views/application/_content.html.erb        | 27 ++++++++++++++-----
 .../workbench/app/views/jobs/_show_status.html.erb |  2 +-
 .../app/views/layouts/application.html.erb         |  2 --
 services/api/Gemfile                               |  2 ++
 services/api/Gemfile.lock                          |  3 +++
 services/api/app/middlewares/rack_socket.rb        |  2 +-
 13 files changed, 63 insertions(+), 31 deletions(-)

       via  92594178fbe4155f3122a1b0a52b5b3da995aabb (commit)
       via  4d73cd3503ca20ec4d1f8198617fea3bf481a48e (commit)
       via  40e48b2aac96a71c8ae3c2265f43b882f415e63d (commit)
       via  90f3d66faa1a87b0b230a8a9a7a9879e66f29cd0 (commit)
       via  497ea8e6fd12ce91cad108af78df5e3802a79d69 (commit)
       via  7e865395a4ccf9f17b904c3700064328d52db121 (commit)
       via  9a48ecf1c92b9b8f513a5e621a0e263ccde076e4 (commit)
       via  468a80200c8ef3e4a56700714e9af537d87a20bc (commit)
       via  0ef7495b59056c8f115a42bd843ce432c9282e8c (commit)
       via  73688a1ef6387fe8a8b1b2f09a8936198f79d66e (commit)
      from  67578498c5de67fe2e821a3d91c1d2b7294df579 (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 92594178fbe4155f3122a1b0a52b5b3da995aabb
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Tue Jun 10 10:20:29 2014 -0400

    2961: Track valid/up to date state for each panel, only reload panels when they
    are out of date (based on event log) and visible to user.

diff --git a/apps/workbench/app/views/application/_content.html.erb b/apps/workbench/app/views/application/_content.html.erb
index 3b3ac6a..353bd74 100644
--- a/apps/workbench/app/views/application/_content.html.erb
+++ b/apps/workbench/app/views/application/_content.html.erb
@@ -1,20 +1,30 @@
 <% content_for :js do %>
+  tab_pane_valid_state = {};
+
   function ajaxRefreshTabPane(pane) {
-    $.ajax('<%=j url_for @object %>?tab_pane='+pane, {dataType: 'html', type: 'GET'}).
-      done(function(data, status, jqxhr) {
-        $('#' + pane + ' > div > div').html(data);
-        $(document).trigger('ajax:complete')
-      });
+    if (!tab_pane_valid_state[pane]) {
+      tab_pane_valid_state[pane] = true;
+      $(document).trigger('ajax:send');
+      $.ajax('<%=j url_for @object %>?tab_pane='+pane, {dataType: 'html', type: 'GET'}).
+        done(function(data, status, jqxhr) {
+          $('#' + pane + ' > div > div').html(data);
+          $(document).trigger('ajax:complete');
+          ajaxRefreshTabPane(pane);
+        });
+    }
   }
 
   $(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() {
+    <% pane_list.each do |pane| %>
+    tab_pane_valid_state['<%=j pane %>'] = false;
+    <% end %>
     ajaxRefreshTabPane($('.tab-pane.active')[0].id);
   });
 <% end %>
@@ -40,7 +50,10 @@
 >
 
 <% content_for :js do %>
-  <% if i != 0 %>
+  <% if i == 0 %>
+    tab_pane_valid_state['<%=j pane %>'] = true;
+  <% else %>
+    tab_pane_valid_state['<%=j pane %>'] = false;
     $(document).on('ready', function() {
       ajaxRefreshTabPane('<%=j pane %>');
     });

commit 4d73cd3503ca20ec4d1f8198617fea3bf481a48e
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Tue Jun 10 10:18:22 2014 -0400

    2961: Added use count so ajax loading icon is accurate when there are multiple
    outstanding ajax requests.

diff --git a/apps/workbench/app/assets/javascripts/application.js b/apps/workbench/app/assets/javascripts/application.js
index d66cb92..7b09d52 100644
--- a/apps/workbench/app/assets/javascripts/application.js
+++ b/apps/workbench/app/assets/javascripts/application.js
@@ -43,12 +43,20 @@ jQuery(function($){
         targets.fadeToggle(200);
     });
 
+    var ajaxCount = 0;
+
     $(document).
         on('ajax:send', function(e, xhr) {
-            $('.loading').fadeTo('fast', 1);
+            ajaxCount += 1;
+            if (ajaxCount == 1) {
+                $('.loading').fadeTo('fast', 1);
+            }
         }).
         on('ajax:complete', function(e, status) {
-            $('.loading').fadeOut('fast', 0);
+            ajaxCount -= 1;
+            if (ajaxCount == 0) {
+                $('.loading').fadeOut('fast', 0);
+            }
         }).
         on('click', '.removable-tag a', function(e) {
             var tag_span = $(this).parents('[data-tag-link-uuid]').eq(0)

commit 40e48b2aac96a71c8ae3c2265f43b882f415e63d
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Tue Jun 10 10:16:04 2014 -0400

    2961: Removed dangling close div.

diff --git a/apps/workbench/app/views/layouts/application.html.erb b/apps/workbench/app/views/layouts/application.html.erb
index d3ea5b0..3635546 100644
--- a/apps/workbench/app/views/layouts/application.html.erb
+++ b/apps/workbench/app/views/layouts/application.html.erb
@@ -242,8 +242,6 @@
     </div>
   </div>
 
-</div>
-
   <%= yield :footer_html %>
   <%= piwik_tracking_tag %>
   <%= javascript_tag do %>

commit 90f3d66faa1a87b0b230a8a9a7a9879e66f29cd0
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Tue Jun 10 10:15:34 2014 -0400

    2961: Added missing user uuid to session.

diff --git a/apps/workbench/app/controllers/application_controller.rb b/apps/workbench/app/controllers/application_controller.rb
index 65085a7..72eb4df 100644
--- a/apps/workbench/app/controllers/application_controller.rb
+++ b/apps/workbench/app/controllers/application_controller.rb
@@ -299,6 +299,7 @@ class ApplicationController < ActionController::Base
           session[:arvados_api_token] = params[:api_token]
           u = User.current
           session[:user] = {
+            uuid: u.uuid,
             email: u.email,
             first_name: u.first_name,
             last_name: u.last_name,

commit 497ea8e6fd12ce91cad108af78df5e3802a79d69
Merge: 9a48ecf 7e86539
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Tue Jun 10 09:21:02 2014 -0400

    Merge branch 'master' into 2961-load-tab-partials


commit 9a48ecf1c92b9b8f513a5e621a0e263ccde076e4
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Tue Jun 10 09:18:02 2014 -0400

    2961: Job index needs to call super sometimes, render_index other times.

diff --git a/apps/workbench/app/controllers/jobs_controller.rb b/apps/workbench/app/controllers/jobs_controller.rb
index 51e27ab..b7526c9 100644
--- a/apps/workbench/app/controllers/jobs_controller.rb
+++ b/apps/workbench/app/controllers/jobs_controller.rb
@@ -27,10 +27,11 @@ class JobsController < ApplicationController
     if params[:uuid]
       @objects = Job.where(uuid: params[:uuid])
       generate_provenance(@objects)
+      render_index
     else
       @limit = 20
+      super
     end
-    render_index
   end
 
   def cancel

commit 468a80200c8ef3e4a56700714e9af537d87a20bc
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Tue Jun 10 09:08:38 2014 -0400

    2961: Changed index methods on some controllers to use render_index instead of
    super, to skip the default index query logic but still apply the tab partial
    logic.

diff --git a/apps/workbench/app/controllers/application_controller.rb b/apps/workbench/app/controllers/application_controller.rb
index b77ce8d..65085a7 100644
--- a/apps/workbench/app/controllers/application_controller.rb
+++ b/apps/workbench/app/controllers/application_controller.rb
@@ -63,6 +63,22 @@ class ApplicationController < ActionController::Base
     self.render_error status: 404
   end
 
+  def render_index
+    respond_to do |f|
+      f.json { render json: @objects }
+      f.html {
+        if params['tab_pane']
+          comparable = self.respond_to? :compare
+          render(partial: 'show_' + params['tab_pane'].downcase,
+                 locals: { comparable: comparable, objects: @objects })
+        else
+          render
+        end
+      }
+      f.js { render }
+    end
+  end
+
   def index
     @limit ||= 200
     if params[:limit]
@@ -85,19 +101,7 @@ class ApplicationController < ActionController::Base
 
     @objects ||= model_class
     @objects = @objects.filter(@filters).limit(@limit).offset(@offset).all
-    respond_to do |f|
-      f.json { render json: @objects }
-      f.html {
-        if params['tab_pane']
-          comparable = self.respond_to? :compare
-          render(partial: 'show_' + params['tab_pane'].downcase,
-                 locals: { comparable: comparable, objects: @objects })
-        else
-          render
-        end
-      }
-      f.js { render }
-    end
+    render_index
   end
 
   def show
diff --git a/apps/workbench/app/controllers/collections_controller.rb b/apps/workbench/app/controllers/collections_controller.rb
index f4188b4..064acc6 100644
--- a/apps/workbench/app/controllers/collections_controller.rb
+++ b/apps/workbench/app/controllers/collections_controller.rb
@@ -89,7 +89,7 @@ class CollectionsController < ApplicationController
     end
     @request_url = request.url
 
-    super
+    render_index
   end
 
   def show_file_links
diff --git a/apps/workbench/app/controllers/folders_controller.rb b/apps/workbench/app/controllers/folders_controller.rb
index e00608e..10a5e45 100644
--- a/apps/workbench/app/controllers/folders_controller.rb
+++ b/apps/workbench/app/controllers/folders_controller.rb
@@ -75,7 +75,7 @@ class FoldersController < ApplicationController
       sorted_paths.call({'Shared with me' =>
                           buildtree.call(children_of, false)})
 
-    super
+    render_index
   end
 
   def choose
diff --git a/apps/workbench/app/controllers/groups_controller.rb b/apps/workbench/app/controllers/groups_controller.rb
index 30cd1e3..71327d1 100644
--- a/apps/workbench/app/controllers/groups_controller.rb
+++ b/apps/workbench/app/controllers/groups_controller.rb
@@ -4,7 +4,7 @@ class GroupsController < ApplicationController
     @group_uuids = @groups.collect &:uuid
     @links_from = Link.where link_class: 'permission', tail_uuid: @group_uuids
     @links_to = Link.where link_class: 'permission', head_uuid: @group_uuids
-    super
+    render_index
   end
 
   def show
diff --git a/apps/workbench/app/controllers/jobs_controller.rb b/apps/workbench/app/controllers/jobs_controller.rb
index dc31229..51e27ab 100644
--- a/apps/workbench/app/controllers/jobs_controller.rb
+++ b/apps/workbench/app/controllers/jobs_controller.rb
@@ -30,7 +30,7 @@ class JobsController < ApplicationController
     else
       @limit = 20
     end
-    super
+    render_index
   end
 
   def cancel
diff --git a/apps/workbench/app/controllers/sessions_controller.rb b/apps/workbench/app/controllers/sessions_controller.rb
index abed6b6..591373b 100644
--- a/apps/workbench/app/controllers/sessions_controller.rb
+++ b/apps/workbench/app/controllers/sessions_controller.rb
@@ -2,12 +2,14 @@ class SessionsController < ApplicationController
   skip_around_filter :thread_with_mandatory_api_token, :only => [:destroy, :index]
   skip_around_filter :thread_with_optional_api_token, :only => [:destroy, :index]
   skip_before_filter :find_object_by_uuid, :only => [:destroy, :index]
+
   def destroy
     session.clear
     redirect_to arvados_api_client.arvados_logout_url(return_to: root_url)
   end
+
   def index
     redirect_to root_url if session[:arvados_api_token]
-    super
+    render_index
   end
 end

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


hooks/post-receive
-- 




More information about the arvados-commits mailing list