X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/a9f77ff084be7ad9caeb9e9601c022cb05e3c548..4077a9af0985d3c85f2f2de2bb7a0f6be581e71e:/apps/workbench/app/views/pipeline_instances/_show_components.html.erb diff --git a/apps/workbench/app/views/pipeline_instances/_show_components.html.erb b/apps/workbench/app/views/pipeline_instances/_show_components.html.erb index 6d6a8b1afb..7735997748 100644 --- a/apps/workbench/app/views/pipeline_instances/_show_components.html.erb +++ b/apps/workbench/app/views/pipeline_instances/_show_components.html.erb @@ -1,143 +1,19 @@ -<% content_for :css do %> +<% if !@object.state.in? ['New', 'Ready'] %> -<% end %> - -<% template = PipelineTemplate.find(@object.pipeline_template_uuid) rescue nil %> - -<%= content_for :content_top do %> -

- <%= render_editable_attribute @object, 'name', nil %> -

- <% if template %> -
From template:
- <%= link_to_if_arvados_object template, friendly_name: true %>
- <%= template.description %> -
- <% end %> -<% end %> - -<% pipeline_job_uuids = [] %> - -<% if !@object.state.in? ['New', 'Ready', 'Paused'] %> - - - - - - - - - - - - - - - <% render_pipeline_jobs.each do |pj| %> - <% if pj[:job].andand[:uuid] - pipeline_job_uuids << pj[:job][:uuid] - end %> - - - - <% end %> - - - - -
- component - - script, version - - job - <%# format:'js' here helps browsers avoid using the cached js - content in html context (e.g., duplicate tab -> see - javascript) %> - <%= link_to '(refresh)', {format: :js}, {class: 'refresh hide', remote: true, method: 'get'} %> - - - output -
- <%= pj[:name] %> - - <%= pj[:script] %> -
<%= pj[:script_version] %> -
- <%= pj[:progress_bar] %> - <% if @object.state == 'Complete' || @object.state == 'Failed' %> - <% if pj[:job].andand[:uuid] %> - - <%= link_to("..."+pj[:job][:uuid].last(15), job_url(id: pj[:job][:uuid])) %> - - - <% current_job = Job.find(pj[:job][:uuid]) rescue nil %> - <% if current_job.andand[:log] %> - <% fixup = /([a-f0-9]{32}\+\d+)(\+?.*)/.match(current_job[:log])%> - <% Collection.limit(1).where(uuid: fixup[1]).each do |c| %> - <% c.files.each do |file| %> -
- log - - <% end %> - <% end %> - <% end %> - <% end %> - <% end %> -
- <%= render(partial: 'job_status_label', - locals: { :j => pj[:job] }) %> - - <%= link_to_if_arvados_object pj[:output], {:thumbnail => true} %> -
- -<% if @object.state == 'RunningOnServer' || @object.state == 'RunningOnClient' %> -<% content_for :js do %> -setInterval(function(){$('a.refresh').click()}, 15000); -<% end %> - -<% content_for :tab_line_buttons do %> - <%= form_tag @object, :method => :put do |f| %> - - <%= hidden_field @object.class.to_s.underscore.singularize.to_sym, :state, :value => 'Paused' %> - - <%= button_tag({class: 'btn btn-primary pull-right run-pipeline-button'}) do %> - Stop - <% end %> - <% end %> -<% end %> - - <% if !pipeline_job_uuids.empty? %> -

Log messages from running jobs

- <% log_history = pipeline_log_history(pipeline_job_uuids) %> -
- <% log_history.each do |entry| %> - <%=entry%>
- <% end %> -
-
"/> - <% end %> - <% end %> - -<% else %> <%# State new or ready or paused %> - <% if @object.state == 'New' %> -

Here are all of the pipeline's components (jobs that will need to run in order to complete the pipeline). If you know what you're doing (or you're experimenting) you can modify these parameters before starting the pipeline. Usually, you only need to edit the settings presented on the "Inputs" tab above.

- <% end %> - - <% content_for :tab_line_buttons do %> - <%= form_tag @object, :method => :put do |f| %> + <% + job_uuids = @object.components.map { |k,j| j.is_a? Hash and j[:job].andand[:uuid] }.compact + throttle = @object.state.start_with?('Running') ? 5000 : 15000 + %> +
- <%= hidden_field @object.class.to_s.underscore.singularize.to_sym, :state, :value => 'RunningOnServer' %> + <%= render_pipeline_components("running", :json) %> - <%= button_tag({class: 'btn btn-primary pull-right run-pipeline-button'}) do %> - Run - <% end %> - <% end %> - <% end %> +<% else %> + <%# state is either New or Ready %> +

Here are all of the pipeline's components (jobs that will need to run in order to complete the pipeline). If you know what you're doing (or you're experimenting) you can modify these parameters before starting the pipeline. Usually, you only need to edit the settings presented on the "Inputs" tab above.

- <% if @object.state.in? ['New', 'Ready'] %> - <%= render partial: 'show_components_editable', locals: {editable: true} %> - <% else %> - <%= render partial: 'show_components_editable', locals: {editable: false} %> - <% end %> + <%= render_pipeline_components("editable", :json, editable: true) %> <% end %>