X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/d9aa5decc6edce30285df049277de2cf2c138c26..7e3496abb1b8c70607df37b6f096c8acd42d714d:/apps/workbench/app/assets/javascripts/selection.js diff --git a/apps/workbench/app/assets/javascripts/selection.js b/apps/workbench/app/assets/javascripts/selection.js index f8dbed59c4..bcc33c46bc 100644 --- a/apps/workbench/app/assets/javascripts/selection.js +++ b/apps/workbench/app/assets/javascripts/selection.js @@ -57,12 +57,6 @@ jQuery(function($){ $("#persistent-selection-count").text(lst.length); if (lst.length > 0) { html = '
  • Clear selections
  • '; - if (this_object_uuid.match('-j7d0g-')) - html += '
  • '; - html += '
  • ' - + '
  • '; $('#selection-form-content').html(html); for (var i = 0; i < lst.length; i++) { @@ -100,13 +94,11 @@ jQuery(function($){ $('.remove-selection').on('click', remove_selection_click); $('#clear_selections_button').on('click', clear_selections); + $(document).trigger('selections-updated', [lst]); }; $(document). on('change', '.persistent-selection:checkbox', function(e) { - //console.log($(this)); - //console.log($(this).val()); - var inc = 0; if ($(this).is(":checked")) { add_selection($(this).val(), $(this).attr('friendly_name'), $(this).attr('href'), $(this).attr('friendly_type')); @@ -116,7 +108,6 @@ jQuery(function($){ } }); - $(window).on('load storage', update_count); $('#selection-form-content').on("click", function(e) { @@ -125,7 +116,7 @@ jQuery(function($){ }); add_form_selection_sources = null; -select_form_sources = null; +select_form_sources = null; (function() { var form_selection_sources = {}; @@ -178,3 +169,60 @@ select_form_sources = null; 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 + // &foo=... as appropriate) to reflect the current object + // selections. + var data = []; + var param_name = $(this).attr('data-selection-param-name'); + var href = $(this).attr('data-href'); + if ($(this).closest('.disabled').length > 0) { + return false; + } + $(this). + closest('.selection-action-container'). + find(':checkbox:checked'). + each(function() { + data.push({name: param_name, value: $(this).val()}); + }); + if (href.indexOf('?') >= 0) + href += '&'; + else + href += '?'; + href += $.param(data, true); + $(this).attr('href', href); + return true; +} + +function enable_disable_selection_actions() { + var $container = $(this).closest('.selection-action-container'); + var $checked = $('.persistent-selection:checkbox:checked', $container); + $('[data-selection-action]'). + closest('div.btn-group-sm'). + find('ul li'). + toggleClass('disabled', ($checked.length == 0)); + $('[data-selection-action=compare]'). + closest('li'). + toggleClass('disabled', + ($checked.filter('[value*=-d1hrv-]').length < 2) || + ($checked.not('[value*=-d1hrv-]').length > 0)); + $('[data-selection-action=copy]'). + closest('li'). + toggleClass('disabled', + ($checked.filter('[value*=-j7d0g-]').length > 0) || + ($checked.length < 1)); + $('[data-selection-action=combine-project-contents]'). + closest('li'). + toggleClass('disabled', + ($checked.filter('[value*=-4zz18-]').length < 1) || + ($checked.length != $checked.filter('[value*=-4zz18-]').length)); +} + +$(document). + on('selections-updated ready ajax:complete', function() { + var $btn = $('[data-selection-action]'); + $btn.click(dispatch_selection_action); + enable_disable_selection_actions.call($btn); + });