class JobsController < ApplicationController
+ include JobsHelper
def generate_provenance(jobs)
return if params['tab_pane'] != "Provenance"
super
end
+ def logs
+ @logs = Log.select(%w(event_type object_uuid event_at properties))
+ .order('event_at DESC')
+ .filter([["event_type", "=", "stderr"],
+ ["object_uuid", "in", [@object.uuid]]])
+ .limit(500)
+ .results
+ .to_a
+ .map{ |e| e.serializable_hash.merge({ 'prepend' => true }) }
+ respond_to do |format|
+ format.json { render json: @logs }
+ end
+ end
+
def index_pane_list
if params[:uuid]
%w(Recent Provenance)
def show_pane_list
%w(Status Log Details Provenance Advanced)
end
+
+ def rerun_job_with_options_popup
+ respond_to do |format|
+ format.js
+ format.html
+ end
+ end
+
+ def rerun_job_with_options
+ job_info = JSON.parse params['job_info']
+
+ @object = Job.new
+ @object.script = job_info['script']
+ @object.repository = job_info['repository']
+ @object.nondeterministic = job_info['nondeterministic']
+ @object.script_parameters = job_info['script_parameters']
+ @object.runtime_constraints = job_info['runtime_constraints']
+
+ if params['use_script'] == 'latest'
+ @object.script_version = job_info['supplied_script_version']
+ else
+ @object.script_version = job_info['script_version']
+ end
+
+ @object.save!
+ show
+ end
end