+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
require "arvados/keep"
class Collection < ArvadosBase
end
def content_summary
- ApplicationController.helpers.human_readable_bytes_html(total_bytes) + " " + super
+ if total_bytes > 0
+ ApplicationController.helpers.human_readable_bytes_html(total_bytes) + " " + super
+ else
+ super + " modified at " + modified_at.to_s
+ end
end
def total_bytes
.sort.flat_map do |parts|
[parts + [nil]] + dir_to_tree.call(File.join(parts))
end
- # Then extend that list with files in this directory.
- subnodes + tree[File.split(dirname)]
+ # Then extend that list with files in this directory, except the empty dir placeholders (0:0:. files).
+ subnodes + tree[File.split(dirname)].reject { |_, basename, size| (basename == '.') and (size == 0) }
end
dir_to_tree.call('.')
end
- def attribute_editable? attr, *args
- if %w(name description manifest_text).include? attr.to_s
- true
- else
- super
- end
- end
-
- def self.creatable?
- false
+ def editable_attributes
+ %w(name description manifest_text filename)
end
def provenance
end
end
- def portable_data_hash
- if self[:portable_data_hash].nil?
- return self[:uuid]
- else
- super
- end
- end
-
def friendly_link_name lookup=nil
- if self.respond_to? :name
- self.name
- else
- self.portable_data_hash
- end
+ name || portable_data_hash
end
def textile_attributes
[ 'description' ]
end
+ def untrash
+ arvados_api_client.api(self.class, "/#{self.uuid}/untrash", {"ensure_unique_name" => true})
+ end
end