[ARVADOS] created: 2113a5184e4a5078f7701859ce6d6fa1aab6bcf4

Git user git at public.curoverse.com
Fri Apr 14 13:30:34 EDT 2017


        at  2113a5184e4a5078f7701859ce6d6fa1aab6bcf4 (commit)


commit 2113a5184e4a5078f7701859ce6d6fa1aab6bcf4
Author: radhika <radhika at curoverse.com>
Date:   Fri Apr 14 13:29:54 2017 -0400

    11450: workflows index page

diff --git a/apps/workbench/app/helpers/application_helper.rb b/apps/workbench/app/helpers/application_helper.rb
index 056f12f..41b3370 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 553f141..c59125f 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 0000000..94d39c1
--- /dev/null
+++ b/apps/workbench/app/views/workflows/_show_recent.html.erb
@@ -0,0 +1,65 @@
+<%= render partial: "paging", locals: {results: @objects, object: @object} %>
+
+<table class="table table-condensed arv-index">
+  <colgroup>
+    <col width="10%" />
+    <col width="10%" />
+    <col width="25%" />
+    <col width="40%" />
+    <col width="15%" />
+  </colgroup>
+
+  <thead>
+    <tr class="contain-align-left">
+      <th></th>
+      <th></th>
+      <th> name </th>
+      <th> description </th>
+      <th> owner </th>
+    </tr>
+  </thead>
+
+  <tbody>
+    <% @objects.sort_by { |ob| ob[:created_at] }.reverse.each do |ob| %>
+      <tr>
+        <td>
+          <%= 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 %>
+                 <i class="fa fa-fw fa-play"></i> Run
+          <% end %>
+        </td>
+
+        <td>
+          <%= render :partial => "show_object_button", :locals => {object: ob, size: 'xs'} %>
+        </td>
+
+        <td>
+          <%= render_editable_attribute ob, 'name' %>
+        </td>
+
+        <td>
+          <% if ob.description %>
+            <%= render_attribute_as_textile(ob, "description", ob.description, false) %>
+            <br />
+          <% end %>
+        </td>
+
+        <td>
+          <%= link_to_if_arvados_object ob.owner_uuid, friendly_name: true %>
+        </td>
+      </tr>
+    <% end %>
+  </tbody>
+</table>
+
+<%= 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 91b382d..f9f5add 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

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list