rocketjob_mission_control 4.2.0 → 5.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +12 -13
  3. data/app/assets/javascripts/rocket_job_mission_control/application.js +2 -4
  4. data/app/assets/stylesheets/rocket_job_mission_control/application.scss +2 -4
  5. data/app/assets/stylesheets/rocket_job_mission_control/bootstrap_and_overrides.scss +1 -2
  6. data/app/controllers/rocket_job_mission_control/application_controller.rb +2 -3
  7. data/app/controllers/rocket_job_mission_control/dirmon_entries_controller.rb +39 -19
  8. data/app/controllers/rocket_job_mission_control/jobs_controller.rb +36 -35
  9. data/app/controllers/rocket_job_mission_control/servers_controller.rb +36 -40
  10. data/app/datatables/rocket_job_mission_control/abstract_datatable.rb +8 -6
  11. data/app/datatables/rocket_job_mission_control/active_workers_datatable.rb +5 -5
  12. data/app/datatables/rocket_job_mission_control/dirmon_entries_datatable.rb +4 -4
  13. data/app/datatables/rocket_job_mission_control/jobs_datatable.rb +55 -62
  14. data/app/datatables/rocket_job_mission_control/servers_datatable.rb +13 -14
  15. data/app/helpers/rocket_job_mission_control/application_helper.rb +42 -41
  16. data/app/helpers/rocket_job_mission_control/jobs_helper.rb +9 -10
  17. data/app/helpers/rocket_job_mission_control/pagination_helper.rb +1 -1
  18. data/app/helpers/rocket_job_mission_control/servers_helper.rb +6 -6
  19. data/app/helpers/rocket_job_mission_control/slices_helper.rb +2 -4
  20. data/app/models/rocket_job_mission_control/access_policy.rb +3 -4
  21. data/app/models/rocket_job_mission_control/authorization.rb +3 -2
  22. data/app/models/rocket_job_mission_control/job_sanitizer.rb +14 -17
  23. data/app/models/rocket_job_mission_control/query.rb +2 -5
  24. data/app/views/rocket_job_mission_control/dirmon_entries/copy.html.erb +4 -0
  25. data/app/views/rocket_job_mission_control/dirmon_entries/show.html.erb +6 -2
  26. data/app/views/rocket_job_mission_control/jobs/_exceptions.html.erb +1 -1
  27. data/app/views/rocket_job_mission_control/jobs/edit_slice.html.erb +1 -1
  28. data/app/views/rocket_job_mission_control/servers/index.html.erb +2 -2
  29. data/config/initializers/assets.rb +5 -7
  30. data/config/locales/en.yml +4 -1
  31. data/config/routes.rb +24 -21
  32. data/lib/rocket_job_mission_control/engine.rb +7 -10
  33. data/lib/rocket_job_mission_control/version.rb +1 -1
  34. data/lib/rocketjob_mission_control.rb +1 -1
  35. data/test/compare_hashes.rb +1 -2
  36. data/test/controllers/rocket_job_mission_control/application_controller_test.rb +13 -21
  37. data/test/controllers/rocket_job_mission_control/dirmon_entries_controller_test.rb +124 -157
  38. data/test/controllers/rocket_job_mission_control/jobs_controller_test.rb +101 -126
  39. data/test/controllers/rocket_job_mission_control/servers_controller_test.rb +66 -103
  40. data/test/helpers/rocket_job_mission_control/application_helper_test.rb +13 -14
  41. data/test/helpers/rocket_job_mission_control/jobs_helper_test.rb +31 -31
  42. data/test/helpers/rocket_job_mission_control/pagination_helper_test.rb +7 -9
  43. data/test/helpers/rocket_job_mission_control/servers_helper_test.rb +15 -15
  44. data/test/helpers/rocket_job_mission_control/slices_helper_test.rb +8 -10
  45. data/test/models/rocket_job_mission_control/job_sanitizer_test.rb +47 -42
  46. data/test/models/rocket_job_mission_control/query_test.rb +26 -28
  47. data/test/test_helper.rb +12 -12
  48. data/vendor/assets/javascripts/bootstrap.min.js +7 -0
  49. data/vendor/assets/javascripts/datatables.min.js +881 -0
  50. data/vendor/assets/stylesheets/bootstrap.min.css +6 -0
  51. data/vendor/assets/stylesheets/bootstrap.min.css.map +1 -0
  52. data/vendor/assets/stylesheets/datatables.min.css +141 -0
  53. metadata +31 -54
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 80f6b3973c176cdfe7a2f0d0f20b51fa066fc0013ad86e1f01b400e45b75466f
4
- data.tar.gz: 7d781ed535a84e4783ad6bc8efb6c4dbc53e76d8baf9092498665d20ce675788
3
+ metadata.gz: 1a7a9ef0aac59fd6cb345b13c503922ea80232f0eedb8d4eb29ea1d535e04c8a
4
+ data.tar.gz: 360b3994feec93243b9b4cfadf8fa89416538aafb0fbc927b2db31399cc850e4
5
5
  SHA512:
6
- metadata.gz: 5f3c5353ad000737226601f20e7fe2b287a3b942f97a1fce84cd40e6de70e0abbaca1f996557ee8933e2f450e4a5368d1b4ba4f6b3d9379b9565ef3437776b94
7
- data.tar.gz: da41863c1b1e8668b2176cdca70331e519d194fc157638eff61cac5037c6e6f3d7ef07609204e88f1008d4e324ca654202200bf4f7843ff82a1757e07e340a4d
6
+ metadata.gz: c8782d8a249ee6de70705f806386d1f6fb3afbea4f33451ef7e0337641e87c3b88f0cbc804de35131ef46da8f85e3121a694cd79f4171a912809b0330d5e4e6d
7
+ data.tar.gz: f051ec5acb746f52c71924d757e35c955715838dfc994c82eb6d2cfaa630bb9b50d8b26c2d8fe7a34d392e06084cf9121906591f8951a0b7feae372093021d0b
data/Rakefile CHANGED
@@ -1,36 +1,35 @@
1
1
  # Setup bundler to avoid having to run bundle exec all the time.
2
- require 'rubygems'
3
- require 'bundler/setup'
2
+ require "rubygems"
3
+ require "bundler/setup"
4
4
 
5
- require 'rails/version'
6
- rakefile = Rails.version.to_f >= 5.2 ? '../rjmc/Rakefile' : '../rjmc4/Rakefile'
7
- APP_RAKEFILE = File.expand_path(rakefile, __FILE__)
8
- load 'rails/tasks/engine.rake'
5
+ require "rails/version"
6
+ APP_RAKEFILE = File.expand_path("../rjmc/Rakefile", __FILE__)
7
+ load "rails/tasks/engine.rake"
9
8
 
10
- require 'rake/testtask'
11
- require_relative 'lib/rocket_job_mission_control/version'
9
+ require "rake/testtask"
10
+ require_relative "lib/rocket_job_mission_control/version"
12
11
 
13
12
  task :gem do
14
- system 'gem build rocketjob_mission_control.gemspec'
13
+ system "gem build rocketjob_mission_control.gemspec"
15
14
  end
16
15
 
17
16
  task publish: :gem do
18
17
  system "git tag -a v#{RocketJobMissionControl::VERSION} -m 'Tagging #{RocketJobMissionControl::VERSION}'"
19
- system 'git push --tags'
18
+ system "git push --tags"
20
19
  system "gem push rocketjob_mission_control-#{RocketJobMissionControl::VERSION}.gem"
21
20
  system "rm rocketjob_mission_control-#{RocketJobMissionControl::VERSION}.gem"
22
21
  end
23
22
 
24
23
  Rake::TestTask.new(:test) do |t|
25
- t.pattern = 'test/**/*_test.rb'
24
+ t.pattern = "test/**/*_test.rb"
26
25
  t.verbose = true
27
26
  t.warning = false
28
27
  end
29
28
 
30
29
  # By default run tests against all appraisals
31
30
  if !ENV["APPRAISAL_INITIALIZED"] && !ENV["TRAVIS"]
32
- require 'appraisal'
33
- task default: 'app:appraisal'
31
+ require "appraisal"
32
+ task default: "app:appraisal"
34
33
  else
35
34
  task default: :test
36
35
  end
@@ -12,10 +12,8 @@
12
12
  //
13
13
  //= require jquery
14
14
  //= require jquery_ujs
15
- //= require dataTables/jquery.dataTables
16
- //= require dataTables/extras/dataTables.responsive
17
- //= require dataTables/bootstrap/3/jquery.dataTables.bootstrap
18
- //= require bootstrap-sprockets
15
+ //= require datatables.min.js
16
+ //= require bootstrap.min
19
17
  //
20
18
  // Selectize is used by Array builder in application_helper#editable_field_html
21
19
  //= require microplugin
@@ -10,14 +10,12 @@
10
10
  * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
11
11
  * file per style scope.
12
12
  *
13
- *= require dataTables/extras/dataTables.responsive
14
- *= require dataTables/bootstrap/3/jquery.dataTables.bootstrap
15
13
  *= require_self
16
14
  *= require_tree .
17
15
  */
18
16
 
19
- @import 'bootstrap-sprockets';
20
- @import 'bootstrap';
17
+ @import 'bootstrap.min';
21
18
  @import 'fontawesome-all.min';
22
19
  @import 'selectize';
23
20
  @import 'selectize.bootstrap3';
21
+ @import 'datatables.min';
@@ -473,8 +473,7 @@ $hr-border: $gray-lighter;
473
473
 
474
474
  $component-offset-horizontal: 180px;
475
475
 
476
- @import "bootstrap-sprockets";
477
- @import "bootstrap";
476
+ @import "bootstrap.min";
478
477
 
479
478
  .alert {
480
479
  margin-bottom: 0px;
@@ -7,7 +7,7 @@ module RocketJobMissionControl
7
7
  private
8
8
 
9
9
  def with_time_zone(&block)
10
- if time_zone = session['time_zone'] || 'UTC'
10
+ if time_zone = session["time_zone"] || "UTC"
11
11
  Time.use_zone(time_zone, &block)
12
12
  end
13
13
  end
@@ -20,7 +20,7 @@ module RocketJobMissionControl
20
20
  else
21
21
  {roles: %i[admin]}
22
22
  end
23
- AccessPolicy.new(Authorization.new(@args))
23
+ AccessPolicy.new(Authorization.new(**@args))
24
24
  end
25
25
  end
26
26
 
@@ -30,6 +30,5 @@ module RocketJobMissionControl
30
30
  args[:login]
31
31
  end
32
32
  end
33
-
34
33
  end
35
34
  end
@@ -12,32 +12,33 @@ module RocketJobMissionControl
12
12
 
13
13
  rescue_from AccessGranted::AccessDenied do |exception|
14
14
  raise exception if Rails.env.development? || Rails.env.test?
15
- redirect_to :back, alert: 'Access not authorized.'
15
+
16
+ redirect_to :back, alert: "Access not authorized."
16
17
  end
17
18
 
18
19
  def index
19
- @data_table_url = dirmon_entries_url(format: 'json')
20
- render_datatable(RocketJob::DirmonEntry.all, 'All')
20
+ @data_table_url = dirmon_entries_url(format: "json")
21
+ render_datatable(RocketJob::DirmonEntry.all, "All")
21
22
  end
22
23
 
23
24
  def disabled
24
- @data_table_url = disabled_dirmon_entries_url(format: 'json')
25
- render_datatable(RocketJob::DirmonEntry.disabled, 'Disabled')
25
+ @data_table_url = disabled_dirmon_entries_url(format: "json")
26
+ render_datatable(RocketJob::DirmonEntry.disabled, "Disabled")
26
27
  end
27
28
 
28
29
  def enabled
29
- @data_table_url = enabled_dirmon_entries_url(format: 'json')
30
- render_datatable(RocketJob::DirmonEntry.enabled, 'Enabled')
30
+ @data_table_url = enabled_dirmon_entries_url(format: "json")
31
+ render_datatable(RocketJob::DirmonEntry.enabled, "Enabled")
31
32
  end
32
33
 
33
34
  def failed
34
- @data_table_url = failed_dirmon_entries_url(format: 'json')
35
- render_datatable(RocketJob::DirmonEntry.failed, 'Failed')
35
+ @data_table_url = failed_dirmon_entries_url(format: "json")
36
+ render_datatable(RocketJob::DirmonEntry.failed, "Failed")
36
37
  end
37
38
 
38
39
  def pending
39
- @data_table_url = pending_dirmon_entries_url(format: 'json')
40
- render_datatable(RocketJob::DirmonEntry.pending, 'Pending')
40
+ @data_table_url = pending_dirmon_entries_url(format: "json")
41
+ render_datatable(RocketJob::DirmonEntry.pending, "Pending")
41
42
  end
42
43
 
43
44
  def show
@@ -48,7 +49,7 @@ module RocketJobMissionControl
48
49
  @previous_job_class_names = RocketJob::DirmonEntry.distinct(:job_class_name)
49
50
 
50
51
  if dirmon_params[:job_class_name] && !@dirmon_entry.job_class
51
- @dirmon_entry.errors.add(:job_class_name, 'Invalid Job Class')
52
+ @dirmon_entry.errors.add(:job_class_name, "Invalid Job Class")
52
53
  end
53
54
  end
54
55
 
@@ -75,6 +76,25 @@ module RocketJobMissionControl
75
76
  def edit
76
77
  authorize! :edit, @dirmon_entry
77
78
  end
79
+ # When you click on the Copy button,
80
+ # the copy method loads the Dirmon Entity attributes in Copy Dirmon Entry Page
81
+ def copy
82
+ authorize! :copy, @dirmon_entry
83
+ end
84
+ # When you click on the replicate button,
85
+ # the replicate method clones the existing Dirmon Entity
86
+ def replicate
87
+ authorize! :replicate, @dirmon_entry
88
+ dirmon_entry_replicate = RocketJob::DirmonEntry.new(@dirmon_entry.dup.attributes.except("id"))
89
+ if properties = params[:rocket_job_dirmon_entry][:properties]
90
+ dirmon_entry_replicate.properties = JobSanitizer.sanitize(properties, dirmon_entry_replicate.job_class, dirmon_entry_replicate, false)
91
+ end
92
+ if dirmon_entry_replicate.errors.empty? && dirmon_entry_replicate.valid? && dirmon_entry_replicate.update_attributes(dirmon_params)
93
+ redirect_to(rocket_job_mission_control.dirmon_entry_path(dirmon_entry_replicate))
94
+ else
95
+ render :copy
96
+ end
97
+ end
78
98
 
79
99
  def update
80
100
  authorize! :update, @dirmon_entry
@@ -94,7 +114,7 @@ module RocketJobMissionControl
94
114
  @dirmon_entry.enable!
95
115
  redirect_to(rocket_job_mission_control.dirmon_entry_path(@dirmon_entry))
96
116
  else
97
- flash[:alert] = t(:failure, scope: [:dirmon_entry, :enable])
117
+ flash[:alert] = t(:failure, scope: %i[dirmon_entry enable])
98
118
  render(:show)
99
119
  end
100
120
  end
@@ -105,7 +125,7 @@ module RocketJobMissionControl
105
125
  @dirmon_entry.disable!
106
126
  redirect_to(rocket_job_mission_control.dirmon_entry_path(@dirmon_entry))
107
127
  else
108
- flash[:alert] = t(:failure, scope: [:dirmon_entry, :disable])
128
+ flash[:alert] = t(:failure, scope: %i[dirmon_entry disable])
109
129
  render(:show)
110
130
  end
111
131
  end
@@ -127,16 +147,16 @@ module RocketJobMissionControl
127
147
 
128
148
  def find_entry_or_redirect
129
149
  unless @dirmon_entry = RocketJob::DirmonEntry.where(id: params[:id]).first
130
- flash[:alert] = t(:failure, scope: [:dirmon_entry, :find], id: params[:id])
150
+ flash[:alert] = t(:failure, scope: %i[dirmon_entry find], id: params[:id])
131
151
 
132
152
  redirect_to(dirmon_entries_path)
133
153
  end
134
154
  end
135
155
 
136
156
  def dirmon_params
137
- params
138
- .fetch(:rocket_job_dirmon_entry, {})
139
- .permit(:name, :archive_directory, :pattern, :job_class_name)
157
+ params.
158
+ fetch(:rocket_job_dirmon_entry, {}).
159
+ permit(:name, :archive_directory, :pattern, :job_class_name)
140
160
  end
141
161
 
142
162
  def render_datatable(entries, description)
@@ -147,7 +167,7 @@ module RocketJobMissionControl
147
167
  end
148
168
  format.json do
149
169
  query = RocketJobMissionControl::Query.new(entries, name: :asc)
150
- query.search_columns = [:job_class_name, :name, :pattern]
170
+ query.search_columns = %i[job_class_name name pattern]
151
171
  query.display_columns = %w[name _type pattern]
152
172
  render(json: DirmonEntriesDatatable.new(view_context, query))
153
173
  end
@@ -14,62 +14,62 @@ module RocketJobMissionControl
14
14
 
15
15
  def index
16
16
  jobs = RocketJob::Job.all.only(JobsDatatable::ALL_FIELDS)
17
- @data_table_url = jobs_url(format: 'json')
17
+ @data_table_url = jobs_url(format: "json")
18
18
 
19
- render_datatable(jobs, 'All', JobsDatatable::ALL_COLUMNS, id: :desc)
19
+ render_datatable(jobs, "All", JobsDatatable::ALL_COLUMNS, id: :desc)
20
20
  end
21
21
 
22
22
  def running
23
23
  # Prevent throttled jobs from displaying.
24
24
  jobs = RocketJob::Job.
25
- running.
26
- where(:started_at.lte => (Time.now - 0.1)).
27
- only(JobsDatatable::RUNNING_FIELDS)
28
- @data_table_url = running_jobs_url(format: 'json')
25
+ running.
26
+ where(:started_at.lte => (Time.now - 0.1)).
27
+ only(JobsDatatable::RUNNING_FIELDS)
28
+ @data_table_url = running_jobs_url(format: "json")
29
29
 
30
- render_datatable(jobs, 'Running', JobsDatatable::RUNNING_COLUMNS, priority: :asc, created_at: :asc)
30
+ render_datatable(jobs, "Running", JobsDatatable::RUNNING_COLUMNS, priority: :asc, created_at: :asc)
31
31
  end
32
32
 
33
33
  def paused
34
34
  jobs = RocketJob::Job.paused.only(JobsDatatable::COMMON_FIELDS)
35
- @data_table_url = paused_jobs_url(format: 'json')
35
+ @data_table_url = paused_jobs_url(format: "json")
36
36
 
37
- render_datatable(jobs, 'Paused', JobsDatatable::PAUSED_COLUMNS, completed_at: :desc)
37
+ render_datatable(jobs, "Paused", JobsDatatable::PAUSED_COLUMNS, completed_at: :desc)
38
38
  end
39
39
 
40
40
  def completed
41
41
  jobs = RocketJob::Job.completed.only(JobsDatatable::COMMON_FIELDS)
42
- @data_table_url = completed_jobs_url(format: 'json')
42
+ @data_table_url = completed_jobs_url(format: "json")
43
43
 
44
- render_datatable(jobs, 'Completed', JobsDatatable::COMPLETED_COLUMNS, completed_at: :desc)
44
+ render_datatable(jobs, "Completed", JobsDatatable::COMPLETED_COLUMNS, completed_at: :desc)
45
45
  end
46
46
 
47
47
  def aborted
48
48
  jobs = RocketJob::Job.aborted.only(JobsDatatable::COMMON_FIELDS)
49
- @data_table_url = aborted_jobs_url(format: 'json')
49
+ @data_table_url = aborted_jobs_url(format: "json")
50
50
 
51
- render_datatable(jobs, 'Aborted', JobsDatatable::ABORTED_COLUMNS, completed_at: :desc)
51
+ render_datatable(jobs, "Aborted", JobsDatatable::ABORTED_COLUMNS, completed_at: :desc)
52
52
  end
53
53
 
54
54
  def failed
55
55
  jobs = RocketJob::Job.failed.only(JobsDatatable::COMMON_FIELDS)
56
- @data_table_url = failed_jobs_url(format: 'json')
56
+ @data_table_url = failed_jobs_url(format: "json")
57
57
 
58
- render_datatable(jobs, 'Failed', JobsDatatable::FAILED_COLUMNS, completed_at: :desc)
58
+ render_datatable(jobs, "Failed", JobsDatatable::FAILED_COLUMNS, completed_at: :desc)
59
59
  end
60
60
 
61
61
  def queued
62
62
  jobs = RocketJob::Job.queued_now.only(JobsDatatable::QUEUED_FIELDS)
63
- @data_table_url = queued_jobs_url(format: 'json')
63
+ @data_table_url = queued_jobs_url(format: "json")
64
64
 
65
- render_datatable(jobs, 'Queued', JobsDatatable::QUEUED_COLUMNS, priority: :asc, created_at: :asc)
65
+ render_datatable(jobs, "Queued", JobsDatatable::QUEUED_COLUMNS, priority: :asc, created_at: :asc)
66
66
  end
67
67
 
68
68
  def scheduled
69
69
  jobs = RocketJob::Job.scheduled.only(JobsDatatable::SCHEDULED_FIELDS)
70
- @data_table_url = scheduled_jobs_url(format: 'json')
70
+ @data_table_url = scheduled_jobs_url(format: "json")
71
71
 
72
- render_datatable(jobs, 'Scheduled', JobsDatatable::SCHEDULED_COLUMNS, run_at: :asc)
72
+ render_datatable(jobs, "Scheduled", JobsDatatable::SCHEDULED_COLUMNS, run_at: :asc)
73
73
  end
74
74
 
75
75
  def update
@@ -138,7 +138,7 @@ module RocketJobMissionControl
138
138
  # Scope: [[slice1], [slice2], [slice(n)]
139
139
  authorize! :view_slice, @job
140
140
  error_type = params[:error_type]
141
- scope = @job.input.failed.where('exception.class_name' => error_type)
141
+ scope = @job.input.failed.where("exception.class_name" => error_type)
142
142
 
143
143
  # Used by pagination to display the correct slice
144
144
  # Offset refers to the slice number from the array "scope".
@@ -149,7 +149,7 @@ module RocketJobMissionControl
149
149
  @lines = current_failure.records
150
150
  @failure_exception = current_failure.try!(:exception)
151
151
  @view_slice_pagination = {
152
- record_number: current_failure['exception']['record_number'],
152
+ record_number: current_failure.processing_record_number,
153
153
  offset: @offset,
154
154
  total: (scope.count - 1)
155
155
  }
@@ -162,7 +162,7 @@ module RocketJobMissionControl
162
162
  error_type = params[:error_type]
163
163
  @line_index = params[:line_index].to_i
164
164
  @offset = params.fetch(:offset, 0).to_i
165
- scope = @job.input.failed.where('exception.class_name' => error_type)
165
+ scope = @job.input.failed.where("exception.class_name" => error_type)
166
166
  current_failure = scope.order(_id: 1).limit(1).skip(@offset).first
167
167
  @lines = current_failure.records
168
168
  @failure_exception = current_failure.try!(:exception)
@@ -174,20 +174,20 @@ module RocketJobMissionControl
174
174
  # Params from the edit_slice form
175
175
  error_type = params[:error_type]
176
176
  offset = params[:offset]
177
- updated_records = params['job']['records']
177
+ updated_records = params["job"]["records"]
178
178
 
179
179
  # Finds specific slice [Array]
180
- slice = @job.input.failed.skip(offset).first
180
+ slice = @job.input.failed.skip(offset).first
181
181
 
182
182
  # Assings modified slice (from the form) back to slice
183
183
  slice.records = updated_records
184
184
 
185
185
  if slice.save
186
186
  logger.info("Slice Updated By #{login}, job: #{@job.id}, file_name: #{@job.upload_file_name}")
187
- flash[:success] = 'slice updated'
187
+ flash[:success] = "slice updated"
188
188
  redirect_to view_slice_job_path(@job, error_type: error_type)
189
189
  else
190
- flash[:danger] = 'Error updating slice.'
190
+ flash[:danger] = "Error updating slice."
191
191
  end
192
192
  end
193
193
 
@@ -200,7 +200,7 @@ module RocketJobMissionControl
200
200
  line_index = params[:line_index].to_i
201
201
 
202
202
  # Finds specific slice [Array]
203
- scope = @job.input.failed.where('exception.class_name' => error_type)
203
+ scope = @job.input.failed.where("exception.class_name" => error_type)
204
204
  slice = scope.order(_id: 1).limit(1).skip(offset).first
205
205
 
206
206
  # Finds and deletes line
@@ -213,9 +213,9 @@ module RocketJobMissionControl
213
213
  if slice.save
214
214
  logger.info("Line Deleted By #{login}, job: #{@job.id}, file_name: #{@job.upload_file_name}")
215
215
  redirect_to view_slice_job_path(@job, error_type: error_type)
216
- flash[:success] = 'line removed'
216
+ flash[:success] = "line removed"
217
217
  else
218
- flash[:danger] = 'Error removing line.'
218
+ flash[:danger] = "Error removing line."
219
219
  end
220
220
  end
221
221
 
@@ -229,9 +229,9 @@ module RocketJobMissionControl
229
229
  redirect_to(job_path(@job))
230
230
  end
231
231
 
232
- scope = @job.input.failed.where('exception.class_name' => error_type)
232
+ scope = @job.input.failed.where("exception.class_name" => error_type)
233
233
  count = scope.count
234
- unless count > 0
234
+ unless count.positive?
235
235
  flash[:notice] = t(:no_errors, scope: %i[job failures])
236
236
  redirect_to(job_path(@job))
237
237
  end
@@ -269,18 +269,19 @@ module RocketJobMissionControl
269
269
 
270
270
  def error_occurred(exception)
271
271
  if defined?(SemanticLogger::Logger) && logger.is_a?(SemanticLogger::Logger)
272
- logger.error 'Error loading a job', exception
272
+ logger.error "Error loading a job", exception
273
273
  else
274
274
  logger.error "Error loading a job. #{exception.class}: #{exception.message}\n#{(exception.backtrace || []).join("\n")}"
275
275
  end
276
276
 
277
277
  flash[:danger] = if exception.is_a?(AccessGranted::AccessDenied)
278
- 'Access not authorized.'
278
+ "Access not authorized."
279
279
  else
280
- 'Error loading jobs.'
280
+ "Error loading jobs."
281
281
  end
282
282
 
283
283
  raise exception if Rails.env.development? || Rails.env.test?
284
+
284
285
  redirect_to :back
285
286
  end
286
287
 
@@ -307,7 +308,7 @@ module RocketJobMissionControl
307
308
  h = {data: index.to_s}
308
309
  h[:width] = column[:width] if column.key?(:width)
309
310
  h[:orderable] = column[:orderable] if column.key?(:orderable)
310
- index += 1
311
+ index += 1
311
312
  h
312
313
  end
313
314
  end