X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/4609a76d9b84e0f63233cdf6dcbef376b1686b69..e3e54264e8bc767e1ec773cff4e5bdf4c4934a36:/apps/workbench/app/views/collections/_show_files.html.erb diff --git a/apps/workbench/app/views/collections/_show_files.html.erb b/apps/workbench/app/views/collections/_show_files.html.erb index 74e02f79fe..9cd77b02e1 100644 --- a/apps/workbench/app/views/collections/_show_files.html.erb +++ b/apps/workbench/app/views/collections/_show_files.html.erb @@ -1,14 +1,49 @@ -<% content_for :tab_line_buttons do %> -
-
-
-
- Collection storage status: - <%= render partial: 'toggle_persist', locals: { uuid: @object.uuid, current_state: (@is_persistent ? 'persistent' : 'cache') } %> - +
+ <% if !defined? no_checkboxes or !no_checkboxes %> +
+
+
+ + +
+
+
+ <%= form_tag collection_path(@object.uuid), {method: 'get'} do %> +
+ + + + +
+ <% end %>
-
+

+ <% end %> + +<% file_regex = nil %> +<% if params[:file_regex] %> + <% begin %> + <% file_regex = Regexp.new(params[:file_regex]) %> + <% rescue RegexpError %> + <% # If the pattern is not a valid regex, quote it %> + <% # (i.e. use it as a simple substring search) %> +

+

The search term <%= params[:file_regex] %> could not be parsed as a regular expression.

+

Searching for files named <%= params[:file_regex] %> instead.

+
+ <% file_regex = Regexp.new(Regexp.quote(params[:file_regex])) %> + <% end %> <% end %> <% file_tree = @object.andand.files_tree %> @@ -17,7 +52,13 @@ <% else %>
    <% dirstack = [file_tree.first.first] %> - <% file_tree.each_with_index do |(dirname, filename, size), index| %> + <% file_tree.reject { |(dirname, filename, size)| + # Eliminate any files that don't match file_regex + # (or accept all files if no file_regex was given) + size and file_regex and !file_regex.match(filename) + } + .take(10000) + .each_with_index do |(dirname, filename, size), index| %> <% file_path = CollectionsHelper::file_path([dirname, filename]) %> <% while dirstack.any? and (dirstack.last != dirname) %> <% dirstack.pop %>
@@ -31,27 +72,33 @@
    <% else %> <% link_params = {controller: 'collections', action: 'show_file', - uuid: @object.uuid, file: file_path, size: size} %> + uuid: @object.portable_data_hash, file: file_path, size: size} %>
    <%= raw(human_readable_bytes_html(size)) %> + <% disable_search = (Rails.configuration.filename_suffixes_with_view_icon.include? file_path.split('.')[-1]) ? false : true %> + <%= link_to(raw(''), + link_params.merge(disposition: 'inline'), + {title: "View #{file_path}", class: "btn btn-info btn-sm", disabled: disable_search}) %> + <%= link_to(raw(''), + link_params.merge(disposition: 'attachment'), + {title: "Download #{file_path}", class: "btn btn-info btn-sm"}) %> +
    + +
    + <% if !defined? no_checkboxes or !no_checkboxes %> <%= check_box_tag 'uuids[]', "#{@object.uuid}/#{file_path}", false, { :class => 'persistent-selection', :friendly_type => "File", :friendly_name => "#{@object.uuid}/#{file_path}", :href => url_for(controller: 'collections', action: 'show_file', - uuid: @object.uuid, file: file_path), + uuid: @object.portable_data_hash, file: file_path), :title => "Include #{file_path} in your selections", } %> - <%= link_to(raw(''), - link_params.merge(disposition: 'inline'), - {title: "View #{file_path}", class: "btn btn-info btn-sm"}) %> - <%= link_to(raw(''), - link_params.merge(disposition: 'attachment'), - {title: "Download #{file_path}", class: "btn btn-info btn-sm"}) %> -
    +   + <% end %> <% if CollectionsHelper::is_image(filename) %> -
    <%= filename %>
    + <%= filename %>
<%= link_to(image_tag("#{url_for @object}/#{file_path}"), @@ -59,7 +106,7 @@ {title: file_path}) %>
<% else %> -
<%= filename %>
+ <%= filename %>
<% end %> @@ -71,3 +118,5 @@ <% content_for :footer_html do %> <% end %> + +