Merge branch 'master' of git.clinicalfuture.com:arvados
[arvados.git] / apps / workbench / app / controllers / actions_controller.rb
index 6f5ed608e91bd4f2c523641d9f913d7b35c46f54..8a817f03cd78e52dc61ab7c57bff4dc12ff3fe8a 100644 (file)
@@ -1,10 +1,13 @@
 class ActionsController < ApplicationController
+
+  skip_before_filter :find_object_by_uuid, only: :post
+
   def combine_selected_files_into_collection
     lst = []
     files = []
     params["selection"].each do |s|
       m = CollectionsHelper.match(s)
-      if m[1] and m[2]
+      if m and m[1] and m[2]
         lst.append(m[1] + m[2])
         files.append(m)
       end
@@ -71,12 +74,22 @@ class ActionsController < ApplicationController
     newc = Collection.new({:uuid => newuuid, :manifest_text => normalized})
     newc.save!
 
-    '/collections/' + newc.uuid
+    chash.each do |k,v|
+      l = Link.new({
+                     tail_uuid: k,
+                     head_uuid: newuuid,
+                     link_class: "provenance",
+                     name: "provided"
+                   })
+      l.save!
+    end
+
+    redirect_to controller: 'collections', action: :show, id: newc.uuid
   end
 
   def post
     if params["combine_selected_files_into_collection"]
-      redirect_to combine_selected_files_into_collection
+      combine_selected_files_into_collection
     else
       redirect_to :back
     end