+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
require "arvados/keep"
require "arvados/collection"
require "uri"
RELATION_LIMIT = 5
def show_pane_list
- panes = %w(Files Upload Provenance_graph Used_by Advanced)
+ panes = %w(Files Upload Tags Provenance_graph Used_by Advanced)
panes = panes - %w(Upload) unless (@object.editable? rescue false)
panes
end
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
helper_method :download_link
def download_link
- collections_url + "/download/#{@object.uuid}/#{@search_sharing.first.api_token}/"
+ token = @search_sharing.first.api_token
+ if Rails.configuration.keep_web_url || Rails.configuration.keep_web_download_url
+ keep_web_url(@object.uuid, nil, {path_token: token})
+ else
+ collections_url + "/download/#{@object.uuid}/#{token}/"
+ end
end
def share
end
arv_coll = Arv::Collection.new(@object.manifest_text)
- arv_coll.rename "./"+file_path, new_file_path
- if @object.update_attributes manifest_text: arv_coll.manifest_text
- show
- else
+ if arv_coll.exist?(new_file_path)
+ @errors = 'Duplicate file path. Please use a different name.'
self.render_error status: 422
+ else
+ arv_coll.rename "./"+file_path, new_file_path
+
+ if @object.update_attributes manifest_text: arv_coll.manifest_text
+ show
+ else
+ self.render_error status: 422
+ end
end
else
# Not a file rename; use default
end
end
+ def tags
+ render
+ end
+
+ def save_tags
+ tags_param = params['tag_data']
+ if tags_param
+ if tags_param.is_a?(String) && tags_param == "empty"
+ tags = {}
+ else
+ tags = tags_param
+ end
+ end
+
+ if tags
+ if @object.update_attributes properties: tags
+ @saved_tags = true
+ render
+ else
+ self.render_error status: 422
+ end
+ end
+ end
+
protected
def find_usable_token(token_list)
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',