X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/a2107d5fc7982769c2d667e51656a6e2529d9bc9..010a56c1ac501c8ae18b71198d53c17e60f9d9e3:/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 e477102985..761dc91414 100644 --- a/apps/workbench/app/controllers/pipeline_instances_controller.rb +++ b/apps/workbench/app/controllers/pipeline_instances_controller.rb @@ -15,6 +15,12 @@ class PipelineInstancesController < ApplicationController p.components.each do |k, v| j = v[:job] || next + # The graph is interested in whether the component is + # indicated as persistent, more than whether the job + # satisfying it (which could have been reused, or someone + # else's) is. + j[:output_is_persistent] = v[:output_is_persistent] + uuid = j[:uuid].intern provenance[uuid] = j pips[uuid] = 0 unless pips[uuid] != nil @@ -45,38 +51,6 @@ class PipelineInstancesController < ApplicationController end def show - if @object.components.empty? and @object.pipeline_template_uuid - template = PipelineTemplate.find(@object.pipeline_template_uuid) - pipeline = {} - template.components.each do |component_name, component_props| - pipeline[component_name] = {} - component_props.each do |k, v| - if k == :script_parameters - pipeline[component_name][:script_parameters] = {} - v.each do |param_name, param_value| - if param_value.is_a? Hash - if param_value[:value] - pipeline[component_name][:script_parameters][param_name] = param_value[:value] - elsif param_value[:default] - pipeline[component_name][:script_parameters][param_name] = param_value[:default] - elsif param_value[:optional] != nil or param_value[:required] != nil or param_value[:dataclass] != nil - pipeline[component_name][:script_parameters][param_name] = "" - else - pipeline[component_name][:script_parameters][param_name] = param_value - end - else - pipeline[component_name][:script_parameters][param_name] = param_value - end - end - else - pipeline[component_name][k] = v - end - end - end - @object.components= pipeline - @object.save - end - @pipelines = [@object] if params[:compare] @@ -88,6 +62,7 @@ class PipelineInstancesController < ApplicationController provenance, pips = graph(@pipelines) @prov_svg = ProvenanceHelper::create_provenance_graph provenance, "provenance_svg", { + :request => request, :all_script_parameters => true, :combine_jobs => :script_and_version, :script_version_nodes => true, @@ -159,6 +134,7 @@ class PipelineInstancesController < ApplicationController @pipelines = @objects @prov_svg = ProvenanceHelper::create_provenance_graph provenance, "provenance_svg", { + :request => request, :all_script_parameters => true, :combine_jobs => :script_and_version, :script_version_nodes => true, @@ -166,24 +142,19 @@ class PipelineInstancesController < ApplicationController end def show_pane_list - %w(Components Graph Attributes Metadata JSON API) + panes = %w(Components Graph Attributes Metadata JSON API) + if @object and @object.state.in? ['New', 'Ready'] + panes = %w(Inputs) + panes + end + panes end def compare_pane_list %w(Compare Graph) end - def update - updates = params[@object.class.to_s.underscore.singularize.to_sym] - if updates["components"] - require 'deep_merge/rails_compat' - updates["components"] = updates["components"].deeper_merge(@object.components) - end - super - end - def index - @objects ||= model_class.limit(20).all + @limit = 20 super end