rocketjob_mission_control 3.0.3 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +4 -0
  3. data/app/assets/fonts/webfonts/fa-brands-400.eot +0 -0
  4. data/app/assets/fonts/webfonts/fa-brands-400.woff +0 -0
  5. data/app/assets/fonts/webfonts/fa-brands-400.woff2 +0 -0
  6. data/app/assets/fonts/webfonts/fa-regular-400.eot +0 -0
  7. data/app/assets/fonts/webfonts/fa-regular-400.woff +0 -0
  8. data/app/assets/fonts/webfonts/fa-regular-400.woff2 +0 -0
  9. data/app/assets/fonts/webfonts/fa-solid-900.eot +0 -0
  10. data/app/assets/fonts/webfonts/fa-solid-900.woff +0 -0
  11. data/app/assets/fonts/webfonts/fa-solid-900.woff2 +0 -0
  12. data/app/assets/images/rocket_job_mission_control/android-chrome-192x192.png +0 -0
  13. data/app/assets/images/rocket_job_mission_control/android-chrome-512x512.png +0 -0
  14. data/app/assets/images/rocket_job_mission_control/apple-touch-icon.png +0 -0
  15. data/app/assets/images/rocket_job_mission_control/favicon-16x16.png +0 -0
  16. data/app/assets/images/rocket_job_mission_control/favicon-32x32.png +0 -0
  17. data/app/assets/images/rocket_job_mission_control/favicon.ico +0 -0
  18. data/app/assets/images/rocket_job_mission_control/favicon.png +0 -0
  19. data/app/assets/images/rocket_job_mission_control/mstile-150x150.png +0 -0
  20. data/app/assets/images/rocket_job_mission_control/safari-pinned-tab.svg +188 -0
  21. data/app/assets/javascripts/rocket_job_mission_control/datatable.js +2 -1
  22. data/app/assets/stylesheets/rocket_job_mission_control/application.scss +5 -4
  23. data/app/assets/stylesheets/rocket_job_mission_control/base.scss +39 -65
  24. data/app/assets/stylesheets/rocket_job_mission_control/callout.scss +14 -2
  25. data/app/datatables/rocket_job_mission_control/active_workers_datatable.rb +1 -1
  26. data/app/datatables/rocket_job_mission_control/dirmon_entries_datatable.rb +1 -1
  27. data/app/datatables/rocket_job_mission_control/jobs_datatable.rb +21 -16
  28. data/app/datatables/rocket_job_mission_control/servers_datatable.rb +1 -1
  29. data/app/helpers/rocket_job_mission_control/application_helper.rb +18 -16
  30. data/app/helpers/rocket_job_mission_control/jobs_helper.rb +11 -6
  31. data/app/views/layouts/rocket_job_mission_control/application.html.erb +30 -28
  32. data/app/views/layouts/rocket_job_mission_control/partials/_flash.html.erb +5 -4
  33. data/app/views/layouts/rocket_job_mission_control/partials/_header.html.erb +23 -19
  34. data/app/views/layouts/rocket_job_mission_control/partials/_sidebar.html.erb +5 -4
  35. data/app/views/rocket_job_mission_control/active_workers/index.html.erb +13 -8
  36. data/app/views/rocket_job_mission_control/dirmon_entries/_form.html.erb +31 -21
  37. data/app/views/rocket_job_mission_control/dirmon_entries/_sidebar.html.erb +12 -9
  38. data/app/views/rocket_job_mission_control/dirmon_entries/_status.html.erb +5 -2
  39. data/app/views/rocket_job_mission_control/dirmon_entries/edit.html.erb +4 -3
  40. data/app/views/rocket_job_mission_control/dirmon_entries/index.html.erb +16 -14
  41. data/app/views/rocket_job_mission_control/dirmon_entries/new.html.erb +5 -4
  42. data/app/views/rocket_job_mission_control/dirmon_entries/show.html.erb +19 -14
  43. data/app/views/rocket_job_mission_control/jobs/_pagination.html.erb +9 -5
  44. data/app/views/rocket_job_mission_control/jobs/_sidebar.html.erb +9 -8
  45. data/app/views/rocket_job_mission_control/jobs/_status.html.erb +18 -10
  46. data/app/views/rocket_job_mission_control/jobs/edit.html.erb +22 -15
  47. data/app/views/rocket_job_mission_control/jobs/exception.html.erb +14 -10
  48. data/app/views/rocket_job_mission_control/jobs/exceptions.html.erb +27 -25
  49. data/app/views/rocket_job_mission_control/jobs/index.html.erb +16 -13
  50. data/app/views/rocket_job_mission_control/jobs/show.html.erb +25 -20
  51. data/app/views/rocket_job_mission_control/servers/_sidebar.html.erb +8 -6
  52. data/app/views/rocket_job_mission_control/servers/index.html.erb +18 -14
  53. data/config/initializers/assets.rb +13 -0
  54. data/lib/rocket_job_mission_control/version.rb +1 -1
  55. data/test/controllers/rocket_job_mission_control/dirmon_entries_controller_test.rb +4 -6
  56. data/test/controllers/rocket_job_mission_control/jobs_controller_test.rb +18 -15
  57. data/test/helpers/rocket_job_mission_control/jobs_helper_test.rb +12 -6
  58. data/test/helpers/rocket_job_mission_control/servers_helper_test.rb +3 -4
  59. data/vendor/assets/stylesheets/fontawesome-all.min.css +5 -0
  60. data/vendor/assets/stylesheets/{selectize.default.css → selectize.bootstrap3.css} +134 -113
  61. metadata +39 -13
@@ -4,9 +4,9 @@
4
4
  border-left-width: 0.5em;
5
5
  }
6
6
  .callout-queued {
7
- border-left-color: darkgrey;
7
+ border-left-color: #A29F00;
8
8
  a {
9
- color: darkgrey;
9
+ color: #A29F00;
10
10
  }
11
11
  }
12
12
  .callout-running {
@@ -15,6 +15,18 @@
15
15
  color: #337ab7;
16
16
  }
17
17
  }
18
+ .callout-sleeping {
19
+ border-left-color: darkcyan;
20
+ a {
21
+ color: darkcyan;
22
+ }
23
+ }
24
+ .callout-scheduled {
25
+ border-left-color: #92001B;
26
+ a {
27
+ color: #92001B;
28
+ }
29
+ }
18
30
  .callout-completed {
19
31
  border-left-color: green;
20
32
  a {
@@ -21,7 +21,7 @@ module RocketJobMissionControl
21
21
  def worker_name_with_icon(active_worker, job)
22
22
  state = active_worker.zombie? ? :zombie : job.state
23
23
  <<-EOS
24
- <i class="fa #{state_icon(state)}" style="font-size: 75%" title="#{state}"></i>
24
+ <i class="#{state_icon(state)}" style="font-size: 75%" title="#{state}"></i>
25
25
  #{active_worker.name}
26
26
  EOS
27
27
  end
@@ -16,7 +16,7 @@ module RocketJobMissionControl
16
16
  def name_with_link(dirmon)
17
17
  <<-EOS
18
18
  <a href="#{dirmon_entry_path(dirmon.id)}">
19
- <i class="fa #{state_icon(dirmon.state)}" style="font-size: 75%" title="#{dirmon.state}"></i>
19
+ <i class="#{state_icon(dirmon.state)}" style="font-size: 75%" title="#{dirmon.state}"></i>
20
20
  #{dirmon.name}
21
21
  </a>
22
22
  EOS
@@ -1,10 +1,10 @@
1
1
  module RocketJobMissionControl
2
2
  class JobsDatatable < AbstractDatatable
3
- delegate :job_path, :job_icon, :edit_job_path,
3
+ delegate :job_path, :job_icon, :edit_job_path, :state_icon, :job_state,
4
4
  :abort_job_path, :job_path, :fail_job_path, :run_now_job_path, :pause_job_path,
5
5
  :resume_job_path, :retry_job_path, :exception_job_path, :job_action_link, :exceptions_job_path, to: :@view
6
6
 
7
- COMMON_FIELDS = [:id, :_type, :description, :completed_at, :created_at, :started_at, :state].freeze
7
+ COMMON_FIELDS = [:id, :_type, :description, :completed_at, :created_at, :started_at, :state, :worker_name].freeze
8
8
 
9
9
  ABORTED_COLUMNS = [
10
10
  {display: 'Class', value: :class_with_link, field: '_type', width: '30%'},
@@ -13,15 +13,6 @@ module RocketJobMissionControl
13
13
  {display: 'Actions', value: :action_buttons, orderable: false}
14
14
  ]
15
15
 
16
- ALL_COLUMNS = [
17
- {display: 'Class', value: :class_with_link, field: '_type'},
18
- {display: 'Description', value: :description, field: 'description'},
19
- {display: 'Created', value: :created_at, field: 'created_at'},
20
- {display: 'Duration', value: :duration, field: 'duration', orderable: false},
21
- {display: 'Actions', value: :action_buttons, orderable: false}
22
- ]
23
- ALL_FIELDS = COMMON_FIELDS + [:run_at].freeze
24
-
25
16
  COMPLETED_COLUMNS = [
26
17
  {display: 'Class', value: :class_with_link, field: '_type', width: '30%'},
27
18
  {display: 'Description', value: :description, field: 'description', width: '30%'},
@@ -43,17 +34,18 @@ module RocketJobMissionControl
43
34
  {display: 'Queued For', value: :duration, field: 'duration', orderable: false},
44
35
  {display: 'Actions', value: :action_buttons, orderable: false}
45
36
  ]
46
- QUEUED_FIELDS = COMMON_FIELDS + [:run_at, :priority].freeze
37
+ QUEUED_FIELDS = (COMMON_FIELDS + [:run_at, :priority]).freeze
47
38
 
48
39
  RUNNING_COLUMNS = [
49
40
  {display: 'Class', value: :class_with_link, field: '_type'},
50
41
  {display: 'Description', value: :description, field: 'description'},
51
42
  {display: 'Progress', value: :progress, field: 'percent_complete', orderable: false},
43
+ {display: 'Workers', value: :worker_count, field: 'worker_count', orderable: false},
52
44
  {display: 'Priority', value: :priority, field: 'priority'},
53
45
  {display: 'Started', value: :started, field: 'started_at'},
54
46
  {display: 'Actions', value: :action_buttons, orderable: false}
55
47
  ]
56
- RUNNING_FIELDS = COMMON_FIELDS + [:record_count, :collect_output, :input_categories, :output_categories, :encrypt, :compress, :slice_size, :priority, :sub_state, :percent_complete].freeze
48
+ RUNNING_FIELDS = (COMMON_FIELDS + [:record_count, :collect_output, :input_categories, :output_categories, :encrypt, :compress, :slice_size, :priority, :sub_state, :percent_complete]).freeze
57
49
 
58
50
  SCHEDULED_COLUMNS = [
59
51
  {display: 'Class', value: :class_with_link, field: '_type'},
@@ -62,7 +54,16 @@ module RocketJobMissionControl
62
54
  {display: 'Cron Schedule', value: :cron_schedule, field: 'cron_schedule'},
63
55
  {display: 'Actions', value: :action_buttons, orderable: false}
64
56
  ]
65
- SCHEDULED_FIELDS = COMMON_FIELDS + [:run_at, :cron_schedule].freeze
57
+ SCHEDULED_FIELDS = (COMMON_FIELDS + [:run_at, :cron_schedule]).freeze
58
+
59
+ ALL_COLUMNS = [
60
+ {display: 'Class', value: :class_with_link, field: '_type'},
61
+ {display: 'Description', value: :description, field: 'description'},
62
+ {display: 'Created', value: :created_at, field: 'created_at'},
63
+ {display: 'Duration', value: :duration, field: 'duration', orderable: false},
64
+ {display: 'Actions', value: :action_buttons, orderable: false}
65
+ ]
66
+ ALL_FIELDS = (QUEUED_FIELDS + RUNNING_FIELDS + SCHEDULED_FIELDS).uniq.freeze
66
67
 
67
68
  def initialize(view, query, columns)
68
69
  @columns = columns
@@ -83,7 +84,7 @@ module RocketJobMissionControl
83
84
  h[index.to_s] = send(column[:value], job)
84
85
  index += 1
85
86
  end
86
- h['DT_RowClass'] = "card callout callout-#{job.state}"
87
+ h['DT_RowClass'] = "card callout callout-#{job_state(job)}"
87
88
  h
88
89
  end
89
90
 
@@ -91,7 +92,7 @@ module RocketJobMissionControl
91
92
  def class_with_link(job)
92
93
  <<-EOS
93
94
  <a class='job-link' href="#{job_path(job.id)}">
94
- <i class="fa #{job_icon(job)}" style="font-size: 75%" title="#{job.state}"></i>
95
+ <i class="#{job_icon(job)}" style="font-size: 75%" title="#{job_state(job)}"></i>
95
96
  #{job.class.name}
96
97
  </a>
97
98
  EOS
@@ -113,6 +114,10 @@ module RocketJobMissionControl
113
114
  h(job.priority)
114
115
  end
115
116
 
117
+ def worker_count(job)
118
+ h(job.worker_count)
119
+ end
120
+
116
121
  def started(job)
117
122
  "#{RocketJob.seconds_as_duration(Time.now - (job.started_at || Time.now))} ago" if job.started_at
118
123
  end
@@ -23,7 +23,7 @@ module RocketJobMissionControl
23
23
 
24
24
  def name_with_icon(server)
25
25
  <<-EOS
26
- <i class="fa #{server_icon(server)}" style="font-size: 75%" title="#{server.state}"></i>
26
+ <i class="#{server_icon(server)}" style="font-size: 75%" title="#{server.state}"></i>
27
27
  #{server.name}
28
28
  EOS
29
29
  end
@@ -1,19 +1,20 @@
1
1
  module RocketJobMissionControl
2
2
  module ApplicationHelper
3
3
  STATE_ICON_MAP = {
4
- aborted: 'fa-stop',
5
- completed: 'fa-check',
6
- disabled: 'fa-stop',
7
- enabled: 'fa-check',
8
- failed: 'fa-exclamation-triangle',
9
- paused: 'fa-pause',
10
- pending: 'fa-inbox',
11
- queued: 'fa-inbox',
12
- running: 'fa-play',
13
- scheduled: 'fa-clock-o',
14
- starting: 'fa-cogs',
15
- stopping: 'fa-stop',
16
- zombie: 'fa-hourglass-o'
4
+ aborted: 'fas fa-stop',
5
+ completed: 'fas fa-check',
6
+ disabled: 'fas fa-stop',
7
+ enabled: 'fas fa-check',
8
+ failed: 'fas fa-exclamation-triangle',
9
+ paused: 'fas fa-pause',
10
+ pending: 'fas fa-inbox',
11
+ queued: 'fas fa-inbox',
12
+ running: 'fas fa-play',
13
+ sleeping: 'fas fa-hourglass',
14
+ scheduled: 'fas fa-clock',
15
+ starting: 'fas fa-cogs',
16
+ stopping: 'fas fa-stop',
17
+ zombie: 'fas fa-hourglass'
17
18
  }
18
19
 
19
20
  def state_icon(state)
@@ -43,12 +44,14 @@ module RocketJobMissionControl
43
44
  # Returns nil when there are no inclusion values for this attribute.
44
45
  def extract_inclusion_values(klass, attribute)
45
46
  values = nil
47
+
46
48
  klass.validators_on(attribute).each do |validator|
47
49
  case validator
48
50
  when ActiveModel::Validations::InclusionValidator
49
51
  values = validator.options[:in]
50
52
  end
51
53
  end
54
+
52
55
  values
53
56
  end
54
57
 
@@ -67,7 +70,7 @@ module RocketJobMissionControl
67
70
  options = extract_inclusion_values(klass, field_name)
68
71
  str = "[#{field.type.name}]\n".html_safe
69
72
  if options
70
- str + f.select(field_name, options, {include_blank: options.include?(nil) || include_nil_selectors, selected: value}, {class: 'form-control'})
73
+ str + f.select(field_name, options, { include_blank: options.include?(nil) || include_nil_selectors, selected: value }, { class: 'selectize form-control' })
71
74
  else
72
75
  if field.type.name == 'Integer'
73
76
  str + f.number_field(field_name, value: value, class: 'form-control', placeholder: placeholder)
@@ -81,7 +84,7 @@ module RocketJobMissionControl
81
84
  when 'Array'
82
85
  options = Array(value)
83
86
  "[Array]\n".html_safe +
84
- f.select(field_name, options_for_select(options, options), {include_hidden: false}, {class: 'selectize', multiple: true})
87
+ f.select(field_name, options_for_select(options, options), { include_hidden: false }, { class: 'selectize form-control', multiple: true })
85
88
  when 'Mongoid::Boolean'
86
89
  name = "#{field_name}_true".to_sym
87
90
  value = value.to_s
@@ -102,6 +105,5 @@ module RocketJobMissionControl
102
105
  f.text_field(field_name, value: value, class: 'form-control', placeholder: placeholder)
103
106
  end
104
107
  end
105
-
106
108
  end
107
109
  end
@@ -1,15 +1,20 @@
1
1
  module RocketJobMissionControl
2
2
  module JobsHelper
3
3
  def job_icon(job)
4
- state =
5
- if job.scheduled?
6
- :scheduled
7
- else
8
- job.state
9
- end
4
+ state = job_state(job)
10
5
  state_icon(state)
11
6
  end
12
7
 
8
+ def job_state(job)
9
+ if job.scheduled?
10
+ :scheduled
11
+ elsif job.sleeping?
12
+ :sleeping
13
+ else
14
+ job.state
15
+ end
16
+ end
17
+
13
18
  def job_states
14
19
  @job_states ||= RocketJob::Job.aasm.states.map { |state| state.name.to_s }
15
20
  end
@@ -1,43 +1,45 @@
1
1
  <!DOCTYPE html>
2
2
  <html>
3
- <head>
4
- <title><%= title %></title>
3
+ <head>
4
+ <title><%= title %></title>
5
5
 
6
- <link href="/assets/favicon.png" rel="icon" type="image/png">
7
- <link href="/assets/apple-touch-icon.png" rel="apple-touch-icon-precomposed">
6
+ <link rel="icon" type="image/png" sizes="16x16" href="<%= image_path('rocket_job_mission_control/favicon-16x16.png') %>">
7
+ <link rel="icon" type="image/png" sizes="32x32" href="<%= image_path('rocket_job_mission_control/favicon-32x32.png') %>">
8
+ <link rel="apple-touch-icon" sizes="180x180" href="<%= image_path('rocket_job_mission_control/apple-touch-icon.png') %>">
9
+ <link rel="mask-icon" href="<%= image_path('rocket_job_mission_control/safari-pinned-tab.svg') %>" color="#5bbad5">
8
10
 
9
- <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
10
- <meta content="text/javascript" http-equiv="Content-Script-Type">
11
- <meta content="IE=edge" http-equiv="X-UA-Compatible">
12
- <meta content="width=device-width, initial-scale=1" name="viewport">
13
- <%= yield :meta %>
11
+ <meta content="#da532c" name="msapplication-TileColor">
12
+ <meta content="#ffffff" name="theme-color">
13
+ <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
14
+ <meta content='text/javascript' http-equiv='Content-Script-Type'>
15
+ <meta content='IE=edge' http-equiv='X-UA-Compatible'>
16
+ <meta content='width=device-width, initial-scale=1' name='viewport'>
14
17
 
15
- <%= stylesheet_link_tag "rocket_job_mission_control/application", :media => "all" %>
16
- <%= javascript_include_tag "rocket_job_mission_control/application" %>
18
+ <%= yield :meta %>
17
19
 
18
- <%= csrf_meta_tag %>
20
+ <%= stylesheet_link_tag 'rocket_job_mission_control/application', media: 'all' %>
21
+ <%= javascript_include_tag 'rocket_job_mission_control/application' %>
19
22
 
20
- <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet">
21
- </head>
23
+ <%= csrf_meta_tag %>
24
+ </head>
22
25
 
23
- <body class="rocket_job">
24
- <div id="wrapper">
25
- <div class="container-fluid">
26
- <div class="row row-offcanvas row-offcanvas-left">
27
- <%= render partial: 'layouts/rocket_job_mission_control/partials/sidebar' %>
26
+ <body class='rocket_job'>
27
+ <div id='wrapper'>
28
+ <div class='container-fluid'>
29
+ <div class='row row-offcanvas row-offcanvas-left'>
30
+ <%= render partial: 'layouts/rocket_job_mission_control/partials/sidebar' %>
28
31
 
29
- <div class="col-sm-10 col-xs-11 white-background" id="main">
30
- <%= render partial: 'layouts/rocket_job_mission_control/partials/header' %>
32
+ <div class='col-sm-10 col-xs-11 white-background' id='main'>
33
+ <%= render partial: 'layouts/rocket_job_mission_control/partials/header' %>
31
34
 
32
- <div id="content">
33
- <%= render partial: 'layouts/rocket_job_mission_control/partials/flash' %>
35
+ <div id='content'>
36
+ <%= render partial: 'layouts/rocket_job_mission_control/partials/flash' %>
34
37
 
35
- <%= yield %>
38
+ <%= yield %>
39
+ </div>
40
+ </div>
36
41
  </div>
37
42
  </div>
38
43
  </div>
39
- </div>
40
- </div>
41
-
42
- </body>
44
+ </body>
43
45
  </html>
@@ -1,12 +1,13 @@
1
1
  <% if flash.present? %>
2
- <div class="flash text-center">
2
+ <div class='flash text-center'>
3
3
  <% flash.each do |key, msg| %>
4
- <div class="alert alert-alert alert-dismissable" role="alert">
5
- <button class="close" data-dismiss="alert">
4
+ <div class='alert alert-alert alert-dismissable' role='alert'>
5
+ <button class='close' data-dismiss='alert'>
6
6
  <span>&times;</span>
7
7
  </button>
8
+
8
9
  <% if msg.kind_of? Array %>
9
- <ul class="list-unstyled margin-bottom-0">
10
+ <ul class='list-unstyled margin-bottom-0'>
10
11
  <% msg.each do |m| %>
11
12
  <li><%= m.html_safe %></li>
12
13
  <% end %>
@@ -1,44 +1,48 @@
1
- <nav class="navbar navbar-default" id="header">
2
- <div class="container-fluid">
3
- <div class="navbar-header">
4
- <button aria-expanded="false" class="navbar-toggle collapsed" data-target=".navbar-collapse" data-toggle="collapse" type="button">
5
- <span class="sr-only">Toggle navigation</span>
6
- <span class="icon-bar"></span>
7
- <span class="icon-bar"></span>
8
- <span class="icon-bar"></span>
1
+ <nav class='navbar navbar-default' id='header'>
2
+ <div class='container-fluid'>
3
+ <div class='navbar-header'>
4
+ <button aria-expanded='false' class='navbar-toggle collapsed' data-target='.navbar-collapse' data-toggle='collapse' type='button'>
5
+ <span class='sr-only'>Toggle navigation</span>
6
+ <span class='icon-bar'></span>
7
+ <span class='icon-bar'></span>
8
+ <span class='icon-bar'></span>
9
9
  </button>
10
- <a class="navbar-brand brand" href="http://rocketjob.io" target="_blank">
10
+
11
+ <a class='navbar-brand brand' href='http://rocketjob.io' target='_blank'>
11
12
  <%= image_tag('rocket_job_mission_control/rocket-icon-64x64.png') %>
12
13
  Rocket Job
13
14
  </a>
14
15
  </div>
15
- <div class="navbar-collapse collapse">
16
- <ul class="nav navbar-nav">
16
+
17
+ <div class='navbar-collapse collapse'>
18
+ <ul class='nav navbar-nav'>
17
19
  <li>
18
20
  <%= link_to running_jobs_path, class: active_page(running_jobs_path) do %>
19
- <i class="fa fa-home"></i> Jobs
21
+ <i class='fas fa-home'></i> Jobs
20
22
  <% end %>
21
23
  </li>
24
+
22
25
  <li>
23
26
  <%= link_to servers_path, class: active_page(servers_path) do %>
24
- <i class="fa fa-database"></i> Servers
27
+ <i class='fas fa-database'></i> Servers
25
28
  <% end %>
26
29
  </li>
30
+
27
31
  <li>
28
32
  <%= link_to active_workers_path, class: active_page(active_workers_path) do %>
29
- <i class="fa fa-circle-o-notch"></i> Workers
33
+ <i class='fas fa-circle-notch'></i> Workers
30
34
  <% end %>
31
35
  </li>
36
+
32
37
  <li>
33
38
  <%= link_to enabled_dirmon_entries_path, class: active_page(enabled_dirmon_entries_path) do %>
34
- <i class="fa fa-folder-o"></i> Directory Monitoring
39
+ <i class='fas fa-folder'></i> Directory Monitoring
35
40
  <% end %>
36
41
  </li>
37
42
  </ul>
38
- <ul class="nav navbar-nav navbar-right">
39
- <li>
40
- <a href="/">Home</a>
41
- </li>
43
+
44
+ <ul class='nav navbar-nav navbar-right'>
45
+ <li><a href='/'><i class='fas fa-home'></i> Home</a></li>
42
46
  </ul>
43
47
  </div>
44
48
  </div>
@@ -1,11 +1,12 @@
1
- <div class="col-sm-2 col-xs-1 sidebar-offcanvas" id="sidebar">
2
- <ul class="nav">
1
+ <div class='col-sm-2 col-xs-1 sidebar-offcanvas' id='sidebar'>
2
+ <ul class='nav'>
3
3
  <li>
4
- <a class="visible-xs" data-toggle="offcanvas" href="#">
5
- <i class="fa fa-chevron-right"></i>
4
+ <a class='visible-xs' data-toggle='offcanvas' href='#'>
5
+ <i class='fas fa-chevron-right'></i>
6
6
  </a>
7
7
  </li>
8
8
  </ul>
9
+
9
10
  <%= render partial: 'rocket_job_mission_control/jobs/sidebar' if @jobs_sidebar %>
10
11
  <%= render partial: 'rocket_job_mission_control/dirmon_entries/sidebar' if @dirmon_sidebar %>
11
12
  <%= render partial: 'rocket_job_mission_control/servers/sidebar' if @servers_sidebar %>
@@ -1,21 +1,25 @@
1
- <div class="job-list">
2
- <div class="list">
3
- <div class="row">
4
- <div class="col-sm-10">
1
+ <div class='job-list'>
2
+ <div class='list'>
3
+ <div class='row'>
4
+ <div class='col-sm-10'>
5
5
  <h2>Active Workers</h2>
6
+
6
7
  <% if @server_name %>
7
8
  <h4><%= " For Server: #{@server_name}" %></h4>
8
9
  <% end %>
10
+
9
11
  <% if @job %>
10
12
  <h4> For Job: <%= link_to(@job.class.name, job_path(@job)) %> ID:<%= link_to(@job.id, job_path(@job)) %></h4>
11
13
  <% end %>
12
14
  </div>
13
- <div class="col-sm-2">
14
- <div class="btn btn-default pull-right dt-reload" data-behavior="reload">
15
- <i class="fa fa-refresh"></i>
15
+
16
+ <div class='col-sm-2'>
17
+ <div class='btn btn-default pull-right dt-reload' data-behavior='reload'>
18
+ <i class='fas fa-sync'></i>
16
19
  </div>
17
20
  </div>
18
21
  </div>
22
+
19
23
  <table class='table datatable active-workers-datatable' data-source='<%= active_workers_url(format: 'json') %>' style='width: 100%'>
20
24
  <thead>
21
25
  <tr>
@@ -25,6 +29,7 @@
25
29
  <th>Started</th>
26
30
  </tr>
27
31
  </thead>
32
+
28
33
  <tbody></tbody>
29
34
  </table>
30
35
  </div>
@@ -35,6 +40,6 @@
35
40
  new RjmcDatatable(
36
41
  $('.active-workers-datatable'),
37
42
  [{data: '0'}, {data: '1'}, {data: '2'}, {data: '3'}],
38
- {ordering: false, searching: false});
43
+ { ordering: false, searching: false });
39
44
  });
40
45
  </script>