From: Peter Amstutz Date: Tue, 19 Aug 2014 13:40:07 +0000 (-0400) Subject: 3504: Fix collection chooser. Fix generic link render to use uuid if nothing X-Git-Tag: 1.1.0~2303^2~14 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/289e5d15402d12ad02ac77e911aca7a32746c905?ds=sidebyside 3504: Fix collection chooser. Fix generic link render to use uuid if nothing else is available. Fix tags for objects other than collections. --- diff --git a/apps/workbench/app/controllers/collections_controller.rb b/apps/workbench/app/controllers/collections_controller.rb index 4003faece8..57c6bb5f42 100644 --- a/apps/workbench/app/controllers/collections_controller.rb +++ b/apps/workbench/app/controllers/collections_controller.rb @@ -45,6 +45,9 @@ class CollectionsController < ApplicationController def choose params[:limit] ||= 40 + find_objects_for_index + @collections = @objects + @filters += [['link_class','=','name'], ['head_uuid','is_a','arvados#collection']] @@ -55,7 +58,7 @@ class CollectionsController < ApplicationController @objects = Collection. filter([['uuid','in',@name_links.collect(&:head_uuid)]]) - preload_links_for_objects @objects.to_a + preload_links_for_objects (@collections.to_a + @objects.to_a) super end diff --git a/apps/workbench/app/controllers/projects_controller.rb b/apps/workbench/app/controllers/projects_controller.rb index a45c740a5d..ea9e5039c0 100644 --- a/apps/workbench/app/controllers/projects_controller.rb +++ b/apps/workbench/app/controllers/projects_controller.rb @@ -176,13 +176,13 @@ class ProjectsController < ApplicationController filters: @filters, offset: @offset) @next_page_href = next_page_href(partial: :contents_rows) + end - uuids = @objects.map { |ob| ob.uuid } - @object_tags = {} - Link.limit(uuids.length*20).filter([["head_uuid", "in", uuids], ["link_class", "=", "tag"]]).each do |t| - @object_tags[t.head_uuid] ||= [] - @object_tags[t.head_uuid] << t - end + uuids = @objects.map { |ob| ob.uuid } + @object_tags = {} + Link.limit(uuids.length*20).filter([["head_uuid", "in", uuids], ["link_class", "=", "tag"]]).each do |t| + @object_tags[t.head_uuid] ||= [] + @object_tags[t.head_uuid] << t end end diff --git a/apps/workbench/app/helpers/application_helper.rb b/apps/workbench/app/helpers/application_helper.rb index 7872792307..e3f6fdc3c9 100644 --- a/apps/workbench/app/helpers/application_helper.rb +++ b/apps/workbench/app/helpers/application_helper.rb @@ -107,6 +107,9 @@ module ApplicationHelper end end end + if link_name.nil? or link_name.empty? + link_name = attrvalue + end if opts[:with_class_name] link_name = "#{resource_class.to_s}: #{link_name}" end @@ -133,9 +136,6 @@ module ApplicationHelper if opts[:no_link] raw(link_name) else - if link_name.nil? or link_name.empty? - link_name = "(unnamed)" - end (link_to raw(link_name), { controller: resource_class.to_s.tableize, action: 'show', id: ((opts[:name_link].andand.uuid) || link_uuid) }, style_opts) + raw(tags) end else @@ -186,8 +186,6 @@ module ApplicationHelper @unique_id ||= (Time.now.to_f*1000000).to_i span_id = object.uuid.to_s + '-' + attr.to_s + '-' + (@unique_id += 1).to_s - puts "Span #{object.inspect} #{(object.andand.default_name || 'none')}" - span_tag = content_tag 'span', attrvalue.to_s, { "data-emptytext" => ('(none)'), "data-placement" => "bottom", diff --git a/apps/workbench/app/views/collections/_choose_rows.html.erb b/apps/workbench/app/views/collections/_choose_rows.html.erb index 8079eb44a6..036e619ce1 100644 --- a/apps/workbench/app/views/collections/_choose_rows.html.erb +++ b/apps/workbench/app/views/collections/_choose_rows.html.erb @@ -1,3 +1,17 @@ +<% @collections.each do |object| %> +
+ + <%= object.name %> + <% links_for_object(object).each do |tag| %> + <% if tag.link_class == 'tag' %> + <%= tag.name %> + <% end %> + <% end %> +
+<% end %> + <% @name_links.each do |name_link| %> <% if (object = get_object(name_link.head_uuid)) %>
-

Found in collections:

-

-<% cols = Collection.filter([["portable_data_hash", "=", @object.portable_data_hash]]).each do |c| %> - <%= link_to_if_arvados_object c.owner_uuid, {:friendly_name => true} %> / <%= link_to_if_arvados_object c, {:friendly_name => true} %>
-<% end %> -

-<% end %> - <% if not (@output_of.andand.any? or @log_of.andand.any?) %>

No source information available.

<% end %> diff --git a/apps/workbench/app/views/collections/show.html.erb b/apps/workbench/app/views/collections/show.html.erb index ee809d60d3..98bfafb5fc 100644 --- a/apps/workbench/app/views/collections/show.html.erb +++ b/apps/workbench/app/views/collections/show.html.erb @@ -3,17 +3,30 @@

- <%= if @object.respond_to? :name - render_editable_attribute @object, :name - else - @name_link.andand.name || @object.uuid - end%> + <% if @object.uuid.match /[0-9a-f]{32}/ %> + Content hash <%= @object.portable_data_hash %> + <% else %> + <%= if @object.respond_to? :name + render_editable_attribute @object, :name + else + @name_link.andand.name || @object.uuid + end %> + <% end %>

-

Content hash:
- <%= link_to @object.portable_data_hash, collection_path(@object.portable_data_hash) %>

+ <% if @object.uuid.match /[0-9a-f]{32}/ %> +

Found in collections:

+

+ <% cols = Collection.filter([["portable_data_hash", "=", @object.portable_data_hash]]).each do |c| %> + <%= link_to_if_arvados_object c.owner_uuid, {:friendly_name => true} %> / <%= link_to_if_arvados_object c, {:friendly_name => true} %>
+ <% end %> +

+ <% else %> +

Content hash:
+ <%= link_to @object.portable_data_hash, collection_path(@object.portable_data_hash) %>

+ <% end %> <%= render partial: "show_source_summary" %>
diff --git a/apps/workbench/app/views/projects/_show_contents_rows.html.erb b/apps/workbench/app/views/projects/_show_contents_rows.html.erb index a1c8fe8207..c136187f1d 100644 --- a/apps/workbench/app/views/projects/_show_contents_rows.html.erb +++ b/apps/workbench/app/views/projects/_show_contents_rows.html.erb @@ -30,7 +30,7 @@
- <% if @object_tags[object.uuid] %> + <% if @object_tags and @object_tags[object.uuid] %> <% @object_tags[object.uuid].each do |tag_link| %> <%= link_to tag_link.name, controller: "links", filters: [["link_class", "=", "tag"], ["name", "=", tag_link.name]].to_json %>