X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/36601cdb390b06d0128152cbda6df7aadfab6aca..00af5ad16232b856ef1f3620a4f62f0946c681a7:/apps/workbench/app/controllers/collections_controller.rb diff --git a/apps/workbench/app/controllers/collections_controller.rb b/apps/workbench/app/controllers/collections_controller.rb index f0e7765be5..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 > 0 - tags = Link.where(link_class: 'tag', any: ['contains', params[:search]]) - @collections = Collection.where(uuid: tags.collect(&:head_uuid)) + if params[:search].andand.length.andand > 0 + 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 @@ -39,6 +40,7 @@ class CollectionsController < ApplicationController end info[:links] << link end + @request_url = request.url end def show_file @@ -53,6 +55,7 @@ class CollectionsController < ApplicationController self.response_body = FileStreamer.new opts end + def show return super if !@object @provenance = [] @@ -97,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