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 +4 -4
- data/lib/sidekiq_adhoc_job/version.rb +1 -1
- data/lib/sidekiq_adhoc_job/web/job_presenter.rb +13 -3
- data/lib/sidekiq_adhoc_job/web/locales/en.yml +1 -0
- data/lib/sidekiq_adhoc_job/web/templates/jobs/index.html.erb +2 -0
- data/lib/sidekiq_adhoc_job/web/templates/jobs/show.html.erb +10 -1
- data/lib/sidekiq_adhoc_job.rb +12 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e0eb1cd817107c67f9c597017c3fd7e0fc8e79cd783b934d3b6ebc0fb69f5224
|
4
|
+
data.tar.gz: deaae8c8f3de455976885dddd699fd29295cdcd0ae26a013bac38190d5d5e9a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a5955dc23c535cfe30380fb24dabfecaa95dfb8b1bdb251d9def1ddc47bd263f0dda19cca2a2dcbaa45edcf2c974d2bebd2a2fdd371e10e19d263be757478261
|
7
|
+
data.tar.gz: fdb6a47dc6c58d2054f6d6d21b6c10e67a9d38efe5bd76de5dca355df28125f569b6db1ddd4ca5c648faa948cfba2b8293541e1baa7685be6ec68b9984383843
|
@@ -4,12 +4,20 @@ module SidekiqAdhocJob
|
|
4
4
|
class JobPresenter
|
5
5
|
include Sidekiq::WebHelpers
|
6
6
|
|
7
|
-
attr_reader :name,
|
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
|
-
|
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 %>
|
data/lib/sidekiq_adhoc_job.rb
CHANGED
@@ -41,7 +41,10 @@ module SidekiqAdhocJob
|
|
41
41
|
end
|
42
42
|
|
43
43
|
class Configuration
|
44
|
-
attr_accessor :load_paths,
|
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.
|
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-
|
11
|
+
date: 2022-03-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pry
|