X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/cc527a74c89f44267c50a52194ec0560484a72a0..da2803a65e696bf85883e82a0bda6ef81dda5429:/apps/workbench/app/controllers/pipeline_instances_controller.rb diff --git a/apps/workbench/app/controllers/pipeline_instances_controller.rb b/apps/workbench/app/controllers/pipeline_instances_controller.rb index 588cd0cfe1..a8a35b510b 100644 --- a/apps/workbench/app/controllers/pipeline_instances_controller.rb +++ b/apps/workbench/app/controllers/pipeline_instances_controller.rb @@ -45,6 +45,12 @@ class PipelineInstancesController < ApplicationController end def show + if @object.components.empty? and @object.pipeline_template_uuid + template = PipelineTemplate.find(@object.pipeline_template_uuid) + @object.components= template.components + @object.save + end + @pipelines = [@object] if params[:compare] @@ -95,6 +101,7 @@ class PipelineInstancesController < ApplicationController highscore = {} # attr => how common "normal" is score = {} # attr => { value => how common } row[:components].each do |pj| + next if pj.nil? pj.each do |k,v| vstr = for_comparison v score[k] ||= {} @@ -113,6 +120,7 @@ class PipelineInstancesController < ApplicationController # Add a hash in component[:is_normal]: { attr => is_the_value_normal? } row[:components].each do |pj| + next if pj.nil? pj[:is_normal] = {} pj.each do |k,v| pj[:is_normal][k] = (normal.has_key?(k) && normal[k] == for_comparison(v)) @@ -122,6 +130,8 @@ class PipelineInstancesController < ApplicationController provenance, pips = graph(@objects) + @pipelines = @objects + @prov_svg = ProvenanceHelper::create_provenance_graph provenance, "provenance_svg", { :all_script_parameters => true, :combine_jobs => :script_and_version, @@ -129,6 +139,14 @@ class PipelineInstancesController < ApplicationController :pips => pips } end + def show_pane_list + %w(Components Graph Attributes Metadata JSON API) + end + + def compare_pane_list + %w(Compare Graph) + end + protected def for_comparison v if v.is_a? Hash or v.is_a? Array