X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/195b1b9f5b683110b4cef2ebd4e7cc3401317334..6741a2db39cab991efd28d742071170fdbe908f2:/apps/workbench/app/controllers/application_controller.rb?ds=sidebyside diff --git a/apps/workbench/app/controllers/application_controller.rb b/apps/workbench/app/controllers/application_controller.rb index 3c067fa468..4b775c6036 100644 --- a/apps/workbench/app/controllers/application_controller.rb +++ b/apps/workbench/app/controllers/application_controller.rb @@ -213,7 +213,7 @@ class ApplicationController < ActionController::Base end f.html { if params['tab_pane'] - render_pane params['tab_pane'] + render_pane(if params['tab_pane'].is_a? Hash then params['tab_pane']["name"] else params['tab_pane'] end) elsif request.method.in? ['GET', 'HEAD'] render else @@ -694,17 +694,39 @@ class ApplicationController < ActionController::Base helper_method :running_pipelines def running_pipelines - PipelineInstance.order([["started_at", "asc"]]).filter([["state", "=", "RunningOnServer"]]).all.results.reverse + pi = PipelineInstance.order(["started_at asc", "created_at asc"]).filter([["state", "in", ["RunningOnServer", "RunningOnClient"]]]) + jobs = {} + pi.each do |pl| + pl.components.each do |k,v| + if v.is_a? Hash and v[:job] + jobs[v[:job][:uuid]] = {} + end + end + end + + Job.filter([["uuid", "in", jobs.keys]]).each do |j| + jobs[j[:uuid]] = j + end + + pi.each do |pl| + pl.components.each do |k,v| + if v.is_a? Hash and v[:job] + v[:job] = jobs[v[:job][:uuid]] + end + end + end + + pi end helper_method :finished_pipelines def finished_pipelines lim - PipelineInstance.limit(lim).order([["finished_at", "asc"]]).filter([["state", "in", ["Completed", "Failed", "Cancelled"]]]) + PipelineInstance.limit(lim).order(["finished_at desc"]).filter([["state", "in", ["Complete", "Failed", "Paused"]], ["finished_at", "!=", nil]]) end helper_method :recent_collections def recent_collections lim - c = Collection.limit(lim).order([["modified_at", "asc"]]).filter([["owner_uuid", "is_a", "arvados#group"]]) + c = Collection.limit(lim).order(["modified_at desc"]).filter([["owner_uuid", "is_a", "arvados#group"]]) own = {} Group.filter([["uuid", "in", c.map(&:owner_uuid)]]).each do |g| own[g[:uuid]] = g