projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
3338: vital action missing from previous commit
[arvados.git]
/
apps
/
workbench
/
app
/
controllers
/
actions_controller.rb
diff --git
a/apps/workbench/app/controllers/actions_controller.rb
b/apps/workbench/app/controllers/actions_controller.rb
index 377f930b58e83d03c4c6b15d4c459c8ce30788c0..b1beb9fb38ab7072406308e3eea7b7c1c47cda3c 100644
(file)
--- a/
apps/workbench/app/controllers/actions_controller.rb
+++ b/
apps/workbench/app/controllers/actions_controller.rb
@@
-1,5
+1,8
@@
class ActionsController < ApplicationController
class ActionsController < ApplicationController
+ skip_filter :require_thread_api_token, only: [:report_issue_popup, :report_issue]
+ skip_filter :check_user_agreements, only: [:report_issue_popup, :report_issue]
+
@@exposed_actions = {}
def self.expose_action method, &block
@@exposed_actions[method] = true
@@exposed_actions = {}
def self.expose_action method, &block
@@exposed_actions[method] = true
@@
-109,41
+112,47
@@
class ActionsController < ApplicationController
end
expose_action :combine_selected_files_into_collection do
end
expose_action :combine_selected_files_into_collection do
- lst = []
+ uuids = []
+ pdhs = []
files = []
params["selection"].each do |s|
a = ArvadosBase::resource_class_for_uuid s
files = []
params["selection"].each do |s|
a = ArvadosBase::resource_class_for_uuid s
- m = nil
if a == Link
begin
if a == Link
begin
- m = CollectionsHelper.match(Link.find(s).head_uuid)
+ if (m = CollectionsHelper.match(Link.find(s).head_uuid))
+ pdhs.append(m[1] + m[2])
+ files.append(m)
+ end
rescue
end
rescue
end
- else
- m = CollectionsHelper.match(s)
- end
-
- if m and m[1] and m[2]
- lst.append(m[1] + m[2])
+ elsif (m = CollectionsHelper.match(s))
+ pdhs.append(m[1] + m[2])
+ files.append(m)
+ elsif (m = CollectionsHelper.match_uuid_with_optional_filepath(s))
+ uuids.append(m[1])
files.append(m)
end
end
files.append(m)
end
end
- collections = Collection.where(uuid: lst)
-
+ pdhs = pdhs.uniq
+ uuids = uuids.uniq
chash = {}
chash = {}
- collections.each do |c|
- c.reload()
+
+ Collection.select([:uuid, :manifest_text]).where(uuid: uuids).each do |c|
chash[c.uuid] = c
end
chash[c.uuid] = c
end
+ Collection.select([:portable_data_hash, :manifest_text]).where(portable_data_hash: pdhs).each do |c|
+ chash[c.portable_data_hash] = c
+ end
+
combined = ""
files.each do |m|
combined = ""
files.each do |m|
- mt = chash[m[1]+m[2]].manifest_text
- if
m[4]
+ mt = chash[m[1]+m[2]].
andand.
manifest_text
+ if
not m[4].nil? and m[4].size > 1
combined += arv_normalize mt, '--extract', m[4][1..-1]
else
combined += arv_normalize mt, '--extract', m[4][1..-1]
else
- combined +=
chash[m[1]+m[2]].manifest_tex
t
+ combined +=
m
t
end
end
end
end
@@
-164,4
+173,20
@@
class ActionsController < ApplicationController
redirect_to controller: 'collections', action: :show, id: newc.uuid
end
redirect_to controller: 'collections', action: :show, id: newc.uuid
end
+ def report_issue_popup
+ respond_to do |format|
+ format.js
+ format.html
+ end
+ end
+
+ def report_issue
+ logger.warn "report_issue: #{params.inspect}"
+
+ respond_to do |format|
+ IssueReporter.send_report(current_user, params).deliver
+ format.js {render nothing: true}
+ end
+ end
+
end
end