Merge branch '2857-collection-tests'
[arvados.git] / apps / workbench / app / controllers / jobs_controller.rb
1 class JobsController < ApplicationController
2
3   def generate_provenance(jobs)
4     nodes = []
5     collections = []
6     jobs.each do |j|
7       nodes << j
8       collections << j[:output]
9       collections.concat(ProvenanceHelper::find_collections(j[:script_parameters]))
10       nodes << {:uuid => j[:script_version]}
11     end
12
13     Collection.where(uuid: collections).each do |c|
14       nodes << c
15     end
16
17     @svg = ProvenanceHelper::create_provenance_graph nodes, "provenance_svg", {
18       :request => request,
19       :all_script_parameters => true,
20       :script_version_nodes => true}
21   end
22
23   def index
24     @svg = ""
25     if params[:uuid]
26       @objects = Job.where(uuid: params[:uuid])
27       generate_provenance(@objects)
28     else
29       @limit = 20
30       super
31     end
32   end
33
34   def cancel
35     @object.cancel
36     redirect_to @object
37   end
38
39   def show
40     generate_provenance([@object])
41   end
42
43   def index_pane_list
44     if params[:uuid]
45       %w(Recent Provenance)
46     else
47       %w(Recent)
48     end
49   end
50
51   def show_pane_list
52     %w(Status Attributes Provenance Metadata JSON API)
53   end
54 end