[ARVADOS] updated: f549c9f05860abfb394b550c0b2c30a5a7c33283
git at public.curoverse.com
git at public.curoverse.com
Tue Oct 28 17:28:46 EDT 2014
Summary of changes:
.../app/views/collections/_show_files.html.erb | 39 ++++++++++++----------
.../workbench/test/integration/collections_test.rb | 5 +++
2 files changed, 27 insertions(+), 17 deletions(-)
via f549c9f05860abfb394b550c0b2c30a5a7c33283 (commit)
from e34135f6779f58852558e03b1b95534c11ca07ae (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit f549c9f05860abfb394b550c0b2c30a5a7c33283
Author: Tim Pierce <twp at curoverse.com>
Date: Tue Oct 28 17:26:58 2014 -0400
4088: code review feedback
* Filter files by regex before .take(10000)
* Added "regular expression" placeholder in the filter input box
* Issue a Rails "alert" div if the regex could not be parsed
* Test that we're actually viewing a collection when no matches are
found (and not a fiddlesticks page or something)
diff --git a/apps/workbench/app/views/collections/_show_files.html.erb b/apps/workbench/app/views/collections/_show_files.html.erb
index 9b39b61..8055913 100644
--- a/apps/workbench/app/views/collections/_show_files.html.erb
+++ b/apps/workbench/app/views/collections/_show_files.html.erb
@@ -19,7 +19,7 @@
</div>
<div class="pull-right">
<%= form_tag collection_path(@object.uuid), {method: 'get'} do %>
- <input class="form-control" id="file_regex" name="file_regex" value="<%= params[:file_regex] %>" type="text"/>
+ <input class="form-control" id="file_regex" name="file_regex" placeholder="regular expression" value="<%= params[:file_regex] %>" type="text"/>
<button id="file_regex_submit" type="submit" class="btn btn-primary" autofocus>Filter</button>
<% end %>
</div>
@@ -27,18 +27,20 @@
<p/>
<% 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)
- file_regex = Regexp.new(Regexp.quote(params[:file_regex]))
- 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) %>
+ <div class="alert alert-info">
+ <p>The search term <code><%= params[:file_regex] %></code> could not be parsed as a regular expression.</p>
+ <p>Searching for files named <code><%= params[:file_regex] %></code> instead.</p>
+ </div>
+ <% file_regex = Regexp.new(Regexp.quote(params[:file_regex])) %>
+ <% end %>
+<% end %>
<% file_tree = @object.andand.files_tree %>
<% if file_tree.nil? or file_tree.empty? %>
@@ -46,7 +48,13 @@
<% else %>
<ul id="collection_files" class="collection_files">
<% dirstack = [file_tree.first.first] %>
- <% file_tree.take(10000).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)
+ 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 %></ul></li>
@@ -59,9 +67,6 @@
</div>
<ul class="collection_files">
<% else %>
- <% if !file_regex.nil? and !file_regex.match(filename) %>
- <% next %>
- <% end %>
<% link_params = {controller: 'collections', action: 'show_file',
uuid: @object.portable_data_hash, file: file_path, size: size} %>
<div class="collection_files_row">
diff --git a/apps/workbench/test/integration/collections_test.rb b/apps/workbench/test/integration/collections_test.rb
index ea42052..3abbf6f 100644
--- a/apps/workbench/test/integration/collections_test.rb
+++ b/apps/workbench/test/integration/collections_test.rb
@@ -225,11 +225,16 @@ class CollectionsTest < ActionDispatch::IntegrationTest
assert page.has_no_text?("file1")
assert page.has_no_text?("file2")
assert page.has_no_text?("file3")
+ # make sure that we actually are looking at the collections
+ # page and not e.g. a fiddlesticks
+ assert page.has_text?("multilevel_collection_1")
+ assert page.has_text?(col['portable_data_hash'])
# Syntactically invalid regex
# Page loads, but does not match any files
page.find_field('file_regex').set('file[2')
find('button#file_regex_submit').click
+ assert page.has_text?('could not be parsed as a regular expression')
assert page.has_no_text?("file1")
assert page.has_no_text?("file2")
assert page.has_no_text?("file3")
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list