sidekiq-cron 0.6.3 → 1.10.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 (47) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +145 -0
  3. data/Gemfile +3 -29
  4. data/README.md +175 -121
  5. data/Rakefile +3 -42
  6. data/lib/sidekiq/cron/job.rb +273 -144
  7. data/lib/sidekiq/cron/launcher.rb +39 -43
  8. data/lib/sidekiq/cron/locales/de.yml +2 -2
  9. data/lib/sidekiq/cron/locales/en.yml +6 -2
  10. data/lib/sidekiq/cron/locales/it.yml +23 -0
  11. data/lib/sidekiq/cron/locales/ja.yml +18 -0
  12. data/lib/sidekiq/cron/locales/pt.yml +22 -0
  13. data/lib/sidekiq/cron/locales/ru.yml +2 -2
  14. data/lib/sidekiq/cron/locales/zh-CN.yml +19 -0
  15. data/lib/sidekiq/cron/poller.rb +22 -12
  16. data/lib/sidekiq/cron/schedule_loader.rb +22 -0
  17. data/lib/sidekiq/cron/support.rb +8 -1
  18. data/lib/sidekiq/cron/version.rb +7 -0
  19. data/lib/sidekiq/cron/views/cron.erb +38 -28
  20. data/lib/sidekiq/cron/views/cron_show.erb +88 -0
  21. data/lib/sidekiq/cron/web.rb +1 -7
  22. data/lib/sidekiq/cron/web_extension.rb +19 -15
  23. data/lib/sidekiq/cron.rb +1 -0
  24. data/lib/sidekiq/options.rb +25 -0
  25. data/sidekiq-cron.gemspec +23 -108
  26. data/test/integration/performance_test.rb +13 -19
  27. data/test/models/person.rb +21 -0
  28. data/test/test_helper.rb +37 -38
  29. data/test/unit/fixtures/schedule_array.yml +13 -0
  30. data/test/unit/fixtures/schedule_erb.yml +6 -0
  31. data/test/unit/fixtures/schedule_hash.yml +12 -0
  32. data/test/unit/fixtures/schedule_string.yml +1 -0
  33. data/test/unit/job_test.rb +450 -35
  34. data/test/unit/launcher_test.rb +33 -0
  35. data/test/unit/poller_test.rb +28 -37
  36. data/test/unit/schedule_loader_test.rb +58 -0
  37. data/test/unit/web_extension_test.rb +59 -41
  38. metadata +72 -191
  39. data/.document +0 -5
  40. data/.travis.yml +0 -19
  41. data/Changes.md +0 -50
  42. data/Dockerfile +0 -32
  43. data/VERSION +0 -1
  44. data/config.ru +0 -14
  45. data/docker-compose.yml +0 -21
  46. data/examples/web-cron-ui.png +0 -0
  47. data/lib/sidekiq/cron/views/cron.slim +0 -69
metadata CHANGED
@@ -1,282 +1,157 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-cron
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3
4
+ version: 1.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ondrej Bartas
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-20 00:00:00.000000000 Z
11
+ date: 2023-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: sidekiq
14
+ name: fugit
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 4.2.1
19
+ version: '1.8'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 4.2.1
26
+ version: '1.8'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rufus-scheduler
28
+ name: sidekiq
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 3.3.0
33
+ version: '6'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 3.3.0
41
- - !ruby/object:Gem::Dependency
42
- name: bundler
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
40
+ version: '6'
55
41
  - !ruby/object:Gem::Dependency
56
- name: simplecov
42
+ name: globalid
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
45
  - - ">="
60
46
  - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
47
+ version: 1.0.1
48
+ type: :runtime
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
52
  - - ">="
67
53
  - !ruby/object:Gem::Version
68
- version: '0'
54
+ version: 1.0.1
69
55
  - !ruby/object:Gem::Dependency
70
- name: redis-namespace
56
+ name: minitest
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
- - - ">="
59
+ - - "~>"
74
60
  - !ruby/object:Gem::Version
75
- version: 1.5.2
61
+ version: '5.15'
76
62
  type: :development
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
- - - ">="
66
+ - - "~>"
81
67
  - !ruby/object:Gem::Version
82
- version: 1.5.2
68
+ version: '5.15'
83
69
  - !ruby/object:Gem::Dependency
84
- name: shoulda-context
70
+ name: mocha
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
- - - ">="
73
+ - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: '0'
75
+ version: '1.14'
90
76
  type: :development
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
- - - ">="
80
+ - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: '0'
82
+ version: '1.14'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: rack
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
- - - ">="
87
+ - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: '0'
89
+ version: '2.2'
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
- - - ">="
94
+ - - "~>"
109
95
  - !ruby/object:Gem::Version
110
- version: '0'
96
+ version: '2.2'
111
97
  - !ruby/object:Gem::Dependency
112
98
  name: rack-test
113
99
  requirement: !ruby/object:Gem::Requirement
114
100
  requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: jeweler
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ">="
137
- - !ruby/object:Gem::Version
138
- version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: minitest
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: test-unit
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: '0'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- version: '0'
167
- - !ruby/object:Gem::Dependency
168
- name: sdoc
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: '0'
181
- - !ruby/object:Gem::Dependency
182
- name: slim
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - ">="
101
+ - - "~>"
186
102
  - !ruby/object:Gem::Version
187
- version: '0'
103
+ version: '1.1'
188
104
  type: :development
189
105
  prerelease: false
190
106
  version_requirements: !ruby/object:Gem::Requirement
191
107
  requirements:
192
- - - ">="
108
+ - - "~>"
193
109
  - !ruby/object:Gem::Version
194
- version: '0'
110
+ version: '1.1'
195
111
  - !ruby/object:Gem::Dependency
196
- name: sinatra
112
+ name: rake
197
113
  requirement: !ruby/object:Gem::Requirement
198
114
  requirements:
199
- - - ">="
115
+ - - "~>"
200
116
  - !ruby/object:Gem::Version
201
- version: '0'
117
+ version: '13.0'
202
118
  type: :development
203
119
  prerelease: false
204
120
  version_requirements: !ruby/object:Gem::Requirement
205
121
  requirements:
206
- - - ">="
122
+ - - "~>"
207
123
  - !ruby/object:Gem::Version
208
- version: '0'
124
+ version: '13.0'
209
125
  - !ruby/object:Gem::Dependency
210
- name: mocha
211
- requirement: !ruby/object:Gem::Requirement
212
- requirements:
213
- - - ">="
214
- - !ruby/object:Gem::Version
215
- version: '0'
216
- type: :development
217
- prerelease: false
218
- version_requirements: !ruby/object:Gem::Requirement
219
- requirements:
220
- - - ">="
221
- - !ruby/object:Gem::Version
222
- version: '0'
223
- - !ruby/object:Gem::Dependency
224
- name: coveralls
225
- requirement: !ruby/object:Gem::Requirement
226
- requirements:
227
- - - ">="
228
- - !ruby/object:Gem::Version
229
- version: '0'
230
- type: :development
231
- prerelease: false
232
- version_requirements: !ruby/object:Gem::Requirement
233
- requirements:
234
- - - ">="
235
- - !ruby/object:Gem::Version
236
- version: '0'
237
- - !ruby/object:Gem::Dependency
238
- name: shotgun
239
- requirement: !ruby/object:Gem::Requirement
240
- requirements:
241
- - - ">="
242
- - !ruby/object:Gem::Version
243
- version: '0'
244
- type: :development
245
- prerelease: false
246
- version_requirements: !ruby/object:Gem::Requirement
247
- requirements:
248
- - - ">="
249
- - !ruby/object:Gem::Version
250
- version: '0'
251
- - !ruby/object:Gem::Dependency
252
- name: guard
126
+ name: simplecov
253
127
  requirement: !ruby/object:Gem::Requirement
254
128
  requirements:
255
- - - ">="
129
+ - - "~>"
256
130
  - !ruby/object:Gem::Version
257
- version: '0'
131
+ version: '0.21'
258
132
  type: :development
259
133
  prerelease: false
260
134
  version_requirements: !ruby/object:Gem::Requirement
261
135
  requirements:
262
- - - ">="
136
+ - - "~>"
263
137
  - !ruby/object:Gem::Version
264
- version: '0'
138
+ version: '0.21'
265
139
  - !ruby/object:Gem::Dependency
266
- name: guard-minitest
140
+ name: simplecov-cobertura
267
141
  requirement: !ruby/object:Gem::Requirement
268
142
  requirements:
269
- - - ">="
143
+ - - "~>"
270
144
  - !ruby/object:Gem::Version
271
- version: '0'
145
+ version: '2.1'
272
146
  type: :development
273
147
  prerelease: false
274
148
  version_requirements: !ruby/object:Gem::Requirement
275
149
  requirements:
276
- - - ">="
150
+ - - "~>"
277
151
  - !ruby/object:Gem::Version
278
- version: '0'
279
- description: Enables to set jobs to be run in specified time (using CRON notation)
152
+ version: '2.1'
153
+ description: Enables to set jobs to be run in specified time (using CRON notation
154
+ or natural language)
280
155
  email: ondrej@bartas.cz
281
156
  executables: []
282
157
  extensions: []
@@ -284,42 +159,49 @@ extra_rdoc_files:
284
159
  - LICENSE.txt
285
160
  - README.md
286
161
  files:
287
- - ".document"
288
- - ".travis.yml"
289
- - Changes.md
290
- - Dockerfile
162
+ - CHANGELOG.md
291
163
  - Gemfile
292
164
  - LICENSE.txt
293
165
  - README.md
294
166
  - Rakefile
295
- - VERSION
296
- - config.ru
297
- - docker-compose.yml
298
- - examples/web-cron-ui.png
299
167
  - lib/sidekiq-cron.rb
300
168
  - lib/sidekiq/cron.rb
301
169
  - lib/sidekiq/cron/job.rb
302
170
  - lib/sidekiq/cron/launcher.rb
303
171
  - lib/sidekiq/cron/locales/de.yml
304
172
  - lib/sidekiq/cron/locales/en.yml
173
+ - lib/sidekiq/cron/locales/it.yml
174
+ - lib/sidekiq/cron/locales/ja.yml
175
+ - lib/sidekiq/cron/locales/pt.yml
305
176
  - lib/sidekiq/cron/locales/ru.yml
177
+ - lib/sidekiq/cron/locales/zh-CN.yml
306
178
  - lib/sidekiq/cron/poller.rb
179
+ - lib/sidekiq/cron/schedule_loader.rb
307
180
  - lib/sidekiq/cron/support.rb
181
+ - lib/sidekiq/cron/version.rb
308
182
  - lib/sidekiq/cron/views/cron.erb
309
- - lib/sidekiq/cron/views/cron.slim
183
+ - lib/sidekiq/cron/views/cron_show.erb
310
184
  - lib/sidekiq/cron/web.rb
311
185
  - lib/sidekiq/cron/web_extension.rb
186
+ - lib/sidekiq/options.rb
312
187
  - sidekiq-cron.gemspec
313
188
  - test/integration/performance_test.rb
189
+ - test/models/person.rb
314
190
  - test/test_helper.rb
191
+ - test/unit/fixtures/schedule_array.yml
192
+ - test/unit/fixtures/schedule_erb.yml
193
+ - test/unit/fixtures/schedule_hash.yml
194
+ - test/unit/fixtures/schedule_string.yml
315
195
  - test/unit/job_test.rb
196
+ - test/unit/launcher_test.rb
316
197
  - test/unit/poller_test.rb
198
+ - test/unit/schedule_loader_test.rb
317
199
  - test/unit/web_extension_test.rb
318
- homepage: http://github.com/ondrejbartas/sidekiq-cron
200
+ homepage: https://github.com/sidekiq-cron/sidekiq-cron
319
201
  licenses:
320
202
  - MIT
321
203
  metadata: {}
322
- post_install_message:
204
+ post_install_message:
323
205
  rdoc_options: []
324
206
  require_paths:
325
207
  - lib
@@ -327,16 +209,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
327
209
  requirements:
328
210
  - - ">="
329
211
  - !ruby/object:Gem::Version
330
- version: '0'
212
+ version: '2.7'
331
213
  required_rubygems_version: !ruby/object:Gem::Requirement
332
214
  requirements:
333
215
  - - ">="
334
216
  - !ruby/object:Gem::Version
335
217
  version: '0'
336
218
  requirements: []
337
- rubyforge_project:
338
- rubygems_version: 2.5.1
339
- signing_key:
219
+ rubygems_version: 3.4.6
220
+ signing_key:
340
221
  specification_version: 4
341
- summary: Sidekiq Cron helps to add repeated scheduled jobs
222
+ summary: Scheduler/Cron for Sidekiq jobs
342
223
  test_files: []
data/.document DELETED
@@ -1,5 +0,0 @@
1
- lib/**/*.rb
2
- bin/*
3
- -
4
- features/**/*.feature
5
- LICENSE.txt
data/.travis.yml DELETED
@@ -1,19 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.3.1
4
- - 2.2.2
5
- services:
6
- - redis-server
7
- branches:
8
- only:
9
- - master
10
- notifications:
11
- email:
12
- recipients:
13
- - ondrej@bartas.cz
14
- env:
15
- travis: 'yes'
16
- matrix:
17
- allow_failures:
18
- - rvm: jruby-19mode
19
- - rvm: rbx-19mode
data/Changes.md DELETED
@@ -1,50 +0,0 @@
1
- v 0.6.0
2
- -------
3
-
4
- - set poller to check jobs every 30s by default (possible to override by `Sidekiq.options[:poll_interval] = 10`)
5
- - add group actions (enqueue, enable, disable, delete) all in web view
6
- - fix poller to enqueu all jobs in poll start time
7
- - add performance test for enqueue of jobs (10 000 jobs in less than 19s)
8
- - fix problem with default queue
9
- - remove redis-namespace from dependencies
10
- - update ruby versions in travis
11
-
12
- v 0.5.0
13
- -------
14
- - add docker support
15
- - all crons are now evaluated in UTC
16
- - fix rufus scheduler & timezones problems
17
- - add support for sidekiq 4.2.1
18
- - fix readme
19
- - add Russian locale
20
- - user Rack.env in tests
21
- - faster enque of jobs
22
- - permit to use ActiveJob::Base.queue_name_delimiter
23
- - fix problem with multiple times enque #84
24
- - fix problem with enque of unknown class
25
-
26
- v 0.4.0
27
- -------
28
-
29
- - enable to work with sidekiq >= 4.0.0
30
- - fix readme
31
-
32
- v 0.3.1
33
- -------
34
-
35
- - add CSRF tags to forms so it will work with sidekiq >= 3.4.2
36
- - remove tilt dependency
37
-
38
- v 0.3.0
39
- -------
40
-
41
- - suport for Active Job
42
- - sidekiq cron web ui needs to be loaded by: require 'sidekiq/cron/web'
43
- - add load_from_hash! and load_from_array! which cleanup jobs before adding new ones
44
-
45
- v 0.1.1
46
- -------
47
-
48
- - add Web fontend with enabled/disable job, unqueue now, delete job
49
- - add cron poller - enqueu cro jobs
50
- - add cron job - save all needed data to redis
data/Dockerfile DELETED
@@ -1,32 +0,0 @@
1
- FROM ruby:2.3.1
2
- MAINTAINER Joao Serra <joaopfserra@gmail.com>
3
-
4
- RUN apt-get update && \
5
- apt-get install -y --force-yes \
6
- curl \
7
- git \
8
- wget \
9
- libpq-dev && \
10
- apt-get autoremove -y --force-yes && \
11
- apt-get clean && \
12
- rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
13
-
14
- ENV DOCKERIZE_VERSION v0.2.0
15
- RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
16
- && tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz
17
-
18
- RUN gem install bundler
19
-
20
- ENV APP_HOME /sidekiq-cron
21
- RUN mkdir $APP_HOME
22
- WORKDIR $APP_HOME
23
-
24
- ADD Gemfile* $APP_HOME/
25
-
26
- ENV BUNDLE_GEMFILE=$APP_HOME/Gemfile \
27
- BUNDLE_JOBS=2 \
28
- BUNDLE_PATH=/bundle
29
-
30
- RUN bundle install
31
-
32
- ADD . $APP_HOME
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.6.3
data/config.ru DELETED
@@ -1,14 +0,0 @@
1
- require 'sidekiq'
2
-
3
- Sidekiq.configure_client do |config|
4
- config.redis = { :size => 1 }
5
- end
6
-
7
- require 'sidekiq/web'
8
-
9
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'lib'))
10
- $LOAD_PATH.unshift(File.dirname(__FILE__))
11
-
12
- require 'sidekiq-cron'
13
-
14
- run Sidekiq::Web
data/docker-compose.yml DELETED
@@ -1,21 +0,0 @@
1
- version: '2'
2
- services:
3
- common:
4
- build:
5
- context: .
6
- image: sidekiq-cron-test
7
- environment: &environment
8
- - REDIS_URL=redis://redis.test:6379/0
9
- dns:
10
- - 8.8.8.8
11
- - 8.8.4.4
12
- redis:
13
- image: redis
14
- tests:
15
- image: sidekiq-cron-test
16
- environment: *environment
17
- links:
18
- - redis:redis.test
19
- depends_on:
20
- - common
21
- command: dockerize -wait tcp://redis.test:6379 -timeout 60s rake test
Binary file
@@ -1,69 +0,0 @@
1
- header.row
2
- .span.col-sm-5.pull-left
3
- h3 = t('CronJobs')
4
-
5
- .span.col-sm-7.pull-right style="margin-top: 20px; margin-bottom: 10px;"
6
- form.pull-right action="#{root_path}cron/__all__/delete" method="post"
7
- = csrf_tag if respond_to?(:csrf_tag)
8
- input.btn.btn-small.pull-left.btn-danger type="submit" name="enque" value="#{t('DeleteAll')}" data-confirm="#{t('AreYouSureDeleteCronJobs')}"
9
- form.pull-right action="#{root_path}cron/__all__/disable" method="post"
10
- = csrf_tag if respond_to?(:csrf_tag)
11
- input.btn.btn-small.pull-left type="submit" name="enque" value="#{t('DisableAll')}"
12
- form.pull-right action="#{root_path}cron/__all__/enable" method="post"
13
- = csrf_tag if respond_to?(:csrf_tag)
14
- input.btn.btn-small.pull-left type="submit" name="enque" value="#{t('EnableAll')}"
15
- form.pull-right action="#{root_path}cron/__all__/enque" method="post"
16
- = csrf_tag if respond_to?(:csrf_tag)
17
- input.btn.btn-small.pull-left type="submit" name="enque" value="#{t('EnqueueAll')}"
18
-
19
- - if @cron_jobs.size > 0
20
-
21
- table class="table table-hover table-bordered table-striped"
22
- thead
23
- th = t('Status')
24
- th = t('Name')
25
- th = t('Cron')
26
- th = t('Last enque')
27
- th width="180px"
28
- = t('Actions')
29
-
30
-
31
- - @cron_jobs.sort{|a,b| a.sort_name <=> b.sort_name }.each_with_index do |job, index|
32
- - style = "#{job.status == 'disabled' ? "background: #ecc": ""}"
33
- tr
34
- td[style="#{style}"]= job.status
35
- td[style="#{style}"]
36
- b job.name
37
- hr style="margin:3px;border:0;"
38
- small
39
- - if job.message and job.message.to_s.size > 100
40
- button data-toggle="collapse" data-target=".worker_#{index}" class="btn btn-mini" = t('ShowAll')
41
- .toggle[class="worker_#{index}" style="display: inline;"]= job.message[0..100] + "... "
42
- .toggle[class="worker_#{index}" style="display: none;"]= job.message
43
- - else
44
- = job.message
45
-
46
- td[style="#{style}"]
47
- b == job.cron.gsub(" ", "&nbsp;")
48
- td[style="#{style}"]== job.last_enqueue_time ? relative_time(job.last_enqueue_time) : "-"
49
- td[style="#{style}"]
50
- -if job.status == 'enabled'
51
- form action="#{root_path}cron/#{CGI.escape(job.name).gsub('+', '%20')}/enque" method="post"
52
- = csrf_tag if respond_to?(:csrf_tag)
53
- input.btn.btn-small.pull-left type="submit" name="enque" value="#{t('EnqueueNow')}"
54
- form action="#{root_path}cron/#{CGI.escape(job.name).gsub('+', '%20')}/disable" method="post"
55
- = csrf_tag if respond_to?(:csrf_tag)
56
- input.btn.btn-small.pull-left type="submit" name="disable" value="#{t('Disable')}"
57
- -else
58
- form action="#{root_path}cron/#{CGI.escape(job.name).gsub('+', '%20')}/enque" method="post"
59
- = csrf_tag if respond_to?(:csrf_tag)
60
- input.btn.btn-small.pull-left type="submit" name="enque" value="#{t('EnqueueNow')}"
61
- form action="#{root_path}cron/#{CGI.escape(job.name).gsub('+', '%20')}/enable" method="post"
62
- = csrf_tag if respond_to?(:csrf_tag)
63
- input.btn.btn-small.pull-left type="submit" name="enable" value="#{t('Enable')}"
64
- form action="#{root_path}cron/#{CGI.escape(job.name).gsub('+', '%20')}/delete" method="post"
65
- = csrf_tag if respond_to?(:csrf_tag)
66
- input.btn.btn-danger.btn-small type="submit" name="delete" value="#{t('Delete')}" data-confirm="#{t('AreYouSureDeleteCronJob', :job => job.name)}"
67
-
68
- - else
69
- .alert.alert-success = t('NoCronJobsFound')