8784: Use keep-web to serve dir listings for shared collections.
authorTom Clegg <tom@curoverse.com>
Wed, 21 Jun 2017 13:59:00 +0000 (09:59 -0400)
committerTom Clegg <tom@curoverse.com>
Wed, 21 Jun 2017 15:34:50 +0000 (11:34 -0400)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@curoverse.com>

apps/workbench/app/controllers/collections_controller.rb
apps/workbench/test/integration/download_test.rb

index dc9ed43c409b64a2838ad74d3e165609c49e1e62..b6112ac96b29a452df5ce2f2e03c352a1c4cce37 100644 (file)
@@ -111,6 +111,10 @@ class CollectionsController < ApplicationController
   end
 
   def show_file_links
+    if Rails.configuration.keep_web_url || Rails.configuration.keep_web_download_url
+      # show_file will redirect to keep-web's directory listing
+      return show_file
+    end
     Thread.current[:reader_tokens] = [params[:reader_token]]
     return if false.equal?(find_object_by_uuid)
     render layout: false
@@ -416,7 +420,7 @@ class CollectionsController < ApplicationController
       uri.path += 't=' + opts[:path_token] + '/'
     end
     uri.path += '_/'
-    uri.path += URI.escape(file)
+    uri.path += URI.escape(file) if file
 
     query = Hash[URI.decode_www_form(uri.query || '')]
     { query_token: 'api_token',
index e980b2ffb98c900c7428df19b379d53a48f08ca1..a19cde3db83e8387b0d8c915173ba4b614e8a071 100644 (file)
@@ -25,7 +25,7 @@ class DownloadTest < ActionDispatch::IntegrationTest
       uuid_or_pdh = api_fixture('collections')['foo_file'][id_type]
       token = api_fixture('api_client_authorizations')['active_all_collections']['api_token']
       visit "/collections/download/#{uuid_or_pdh}/#{token}/"
-      within "#collection_files" do
+      within 'ul' do
         click_link 'foo'
       end
       assert_no_selector 'a'