Module: MissionControl::Jobs::NavigationHelper

Included in:
ApplicationHelper
Defined in:
app/helpers/mission_control/jobs/navigation_helper.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#current_sectionObject (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_titleObject (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_pathObject



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


27
28
29
30
# File 'app/helpers/mission_control/jobs/navigation_helper.rb', line 27

def navigation(title: nil, section: nil)
  @page_title = title
  @current_section = section
end


19
20
21
22
23
24
25
# File 'app/helpers/mission_control/jobs/navigation_helper.rb', line 19

def navigation_section_for_status(status)
  if status.nil? || status == :pending
    :queues
  else
    "#{status}_jobs".to_sym
  end
end


8
9
10
11
12
13
14
15
16
17
# File 'app/helpers/mission_control/jobs/navigation_helper.rb', line 8

def navigation_sections
  { queues: [ "Queues", application_queues_path(@application) ] }.tap do |sections|
    supported_job_statuses.without(:pending).each do |status|
       sections[navigation_section_for_status(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_applicationsObject



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

Returns:

  • (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

Returns:

  • (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