rocketjob_mission_control 3.0.3 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
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>