From c14ae0edcb3c386e50f46218184e8dabcbc20a37 Mon Sep 17 00:00:00 2001 From: radhika Date: Fri, 14 Apr 2017 13:29:54 -0400 Subject: [PATCH] 11450: workflows index page --- .../app/helpers/application_helper.rb | 2 + apps/workbench/app/models/workflow.rb | 8 +++ .../app/views/workflows/_show_recent.html.erb | 65 +++++++++++++++++++ .../test/integration/work_units_test.rb | 24 +++++++ 4 files changed, 99 insertions(+) create mode 100644 apps/workbench/app/views/workflows/_show_recent.html.erb diff --git a/apps/workbench/app/helpers/application_helper.rb b/apps/workbench/app/helpers/application_helper.rb index 056f12f6c8..41b33706d1 100644 --- a/apps/workbench/app/helpers/application_helper.rb +++ b/apps/workbench/app/helpers/application_helper.rb @@ -607,6 +607,7 @@ module ApplicationHelper RESOURCE_CLASS_ICONS = { "Collection" => "fa-archive", + "ContainerRequest" => "fa-gears", "Group" => "fa-users", "Human" => "fa-male", # FIXME: Use a more inclusive icon. "Job" => "fa-gears", @@ -621,6 +622,7 @@ module ApplicationHelper "Trait" => "fa-clipboard", "User" => "fa-user", "VirtualMachine" => "fa-terminal", + "Workflow" => "fa-gears", } DEFAULT_ICON_CLASS = "fa-cube" diff --git a/apps/workbench/app/models/workflow.rb b/apps/workbench/app/models/workflow.rb index 553f141031..c59125fd08 100644 --- a/apps/workbench/app/models/workflow.rb +++ b/apps/workbench/app/models/workflow.rb @@ -2,4 +2,12 @@ class Workflow < ArvadosBase def self.goes_in_projects? true end + + def self.creatable? + false + end + + def textile_attributes + [ 'description' ] + end end diff --git a/apps/workbench/app/views/workflows/_show_recent.html.erb b/apps/workbench/app/views/workflows/_show_recent.html.erb new file mode 100644 index 0000000000..94d39c11a8 --- /dev/null +++ b/apps/workbench/app/views/workflows/_show_recent.html.erb @@ -0,0 +1,65 @@ +<%= render partial: "paging", locals: {results: @objects, object: @object} %> + + + + + + + + + + + + + + + + + + + + + + <% @objects.sort_by { |ob| ob[:created_at] }.reverse.each do |ob| %> + + + + + + + + + + + + <% end %> + +
name description owner
+ <%= button_to(choose_projects_path(id: "run-workflow-button", + title: 'Choose project', + editable: true, + action_name: 'Choose', + action_href: work_units_path, + action_method: 'post', + action_data: {'selection_param' => 'work_unit[owner_uuid]', + 'work_unit[template_uuid]' => ob.uuid, + 'success' => 'redirect-to-created-object' + }.to_json), + { class: "btn btn-default btn-xs", title: "Run #{ob.name}", remote: true, method: :get } + ) do %> + Run + <% end %> + + <%= render :partial => "show_object_button", :locals => {object: ob, size: 'xs'} %> + + <%= render_editable_attribute ob, 'name' %> + + <% if ob.description %> + <%= render_attribute_as_textile(ob, "description", ob.description, false) %> +
+ <% end %> +
+ <%= link_to_if_arvados_object ob.owner_uuid, friendly_name: true %> +
+ +<%= render partial: "paging", locals: {results: @objects, object: @object} %> diff --git a/apps/workbench/test/integration/work_units_test.rb b/apps/workbench/test/integration/work_units_test.rb index 91b382d1bd..f9f5addb15 100644 --- a/apps/workbench/test/integration/work_units_test.rb +++ b/apps/workbench/test/integration/work_units_test.rb @@ -254,4 +254,28 @@ class WorkUnitsTest < ActionDispatch::IntegrationTest end end end + + test 'Run from workflows index page' do + visit page_with_token('active', '/workflows') + + wf_count = page.all('a[data-original-title="show workflow"]').count + assert_equal true, wf_count>0 + + # Run one of the workflows + wf_name = 'Workflow with input specifications' + within('tr', text: wf_name) do + find('a,button', text: 'Run').click + end + + # Choose project for the container_request being created + within('.modal-dialog') do + find('.selectable', text: 'A Project').click + find('button', text: 'Choose').click + end + + # In newly created container_request page now + assert_text 'A Project' # CR created in "A Project" + assert_text "This container request was created from the workflow #{wf_name}" + assert_match /Provide a value for .* then click the \"Run\" button to start the workflow/, page.text + end end -- 2.30.2