X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/356878b49264fc1b2841e2a89d4406d2c5c4484a..63e8f77e963949d4187555411e7b5c60fc850468:/apps/workbench/app/controllers/collections_controller.rb?ds=sidebyside diff --git a/apps/workbench/app/controllers/collections_controller.rb b/apps/workbench/app/controllers/collections_controller.rb index fe861eb87d..b6997b9759 100644 --- a/apps/workbench/app/controllers/collections_controller.rb +++ b/apps/workbench/app/controllers/collections_controller.rb @@ -1,15 +1,16 @@ class CollectionsController < ApplicationController - skip_before_filter :find_object_by_uuid, :only => [:graph] + skip_before_filter :find_object_by_uuid, :only => [:provenance] skip_before_filter :check_user_agreements, :only => [:show_file] - def graph - index + def show_pane_list + %w(Files Attributes Metadata Provenance_graph Used_by JSON API) end - def index if params[:search].andand.length.andand > 0 - tags = Link.where(link_class: 'tag', any: ['contains', params[:search]]) - @collections = Collection.where(uuid: tags.collect(&:head_uuid)) + tags = Link.where(any: ['contains', params[:search]]) + @collections = (Collection.where(uuid: tags.collect(&:head_uuid)) | + Collection.where(any: ['contains', params[:search]])). + uniq { |c| c.uuid } else @collections = Collection.limit(100) end @@ -18,7 +19,7 @@ class CollectionsController < ApplicationController @collection_info = {} @collections.each do |c| @collection_info[c.uuid] = { - tags: [], + tag_links: [], wanted: false, wanted_by_me: false, provenance: [], @@ -30,7 +31,7 @@ class CollectionsController < ApplicationController info = @collection_info[link.head_uuid] case link.link_class when 'tag' - info[:tags] << link.name + info[:tag_links] << link when 'resources' info[:wanted] = true info[:wanted_by_me] ||= link.tail_uuid == current_user.uuid @@ -54,6 +55,7 @@ class CollectionsController < ApplicationController self.response_body = FileStreamer.new opts end + def show return super if !@object @provenance = [] @@ -98,6 +100,11 @@ class CollectionsController < ApplicationController @sourcedata[collection.uuid][:collection] = collection end end + + Collection.where(uuid: @object.uuid).each do |u| + @prov_svg = ProvenanceHelper::create_provenance_graph u.provenance, "provenance_svg", {:direction => :top_down, :combine_jobs => :script_only} rescue nil + @used_by_svg = ProvenanceHelper::create_provenance_graph u.used_by, "used_by_svg", {:direction => :top_down, :combine_jobs => :script_only, :pdata_only => true} rescue nil + end end protected