Module: MissionControl::Jobs::NavigationHelper
- Included in:
- ApplicationHelper
- Defined in:
- app/helpers/mission_control/jobs/navigation_helper.rb
Instance Attribute Summary collapse
-
#current_section ⇒ Object
readonly
Returns the value of attribute current_section.
-
#page_title ⇒ Object
readonly
Returns the value of attribute page_title.
Instance Method Summary collapse
- #back_to_main_app_path ⇒ Object
- #jobs_count_with_status(status) ⇒ Object
- #navigation(title: nil, section: nil) ⇒ Object
- #navigation_section_for_status(status) ⇒ Object
- #navigation_sections ⇒ Object
- #selectable_applications ⇒ Object
- #selected_application?(application) ⇒ Boolean
- #selected_server?(server) ⇒ Boolean
Instance Attribute Details
#current_section ⇒ Object (readonly)
Returns the value of attribute current_section.
2 3 4 |
# File 'app/helpers/mission_control/jobs/navigation_helper.rb', line 2 def current_section @current_section end |
#page_title ⇒ Object (readonly)
Returns the value of attribute page_title.
2 3 4 |
# File 'app/helpers/mission_control/jobs/navigation_helper.rb', line 2 def page_title @page_title end |
Instance Method Details
#back_to_main_app_path ⇒ Object
4 5 6 |
# File 'app/helpers/mission_control/jobs/navigation_helper.rb', line 4 def back_to_main_app_path MissionControl::Jobs.back_to_main_app_path.presence || main_app.try(:root_path) end |
#jobs_count_with_status(status) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'app/helpers/mission_control/jobs/navigation_helper.rb', line 44 def jobs_count_with_status(status) count = ActiveJob.jobs.with_status(status).count if count.infinite? "..." else number_to_human(count, format: "%n%u", units: { thousand: "K", million: "M", billion: "B", trillion: "T", quadrillion: "Q" }) end end |
#navigation(title: nil, section: nil) ⇒ Object
27 28 29 30 |
# File 'app/helpers/mission_control/jobs/navigation_helper.rb', line 27 def (title: nil, section: nil) @page_title = title @current_section = section end |
#navigation_section_for_status(status) ⇒ Object
19 20 21 22 23 24 25 |
# File 'app/helpers/mission_control/jobs/navigation_helper.rb', line 19 def (status) if status.nil? || status == :pending :queues else "#{status}_jobs".to_sym end end |
#navigation_sections ⇒ Object
8 9 10 11 12 13 14 15 16 17 |
# File 'app/helpers/mission_control/jobs/navigation_helper.rb', line 8 def { queues: [ "Queues", application_queues_path(@application) ] }.tap do |sections| supported_job_statuses.without(:pending).each do |status| sections[(status)] = [ "#{status.to_s.titleize} jobs (#{jobs_count_with_status(status)})", application_jobs_path(@application, status) ] end sections[:workers] = [ "Workers", application_workers_path(@application) ] if workers_exposed? sections[:recurring_tasks] = [ "Recurring tasks", application_recurring_tasks_path(@application) ] if recurring_tasks_supported? end end |
#selectable_applications ⇒ Object
36 37 38 |
# File 'app/helpers/mission_control/jobs/navigation_helper.rb', line 36 def selectable_applications MissionControl::Jobs.applications.reject { |app| selected_application?(app) } end |
#selected_application?(application) ⇒ Boolean
32 33 34 |
# File 'app/helpers/mission_control/jobs/navigation_helper.rb', line 32 def selected_application?(application) MissionControl::Jobs::Current.application.name == application.name end |
#selected_server?(server) ⇒ Boolean
40 41 42 |
# File 'app/helpers/mission_control/jobs/navigation_helper.rb', line 40 def selected_server?(server) MissionControl::Jobs::Current.server.name == server.name end |