%# Copyright (C) The Arvados Authors. All rights reserved. SPDX-License-Identifier: AGPL-3.0 %> //= require jquery //= require jquery_ujs /** Javascript for selection. */ jQuery(function($){ $(document). on('change', '.persistent-selection:checkbox', function(e) { $(document).trigger('selections-updated'); }); }); function dispatch_selection_action() { /* When the user clicks a selection action link, build a form to perform the action on the selected data, and submit it. This is based on handleMethod from rails-ujs, extended to add the selections to the submitted form. Copyright (c) 2007-2010 Contributors at http://github.com/rails/jquery-ujs/contributors */ var $container = $(this); if ($container.closest('.disabled').length) { return false; } $container.closest('.dropdown-menu').dropdown('toggle'); var href = $container.data('href'), method = $container.data('method') || 'GET', paramName = $container.data('selection-param-name'), csrfToken = $('meta[name=csrf-token]').attr('content'), csrfParam = $('meta[name=csrf-param]').attr('content'), form = $('
'), metadataInput = (''); if (csrfParam !== undefined && csrfToken !== undefined) { metadataInput += (''); } $container. closest('.selection-action-container'). find(':checkbox:checked:visible'). each(function(index, elem) { metadataInput += (''); }); form.data('remote', $container.data('remote')); form.hide().append(metadataInput).appendTo('body'); form.submit(); return false; } function enable_disable_selection_actions() { var $container = $(this); var $checked = $('.persistent-selection:checkbox:checked', $container); var collection_lock_classes = $('.lock-collection-btn').attr('class') $('[data-selection-action]', $container). closest('div.btn-group-sm'). find('ul li'). toggleClass('disabled', ($checked.length == 0)); $('[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]', $container). closest('li'). toggleClass('disabled', ($checked.filter('[value*=-j7d0g-]').length > 0) || ($checked.length < 1)); <% end %> $('[data-selection-action=combine-project-contents]', $container). closest('li'). toggleClass('disabled', ($checked.filter('[value*=-4zz18-]').length < 1) || ($checked.length != $checked.filter('[value*=-4zz18-]').length)); $('[data-selection-action=remove-selected-files]', $container). closest('li'). toggleClass('disabled', ($checked.length < 0) || !($checked.length > 0 && collection_lock_classes && collection_lock_classes.indexOf("fa-unlock") !=-1)); $('[data-selection-action=untrash-selected-items]', $container). closest('li'). toggleClass('disabled', ($checked.length < 1)); } $(document). 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'); }); function select_all_items() { $(".arv-selectable-items :checkbox").filter(":visible").prop("checked", true).trigger("change"); } function unselect_all_items() { $(".arv-selectable-items :checkbox").filter(":visible").prop("checked", false).trigger("change"); }