3177: propagate checkbox selection param when dataclass is File.
authorradhika <radhika@curoverse.com>
Thu, 6 Nov 2014 03:57:30 +0000 (22:57 -0500)
committerradhika <radhika@curoverse.com>
Thu, 6 Nov 2014 03:57:30 +0000 (22:57 -0500)
apps/workbench/app/assets/javascripts/select_modal.js
apps/workbench/app/helpers/application_helper.rb
apps/workbench/app/views/application/_choose.html.erb
apps/workbench/app/views/collections/_choose_rows.html.erb
apps/workbench/app/views/collections/_show_chooser_preview.html.erb
apps/workbench/app/views/collections/_show_files.html.erb

index 596cb702294bf79796a8b80b6be21fea9e48ea86..36c145fc02e48fa95d7b6ab3523a97f8ca956485 100644 (file)
@@ -8,8 +8,11 @@ $(document).on('click', '.selectable', function() {
             removeClass('active');
     }
     $this.toggleClass('active');
-    any = ($container.
+
+    if (!$this.hasClass('use-checkbox-selection')) {
+      any = ($container.
            find('.selectable.active').length > 0)
+    }
     $this.
         closest('.modal').
         find('[data-enable-if-selection]').
@@ -31,7 +34,14 @@ $(document).on('click', '.selectable', function() {
                 $(".modal-dialog-preview-pane").html(no_preview_available);
             });
     }
-
+}).on('click', '.persistent-selection', function() {
+    var $modal = $(this).closest('.modal');
+    $checked_selections = $modal.find('.persistent-selection:checked');
+    any = ($checked_selections.length > 0);
+    $(this).
+        closest('.modal').
+        find('[data-enable-if-selection]').
+        prop('disabled', !any);
 }).on('click', '.modal button[data-action-href]', function() {
     var selection = [];
     var data = [];
index 165f0628a7258277190c1307fd1c893c1680ae76..65eb73681d5de02e9bcdc484b46000a4be672be7 100644 (file)
@@ -287,6 +287,7 @@ module ApplicationHelper
          preconfigured_search_str: (preconfigured_search_str || ""),
          action_data: {
            merge: true,
+           use_checkbox_selection: dataclass == File ? true : false,
            selection_param: selection_param,
            success: 'page-refresh'
          }.to_json,
@@ -448,10 +449,10 @@ module ApplicationHelper
     end
   end
 
-  def chooser_preview_url_for object
+  def chooser_preview_url_for object, use_checkbox_selection=false
     case object.class.to_s
     when 'Collection'
-      polymorphic_path(object, tab_pane: 'chooser_preview')
+      polymorphic_path(object, tab_pane: 'chooser_preview', use_checkbox_selection: use_checkbox_selection)
     else
       nil
     end
index fc161397d2b845353c1c8dbca3f8cd9aae6a936b..26bf407dd254717bb579eb9ef4e02fc92db6228a 100644 (file)
                <% if project_filters.any? %>
                  data-infinite-content-params-from-project-dropdown="<%= {filters: project_filters, project_uuid: project_filters.last.last}.to_json %>"
                <% end %>
-               data-infinite-content-href="<%= url_for partial: true %>">
+               <%
+                  action_data = JSON.parse params['action_data'] if params['action_data']
+                  use_checkbox_sel = action_data ? action_data['use_checkbox_selection'] : false
+                %>
+               data-infinite-content-href="<%= url_for partial: true,
+                                                       use_checkbox_selection: use_checkbox_sel %>">
           </div>
           <% if preview_pane %>
             <div class="col-md-6 hidden-xs hidden-sm modal-dialog-preview-pane" style="height: 100%; overflow-y: scroll">
index da0f9759c1beae0c6f3c71786bdc438a17315fdb..f782bb83307de24196333bf720f05c889b202c01 100644 (file)
@@ -1,6 +1,6 @@
 <% @collections.each do |object| %>
-    <div class="row filterable selectable" data-object-uuid="<%= object.uuid %>"
-         data-preview-href="<%= chooser_preview_url_for object %>"
+    <div class="row filterable selectable <%= 'use-checkbox-selection' if params['use_checkbox_selection']%>" data-object-uuid="<%= object.uuid %>"
+         data-preview-href="<%= chooser_preview_url_for object, params['use_checkbox_selection'] %>"
          style="margin-left: 1em; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #DDDDDD">
       <i class="fa fa-fw fa-archive"></i>
       <% if object.respond_to? :name %>
@@ -26,7 +26,7 @@
 <% @name_links.each do |name_link| %>
   <% if (object = get_object(name_link.head_uuid)) %>
     <div class="row filterable selectable" data-object-uuid="<%= name_link.uuid %>"
-         data-preview-href="<%= chooser_preview_url_for object %>"
+         data-preview-href="<%= chooser_preview_url_for object%>"
          style="margin-left: 1em; border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: #DDDDDD">
       <i class="fa fa-fw fa-archive"></i>
       <%= name_link.name %>
index 4a0a8377cd9f20e658bca395b207a346356cc63b..eae99faa23699e66a47df06c167969e80e966447 100644 (file)
@@ -1,2 +1,2 @@
 <%= render partial: "show_source_summary" %>
-<%= render partial: "show_files", locals: {no_checkboxes: true} %>
+<%= render partial: "show_files", locals: {no_checkboxes: true, use_checkbox_selection: params['use_checkbox_selection']} %>
index adbf48071aa1198af0fcbf83c377eb929fa246be..a9a3deae6537e3cbef4873790c85e96867218223 100644 (file)
@@ -86,7 +86,8 @@
         </div>
 
         <div class="collection_files_name">
-          <%# if !defined? no_checkboxes or !no_checkboxes %>
+          <% if !defined? no_checkboxes or !no_checkboxes or
+                (!params['use_checkbox_selection'].nil? and params['use_checkbox_selection'] == 'true') %>
           <%= check_box_tag 'uuids[]', "#{@object.uuid}/#{file_path}", false, {
                 :class => 'persistent-selection',
                 :friendly_type => "File",
@@ -96,7 +97,7 @@
                 :title => "Include #{file_path} in your selections",
               } %>
           <span>&nbsp;</span>
-          <%# end %>
+          <% end %>
       <% if CollectionsHelper::is_image(filename) %>
           <i class="fa fa-fw fa-bar-chart-o"></i> <%= filename %></div>
        </div>