X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/7a98271d94163cdc4afa5bfcf275db353bc062d2..83561af02e156758b09ea771510ad4f9ee506b06:/apps/workbench/app/assets/javascripts/selection.js?ds=sidebyside
diff --git a/apps/workbench/app/assets/javascripts/selection.js b/apps/workbench/app/assets/javascripts/selection.js
index 9213b70a71..a313c8b78e 100644
--- a/apps/workbench/app/assets/javascripts/selection.js
+++ b/apps/workbench/app/assets/javascripts/selection.js
@@ -49,15 +49,23 @@ jQuery(function($){
}
var update_count = function(e) {
+ var html;
+ var this_object_uuid = $('#selection-form-content').
+ closest('form').
+ find('input[name=uuid]').val();
var lst = get_selection_list();
$("#persistent-selection-count").text(lst.length);
if (lst.length > 0) {
- $('#selection-form-content').html(
- '
Clear selections'
- + ''
- + '');
+ html = ' Clear selections';
+ if (this_object_uuid.match('-j7d0g-')) {
+ html += '';
+ html += '';
+ }
+ html += ''
+ + '';
+ $('#selection-form-content').html(html);
for (var i = 0; i < lst.length; i++) {
$('#selection-form-content > li > table').append(""
@@ -91,16 +99,14 @@ jQuery(function($){
checkboxes[i].checked = false;
}
}
-
+
$('.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'));
@@ -110,7 +116,6 @@ jQuery(function($){
}
});
-
$(window).on('load storage', update_count);
$('#selection-form-content').on("click", function(e) {
@@ -119,7 +124,7 @@ jQuery(function($){
});
add_form_selection_sources = null;
-select_form_sources = null;
+select_form_sources = null;
(function() {
var form_selection_sources = {};
@@ -148,7 +153,10 @@ select_form_sources = null;
for (var i = 0; i < lst.length; i++) {
if (lst[i].type == type) {
- ret.push({text: lst[i].name, value: lst[i].uuid})
+ var n = lst[i].name;
+ n = n.replace(/]*>/i, "[");
+ n = n.replace(/<\/span>/i, "]");
+ ret.push({text: n, value: lst[i].uuid})
}
}
}
@@ -170,3 +178,44 @@ select_form_sources = null;
};
})();
+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;
+ }
+ $('.persistent-selection: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 $checked = $('.persistent-selection:checkbox:checked');
+ $('[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));
+}
+
+$(document).
+ on('selections-updated ready ajax:complete', function() {
+ $('[data-selection-action]').click(dispatch_selection_action);
+ enable_disable_selection_actions();
+ });