Merge branch '8784-dir-listings'
[arvados.git] / apps / workbench / app / controllers / collections_controller.rb
index 3752bec7bef1e4ee9f6c59f5d999d66b4e016af5..f8fcf5108f025659bf5058f2861ef42d2e1b5781 100644 (file)
@@ -1,3 +1,7 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
 require "arvados/keep"
 require "arvados/collection"
 require "uri"
@@ -20,7 +24,7 @@ class CollectionsController < ApplicationController
   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
@@ -285,7 +289,7 @@ class CollectionsController < ApplicationController
   def download_link
     token = @search_sharing.first.api_token
     if Rails.configuration.keep_web_url || Rails.configuration.keep_web_download_url
-      keep_web_url(@object.uuid, nil, {query_token: token})
+      keep_web_url(@object.uuid, nil, {path_token: token})
     else
       collections_url + "/download/#{@object.uuid}/#{token}/"
     end
@@ -354,6 +358,30 @@ class CollectionsController < ApplicationController
     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)