sidekiq_adhoc_job 2.1.1 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fc98e44d532226e46f53fbe1b7bdb0d5ad300d28298b0288f4d190d7f08cb3e3
4
- data.tar.gz: 03de6a6069557e9368c4f118783ea114202262418142acb4805c441d475b25e1
3
+ metadata.gz: e0eb1cd817107c67f9c597017c3fd7e0fc8e79cd783b934d3b6ebc0fb69f5224
4
+ data.tar.gz: deaae8c8f3de455976885dddd699fd29295cdcd0ae26a013bac38190d5d5e9a1
5
5
  SHA512:
6
- metadata.gz: 56847a1d3e01b8f5b185bdc2610ae132801bd036ef99a093f99a70d85683980518d7f39cd636d7e74da7e55d9c964c587b55d17313e99aa40cb8a72130c52cfb
7
- data.tar.gz: ffca00494c55f11bce5fde758b0d4ad0c3e07ac61e5d53a668abc0607c29d90b138095bf0a55084c3b2861752eb44fbd79b4dd2450ca6f460489456ecf2c712d
6
+ metadata.gz: a5955dc23c535cfe30380fb24dabfecaa95dfb8b1bdb251d9def1ddc47bd263f0dda19cca2a2dcbaa45edcf2c974d2bebd2a2fdd371e10e19d263be757478261
7
+ data.tar.gz: fdb6a47dc6c58d2054f6d6d21b6c10e67a9d38efe5bd76de5dca355df28125f569b6db1ddd4ca5c648faa948cfba2b8293541e1baa7685be6ec68b9984383843
@@ -1,3 +1,3 @@
1
1
  module SidekiqAdhocJob
2
- VERSION = '2.1.1'.freeze
2
+ VERSION = '2.2.0'.freeze
3
3
  end
@@ -4,12 +4,20 @@ module SidekiqAdhocJob
4
4
  class JobPresenter
5
5
  include Sidekiq::WebHelpers
6
6
 
7
- attr_reader :name, :path_name, :queue, :required_args, :optional_args, :required_kw_args, :optional_kw_args, :has_rest_args
7
+ attr_reader :name,
8
+ :path_name,
9
+ :queue,
10
+ :required_args,
11
+ :optional_args,
12
+ :required_kw_args,
13
+ :optional_kw_args,
14
+ :has_rest_args,
15
+ :require_confirm
8
16
 
9
17
  StringUtil ||= ::SidekiqAdhocJob::Utils::String
10
18
 
11
19
  # args: { req: [], opt: [] }
12
- def initialize(name, path_name, queue, args)
20
+ def initialize(name, path_name, queue, args, require_confirm)
13
21
  @name = name
14
22
  @path_name = path_name
15
23
  @queue = queue
@@ -18,6 +26,7 @@ module SidekiqAdhocJob
18
26
  @required_kw_args = args[:keyreq] || []
19
27
  @optional_kw_args = args[:key] || []
20
28
  @has_rest_args = !!args[:rest]
29
+ @require_confirm = require_confirm
21
30
  end
22
31
 
23
32
  # Builds the presenter instances for the schedule hash
@@ -42,7 +51,8 @@ module SidekiqAdhocJob
42
51
  queue = SidekiqAdhocJob.config.strategy.get_queue_name(klass_name)
43
52
  class_inspector = SidekiqAdhocJob::Utils::ClassInspector.new(klass_name)
44
53
  args = class_inspector.parameters(:perform)
45
- new(klass_name, path_name, queue, args)
54
+ require_confirm = SidekiqAdhocJob.config.require_confirmation?(klass_name.to_s)
55
+ new(klass_name, path_name, queue, args, require_confirm)
46
56
  end
47
57
 
48
58
  def no_arguments?
@@ -7,6 +7,7 @@ en:
7
7
  adhoc_jobs_optional_arguments: Optional Arguments
8
8
  adhoc_jobs_go_back: Go Back
9
9
  adhoc_jobs_has_rest_arguments: Has Rest Arguments
10
+ adhoc_jobs_confirm_required: Confirm Required
10
11
  adhoc_jobs_name: Job Name
11
12
  adhoc_jobs_queue: Job Queue
12
13
  adhoc_jobs_run_job: Run Job
@@ -11,6 +11,7 @@
11
11
  <th><%= t('adhoc_jobs_required_keyword_arguments') %></th>
12
12
  <th><%= t('adhoc_jobs_optional_keyword_arguments') %></th>
13
13
  <th><%= t('adhoc_jobs_has_rest_arguments') %></th>
14
+ <th><%= t('adhoc_jobs_confirm_required') %></th>
14
15
  <th><%= t('adhoc_jobs_actions') %></th>
15
16
  </tr>
16
17
  </thead>
@@ -25,6 +26,7 @@
25
26
  <td><%= job.required_kw_args.join(', ') %></td>
26
27
  <td><%= job.optional_kw_args.join(', ') %></td>
27
28
  <td><%= job.has_rest_args %></td>
29
+ <td><%= job.require_confirm %></td>
28
30
  <td class="text-center">
29
31
  <a class="btn btn-warn btn-xs" href="<%= root_path %>adhoc-jobs/<%= CGI.escape(job.path_name) %>">
30
32
  <%= t('adhoc_jobs_view_job') %>
@@ -2,7 +2,7 @@
2
2
 
3
3
  <h4><%= SidekiqAdhocJob::Utils::String.classify(@presented_job.path_name) %></h4>
4
4
 
5
- <form method="POST" action="<%= root_path %>adhoc-jobs/<%= CGI.escape(@presented_job.path_name) %>/schedule">
5
+ <form method="POST" action="<%= root_path %>adhoc-jobs/<%= CGI.escape(@presented_job.path_name) %>/schedule" id="adhoc-jobs-submit-form">
6
6
  <input type="hidden" name="authenticity_token" value="<%= @csrf_token %>" />
7
7
  <% if @presented_job.no_arguments? %>
8
8
  <p>No job arguments</p>
@@ -55,3 +55,12 @@
55
55
  </div>
56
56
  </div>
57
57
  </form>
58
+
59
+ <% if @presented_job.require_confirm %>
60
+ <script>
61
+ document.getElementById('adhoc-jobs-submit-form').addEventListener('submit', (event) => {
62
+ if (!confirm('Are you sure?'))
63
+ event.preventDefault();
64
+ })
65
+ </script>
66
+ <% end %>
@@ -41,7 +41,10 @@ module SidekiqAdhocJob
41
41
  end
42
42
 
43
43
  class Configuration
44
- attr_accessor :load_paths, :module_names, :strategy_name
44
+ attr_accessor :load_paths,
45
+ :module_names,
46
+ :strategy_name,
47
+ :require_confirm_worker_names
45
48
 
46
49
  def initialize
47
50
  @load_paths = []
@@ -53,6 +56,14 @@ module SidekiqAdhocJob
53
56
  Array(@module_names).map(&:to_s)
54
57
  end
55
58
 
59
+ def require_confirm
60
+ @require_confirm ||= Array(@require_confirm_worker_names).map(&:to_s)
61
+ end
62
+
63
+ def require_confirmation?(worker_name)
64
+ require_confirm.include?(worker_name)
65
+ end
66
+
56
67
  def strategy
57
68
  @strategy ||= case strategy_name
58
69
  when :default
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq_adhoc_job
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Goh Khoon Hiang
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-01-11 00:00:00.000000000 Z
11
+ date: 2022-03-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry