Merge branch '3781-browser-upload' closes #3781
[arvados.git] / apps / workbench / app / assets / javascripts / selection.js.erb
index b483c2cd471435b3788a67de19840444bc5cccc5..0068b738ec903067c3352e9ae92d5a6ed82c2b19 100644 (file)
@@ -8,67 +8,8 @@ jQuery(function($){
         on('change', '.persistent-selection:checkbox', function(e) {
             $(document).trigger('selections-updated');
         });
-
-    $('#selection-form-content').on("click", function(e) {
-        e.stopPropagation();
-    });
 });
 
-add_form_selection_sources = null;
-select_form_sources = null;
-
-(function() {
-    var form_selection_sources = {};
-    add_form_selection_sources = function (src) {
-        for (var i = 0; i < src.length; i++) {
-            var t = form_selection_sources[src[i].type];
-            if (!t) {
-                t = form_selection_sources[src[i].type] = {};
-            }
-            if (!t[src[i].uuid]) {
-                t[src[i].uuid] = src[i];
-            }
-        }
-    };
-
-    select_form_sources = function(type) {
-        var ret = [];
-
-        if (get_selection_list) {
-            var lst = get_selection_list();
-            if (lst.length > 0) {
-                var text = "&horbar; Selections &horbar;";
-                var span = document.createElement('span');
-                span.innerHTML = text;
-                ret.push({text: span.innerHTML, value: "***invalid***"});
-
-                for (var i = 0; i < lst.length; i++) {
-                    if (lst[i].type == type) {
-                        var n = lst[i].name;
-                        n = n.replace(/<span[^>]*>/i, "[");
-                        n = n.replace(/<\/span>/i, "]");
-                        ret.push({text: n, value: lst[i].uuid})
-                    }
-                }
-            }
-        }
-
-        var text = "&horbar; Recent &horbar;";
-        var span = document.createElement('span');
-        span.innerHTML = text;
-        ret.push({text: span.innerHTML, value: "***invalid***"});
-
-        var t = form_selection_sources[type];
-        for (var key in t) {
-            if (t.hasOwnProperty(key)) {
-                var obj = t[key];
-                ret.push({text: obj.name, value: obj.uuid})
-            }
-        }
-        return ret;
-    };
-})();
-
 function dispatch_selection_action() {
     // Build a new "href" attribute for this link by starting with the
     // "data-href" attribute and appending ?foo[]=bar&foo[]=baz (or
@@ -96,40 +37,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');
     });