[ARVADOS] created: 51aaccb65bb4ce087e2b9ba69486f3db870825e7
git at public.curoverse.com
git at public.curoverse.com
Wed Dec 3 17:28:16 EST 2014
at 51aaccb65bb4ce087e2b9ba69486f3db870825e7 (commit)
commit 51aaccb65bb4ce087e2b9ba69486f3db870825e7
Author: Tom Clegg <tom at curoverse.com>
Date: Wed Dec 3 17:26:23 2014 -0500
4525: Call enable_disable_selection_actions once per container to
avoid crosstalk between containers.
Also, separate event binding setup from enable/disable hook, and avoid
binding many copies of the selection dispatch click handler.
diff --git a/apps/workbench/app/assets/javascripts/selection.js.erb b/apps/workbench/app/assets/javascripts/selection.js.erb
index 34a5d7a..0032ebd 100644
--- a/apps/workbench/app/assets/javascripts/selection.js.erb
+++ b/apps/workbench/app/assets/javascripts/selection.js.erb
@@ -41,40 +41,38 @@ function dispatch_selection_action() {
}
function enable_disable_selection_actions() {
- var $container = $(this).closest('.selection-action-container');
- var $checked = $('.persistent-selection:checkbox:checked:visible', $container);
- $('[data-selection-action]').
+ var $container = $(this);
+ var $checked = $('.persistent-selection:checkbox:checked', $container);
+ $('[data-selection-action]', $container).
closest('div.btn-group-sm').
find('ul li').
toggleClass('disabled', ($checked.length == 0));
- $('[data-selection-action=compare]').
+ $('[data-selection-action=compare]', $container).
closest('li').
toggleClass('disabled',
($checked.filter('[value*=-d1hrv-]').length < 2) ||
($checked.not('[value*=-d1hrv-]').length > 0));
<% unless Group.copies_to_projects? %>
- $('[data-selection-action=copy]').
+ $('[data-selection-action=copy]', $container).
closest('li').
toggleClass('disabled',
($checked.filter('[value*=-j7d0g-]').length > 0) ||
($checked.length < 1));
<% end %>
- $('[data-selection-action=combine-project-contents]').
+ $('[data-selection-action=combine-project-contents]', $container).
closest('li').
toggleClass('disabled',
($checked.filter('[value*=-4zz18-]').length < 1) ||
($checked.length != $checked.filter('[value*=-4zz18-]').length));
}
-function update_selection_actions() {
- var $btn = $('[data-selection-action]');
- $btn.click(dispatch_selection_action);
- enable_disable_selection_actions.call($btn);
-}
-
$(document).
- on('selections-updated ready ajax:complete', function() {
- var $btn = $('[data-selection-action]');
- $btn.click(dispatch_selection_action);
- enable_disable_selection_actions.call($btn);
+ on('selections-updated', function() {
+ $('.selection-action-container').each(enable_disable_selection_actions);
+ }).
+ on('ready ajax:complete', function() {
+ $('[data-selection-action]').
+ off('click', dispatch_selection_action).
+ on('click', dispatch_selection_action);
+ $(this).trigger('selections-updated');
});
diff --git a/apps/workbench/app/assets/javascripts/tab_panes.js b/apps/workbench/app/assets/javascripts/tab_panes.js
index 11990b0..07e46fe 100644
--- a/apps/workbench/app/assets/javascripts/tab_panes.js
+++ b/apps/workbench/app/assets/javascripts/tab_panes.js
@@ -2,7 +2,6 @@
// Fire when a tab is selected/clicked.
$(document).on('shown.bs.tab', '[data-toggle="tab"]', function(event) {
- update_selection_actions();
// reload the pane (unless it's already loaded)
$($(event.target).attr('href')).
not('.pane-loaded').
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list