X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/a959f21c8147f26362df392bc3fd3290db69de85..0fdafcb846ec6bb34e4b8ae91ad62c1ccd328355:/apps/workbench/app/models/collection.rb diff --git a/apps/workbench/app/models/collection.rb b/apps/workbench/app/models/collection.rb index 008d108fd4..78b0c36376 100644 --- a/apps/workbench/app/models/collection.rb +++ b/apps/workbench/app/models/collection.rb @@ -1,6 +1,14 @@ class Collection < ArvadosBase MD5_EMPTY = 'd41d8cd98f00b204e9800998ecf8427e' + def default_name + if Collection.is_empty_blob_locator? self.uuid + "Empty Collection" + else + super + end + end + # Return true if the given string is the locator of a zero-length blob def self.is_empty_blob_locator? locator !!locator.to_s.match("^#{MD5_EMPTY}(\\+.*)?\$") @@ -49,7 +57,11 @@ class Collection < ArvadosBase end def attribute_editable? attr, *args - false + if %w(name description manifest_text).include? attr.to_s + true + else + super + end end def self.creatable? @@ -64,4 +76,28 @@ class Collection < ArvadosBase arvados_api_client.api "collections/#{self.uuid}/", "used_by" end + def uuid + if self[:uuid].nil? + return self[:portable_data_hash] + else + super + end + end + + def portable_data_hash + if self[:portable_data_hash].nil? + return self[:uuid] + else + super + end + end + + def friendly_link_name + if self.respond_to? :name + self.name + else + self.portable_data_hash + end + end + end