sidekiq-undertaker 1.1.1 → 1.4.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 (44) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby-build.yml +31 -3
  3. data/.rubocop.yml +4 -0
  4. data/.rubocop_codeclimate.yml +9 -0
  5. data/CHANGELOG.md +19 -0
  6. data/README.md +8 -6
  7. data/assets/Undertaker_demo_1_job_1_error.png +0 -0
  8. data/assets/Undertaker_demo_1_job_all_errors.png +0 -0
  9. data/assets/Undertaker_demo_all_errors.png +0 -0
  10. data/assets/Undertaker_demo_all_jobs.png +0 -0
  11. data/assets/Undertaker_demo_all_jobs_1_error.png +0 -0
  12. data/lib/sidekiq/undertaker/dead_job.rb +10 -2
  13. data/lib/sidekiq/undertaker/job_distributor.rb +4 -0
  14. data/lib/sidekiq/undertaker/job_filter.rb +7 -2
  15. data/lib/sidekiq/undertaker/version.rb +1 -1
  16. data/lib/sidekiq/undertaker/web_extension/api_helpers.rb +104 -26
  17. data/lib/sidekiq/undertaker/web_extension.rb +17 -8
  18. data/sidekiq-undertaker.gemspec +6 -5
  19. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_filter_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +32 -18
  20. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +37 -39
  21. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_polled/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +37 -39
  22. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classerror_classbucket_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +231 -0
  23. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classerror_classbucket_page_is_polled/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +231 -0
  24. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_all_failures_and_errors/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +26 -21
  25. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_job_class_error_and_specific_error_message/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +284 -0
  26. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_job_class_error_and_specific_error_message/with_pagination/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +1310 -0
  27. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +24 -19
  28. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/with_pagination/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +72 -67
  29. data/spec/sidekiq/undertaker/dead_jobs_spec.rb +7 -4
  30. data/spec/sidekiq/undertaker/job_distributor_spec.rb +41 -19
  31. data/spec/sidekiq/undertaker/job_filter_spec.rb +26 -9
  32. data/spec/sidekiq/undertaker/web_extension_spec.rb +172 -14
  33. data/spec/spec_helper.rb +4 -0
  34. data/web/locales/en.yml +2 -0
  35. data/web/views/filter.erb +17 -1
  36. data/web/views/filter_job_class.erb +8 -8
  37. data/web/views/filter_job_class_error_class.erb +36 -0
  38. data/web/views/morgue.erb +9 -2
  39. metadata +38 -30
  40. data/.travis.yml +0 -51
  41. data/Demo_Filter.png +0 -0
  42. data/Demo_Job_Filter.png +0 -0
  43. data/Demo_Morgue_1_Job.png +0 -0
  44. data/Demo_Morgue_all.png +0 -0
@@ -0,0 +1,231 @@
1
+ <!doctype html>
2
+ <html dir="ltr">
3
+ <head>
4
+ <title>[TEST] Sidekiq</title>
5
+ <meta charset="utf-8" />
6
+ <meta name="viewport" content="width=device-width,initial-scale=1.0" />
7
+
8
+ <link href="/sidekiq/stylesheets/bootstrap.css" media="screen" rel="stylesheet" type="text/css" />
9
+
10
+
11
+ <link href="/sidekiq/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
12
+ <link href="/sidekiq/stylesheets/application-dark.css" media="screen and (prefers-color-scheme: dark)" rel="stylesheet" type="text/css" />
13
+
14
+
15
+ <link rel="apple-touch-icon" href="/sidekiq/images/apple-touch-icon.png">
16
+ <link rel="shortcut icon" type="image/ico" href="/sidekiq/images/favicon.ico" />
17
+ <script type="text/javascript" src="/sidekiq/javascripts/application.js"></script>
18
+ <meta name="google" content="notranslate" />
19
+
20
+ </head>
21
+ <body class="admin" data-locale="en">
22
+ <div class="navbar navbar-default navbar-fixed-top">
23
+ <div class="container-fluid">
24
+ <div class="navbar-header" data-navbar="static">
25
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-menu">
26
+ <span class="icon-bar"></span>
27
+ <span class="icon-bar"></span>
28
+ <span class="icon-bar"></span>
29
+ </button>
30
+ <div class="navbar-toggle collapsed navbar-livereload">
31
+
32
+ <a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
33
+ <a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
34
+
35
+
36
+
37
+ </div>
38
+ <a class="navbar-brand" href="/sidekiq/">
39
+ Sidekiq
40
+ <span class="status">
41
+ <i class="status-sprite status-idle"></i>
42
+ idle
43
+ </span>
44
+
45
+ </a>
46
+ </div>
47
+
48
+ <div class="collapse navbar-collapse" id="navbar-menu">
49
+ <ul class="nav navbar-nav" data-navbar="static">
50
+
51
+
52
+ <li class="">
53
+ <a href="/sidekiq/">Dashboard</a>
54
+ </li>
55
+
56
+
57
+
58
+ <li class="">
59
+ <a href="/sidekiq/busy">Busy</a>
60
+ </li>
61
+
62
+
63
+
64
+ <li class="">
65
+ <a href="/sidekiq/queues">Queues</a>
66
+ </li>
67
+
68
+
69
+
70
+ <li class="">
71
+ <a href="/sidekiq/retries">Retries</a>
72
+ </li>
73
+
74
+
75
+
76
+ <li class="">
77
+ <a href="/sidekiq/scheduled">Scheduled</a>
78
+ </li>
79
+
80
+
81
+
82
+ <li class="">
83
+ <a href="/sidekiq/morgue">Dead</a>
84
+ </li>
85
+
86
+
87
+
88
+
89
+ <li class="active" data-navbar="custom-tab">
90
+ <a href="/sidekiq/undertaker/filter">Undertaker</a>
91
+ </li>
92
+
93
+
94
+ <li class="navbar-livereload">
95
+ <div class="poll-wrapper">
96
+
97
+ <a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
98
+ <a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
99
+
100
+
101
+
102
+ </div>
103
+ </li>
104
+ </ul>
105
+ </div>
106
+ </div>
107
+ </div>
108
+
109
+ <div id="page">
110
+ <div class="container">
111
+ <div class="row">
112
+ <div class="col-sm-12 summary_bar">
113
+ <ul class="list-unstyled summary row">
114
+ <li class="processed col-sm-1">
115
+ <span id="txtProcessed" class="count">0</span>
116
+ <span class="desc">Processed</span>
117
+ </li>
118
+ <li class="failed col-sm-1">
119
+ <span id="txtFailed" class="count">0</span>
120
+ <span class="desc">Failed</span>
121
+ </li>
122
+ <li class="busy col-sm-1">
123
+ <a href="/sidekiq/busy">
124
+ <span id="txtBusy" class="count">0</span>
125
+ <span class="desc">Busy</span>
126
+ </a>
127
+ </li>
128
+ <li class="enqueued col-sm-1">
129
+ <a href="/sidekiq/queues">
130
+ <span id="txtEnqueued" class="count">0</span>
131
+ <span class="desc">Enqueued</span>
132
+ </a>
133
+ </li>
134
+ <li class="retries col-sm-1">
135
+ <a href="/sidekiq/retries">
136
+ <span id="txtRetries" class="count">0</span>
137
+ <span class="desc">Retries</span>
138
+ </a>
139
+ </li>
140
+ <li class="scheduled col-sm-1">
141
+ <a href="/sidekiq/scheduled">
142
+ <span id="txtScheduled" class="count">0</span>
143
+ <span class="desc">Scheduled</span>
144
+ </a>
145
+ </li>
146
+ <li class="dead col-sm-1">
147
+ <a href="/sidekiq/morgue">
148
+ <span id="txtDead" class="count">4</span>
149
+ <span class="desc">Dead</span>
150
+ </a>
151
+ </li>
152
+ </ul>
153
+
154
+ </div>
155
+
156
+ <div class="col-sm-12">
157
+ <header class="row header">
158
+ <div class="col-sm-12">
159
+ <h3>
160
+ <b>2</b> dead jobs
161
+ of <b>HardWorker</b> class
162
+ with <b>RuntimeError</b> exception
163
+ </h3>
164
+ </div>
165
+ </header>
166
+
167
+ <table class="table table-striped table-bordered table-white">
168
+ <thead>
169
+ <tr>
170
+ <th style="width: 20%">Error Message</th>
171
+ <th style="width: 10%">All</th>
172
+ <th style="width: 10%">1 hour</th>
173
+ <th style="width: 10%">3 hours</th>
174
+ <th style="width: 10%">1 day</th>
175
+ <th style="width: 10%">3 days</th>
176
+ <th style="width: 10%">1 week</th>
177
+ <th style="width: 10%">Older</th>
178
+ </tr>
179
+ </thead>
180
+
181
+ <tr>
182
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/total_dead'>Option 'data/file_name' is req...</a></td>
183
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/total_dead'>2</a></td>
184
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/1_hour'>2</a></td>
185
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/3_hours'>0</a></td>
186
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/1_day'>0</a></td>
187
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/3_days'>0</a></td>
188
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/1_week'>0</a></td>
189
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/older'>0</a></td>
190
+ </tr>
191
+
192
+ <tr>
193
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/total_dead'>all</a></td>
194
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/total_dead'>2</a></td>
195
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/1_hour'>2</a></td>
196
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/3_hours'>0</a></td>
197
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/1_day'>0</a></td>
198
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/3_days'>0</a></td>
199
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/1_week'>0</a></td>
200
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/older'>0</a></td>
201
+ </tr>
202
+
203
+ </table>
204
+
205
+ </div>
206
+ </div>
207
+ </div>
208
+ </div>
209
+ <div class="navbar navbar-fixed-bottom navbar-inverse ltr">
210
+ <div class="navbar-inner">
211
+ <div class="container text-center">
212
+ <ul class="nav">
213
+ <li>
214
+ <p class="navbar-text product-version">Sidekiq v*EXCLUDED*</p>
215
+ </li>
216
+ <li>
217
+ <p class="navbar-text redis-url" title="redis://127.0.0.1:6379/0">redis://127.0.0.1:6379/0</p>
218
+ </li>
219
+ <li>
220
+ <p id="serverUtcTime" class="navbar-text server-utc-time">20:57:00 UTC</p>
221
+ </li>
222
+ <li>
223
+ <p class="navbar-text"><a style="color: gray;" href="https://github.com/mperham/sidekiq/wiki">docs</a></p>
224
+ </li>
225
+ </ul>
226
+ </div>
227
+ </div>
228
+ </div>
229
+
230
+ </body>
231
+ </html>
@@ -0,0 +1,231 @@
1
+ <!doctype html>
2
+ <html dir="ltr">
3
+ <head>
4
+ <title>[TEST] Sidekiq</title>
5
+ <meta charset="utf-8" />
6
+ <meta name="viewport" content="width=device-width,initial-scale=1.0" />
7
+
8
+ <link href="/sidekiq/stylesheets/bootstrap.css" media="screen" rel="stylesheet" type="text/css" />
9
+
10
+
11
+ <link href="/sidekiq/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
12
+ <link href="/sidekiq/stylesheets/application-dark.css" media="screen and (prefers-color-scheme: dark)" rel="stylesheet" type="text/css" />
13
+
14
+
15
+ <link rel="apple-touch-icon" href="/sidekiq/images/apple-touch-icon.png">
16
+ <link rel="shortcut icon" type="image/ico" href="/sidekiq/images/favicon.ico" />
17
+ <script type="text/javascript" src="/sidekiq/javascripts/application.js"></script>
18
+ <meta name="google" content="notranslate" />
19
+
20
+ </head>
21
+ <body class="admin" data-locale="en">
22
+ <div class="navbar navbar-default navbar-fixed-top">
23
+ <div class="container-fluid">
24
+ <div class="navbar-header" data-navbar="static">
25
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-menu">
26
+ <span class="icon-bar"></span>
27
+ <span class="icon-bar"></span>
28
+ <span class="icon-bar"></span>
29
+ </button>
30
+ <div class="navbar-toggle collapsed navbar-livereload">
31
+
32
+ <a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
33
+ <a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
34
+
35
+
36
+
37
+ </div>
38
+ <a class="navbar-brand" href="/sidekiq/">
39
+ Sidekiq
40
+ <span class="status">
41
+ <i class="status-sprite status-idle"></i>
42
+ idle
43
+ </span>
44
+
45
+ </a>
46
+ </div>
47
+
48
+ <div class="collapse navbar-collapse" id="navbar-menu">
49
+ <ul class="nav navbar-nav" data-navbar="static">
50
+
51
+
52
+ <li class="">
53
+ <a href="/sidekiq/">Dashboard</a>
54
+ </li>
55
+
56
+
57
+
58
+ <li class="">
59
+ <a href="/sidekiq/busy">Busy</a>
60
+ </li>
61
+
62
+
63
+
64
+ <li class="">
65
+ <a href="/sidekiq/queues">Queues</a>
66
+ </li>
67
+
68
+
69
+
70
+ <li class="">
71
+ <a href="/sidekiq/retries">Retries</a>
72
+ </li>
73
+
74
+
75
+
76
+ <li class="">
77
+ <a href="/sidekiq/scheduled">Scheduled</a>
78
+ </li>
79
+
80
+
81
+
82
+ <li class="">
83
+ <a href="/sidekiq/morgue">Dead</a>
84
+ </li>
85
+
86
+
87
+
88
+
89
+ <li class="active" data-navbar="custom-tab">
90
+ <a href="/sidekiq/undertaker/filter">Undertaker</a>
91
+ </li>
92
+
93
+
94
+ <li class="navbar-livereload">
95
+ <div class="poll-wrapper">
96
+
97
+ <a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
98
+ <a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
99
+
100
+
101
+
102
+ </div>
103
+ </li>
104
+ </ul>
105
+ </div>
106
+ </div>
107
+ </div>
108
+
109
+ <div id="page">
110
+ <div class="container">
111
+ <div class="row">
112
+ <div class="col-sm-12 summary_bar">
113
+ <ul class="list-unstyled summary row">
114
+ <li class="processed col-sm-1">
115
+ <span id="txtProcessed" class="count">0</span>
116
+ <span class="desc">Processed</span>
117
+ </li>
118
+ <li class="failed col-sm-1">
119
+ <span id="txtFailed" class="count">0</span>
120
+ <span class="desc">Failed</span>
121
+ </li>
122
+ <li class="busy col-sm-1">
123
+ <a href="/sidekiq/busy">
124
+ <span id="txtBusy" class="count">0</span>
125
+ <span class="desc">Busy</span>
126
+ </a>
127
+ </li>
128
+ <li class="enqueued col-sm-1">
129
+ <a href="/sidekiq/queues">
130
+ <span id="txtEnqueued" class="count">0</span>
131
+ <span class="desc">Enqueued</span>
132
+ </a>
133
+ </li>
134
+ <li class="retries col-sm-1">
135
+ <a href="/sidekiq/retries">
136
+ <span id="txtRetries" class="count">0</span>
137
+ <span class="desc">Retries</span>
138
+ </a>
139
+ </li>
140
+ <li class="scheduled col-sm-1">
141
+ <a href="/sidekiq/scheduled">
142
+ <span id="txtScheduled" class="count">0</span>
143
+ <span class="desc">Scheduled</span>
144
+ </a>
145
+ </li>
146
+ <li class="dead col-sm-1">
147
+ <a href="/sidekiq/morgue">
148
+ <span id="txtDead" class="count">4</span>
149
+ <span class="desc">Dead</span>
150
+ </a>
151
+ </li>
152
+ </ul>
153
+
154
+ </div>
155
+
156
+ <div class="col-sm-12">
157
+ <header class="row header">
158
+ <div class="col-sm-12">
159
+ <h3>
160
+ <b>2</b> dead jobs
161
+ of <b>HardWorker</b> class
162
+ with <b>RuntimeError</b> exception
163
+ </h3>
164
+ </div>
165
+ </header>
166
+
167
+ <table class="table table-striped table-bordered table-white">
168
+ <thead>
169
+ <tr>
170
+ <th style="width: 20%">Error Message</th>
171
+ <th style="width: 10%">All</th>
172
+ <th style="width: 10%">1 hour</th>
173
+ <th style="width: 10%">3 hours</th>
174
+ <th style="width: 10%">1 day</th>
175
+ <th style="width: 10%">3 days</th>
176
+ <th style="width: 10%">1 week</th>
177
+ <th style="width: 10%">Older</th>
178
+ </tr>
179
+ </thead>
180
+
181
+ <tr>
182
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/total_dead'>Option 'data/file_name' is req...</a></td>
183
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/total_dead'>2</a></td>
184
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/1_hour'>2</a></td>
185
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/3_hours'>0</a></td>
186
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/1_day'>0</a></td>
187
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/3_days'>0</a></td>
188
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/1_week'>0</a></td>
189
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/older'>0</a></td>
190
+ </tr>
191
+
192
+ <tr>
193
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/total_dead'>all</a></td>
194
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/total_dead'>2</a></td>
195
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/1_hour'>2</a></td>
196
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/3_hours'>0</a></td>
197
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/1_day'>0</a></td>
198
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/3_days'>0</a></td>
199
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/1_week'>0</a></td>
200
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/older'>0</a></td>
201
+ </tr>
202
+
203
+ </table>
204
+
205
+ </div>
206
+ </div>
207
+ </div>
208
+ </div>
209
+ <div class="navbar navbar-fixed-bottom navbar-inverse ltr">
210
+ <div class="navbar-inner">
211
+ <div class="container text-center">
212
+ <ul class="nav">
213
+ <li>
214
+ <p class="navbar-text product-version">Sidekiq v*EXCLUDED*</p>
215
+ </li>
216
+ <li>
217
+ <p class="navbar-text redis-url" title="redis://127.0.0.1:6379/0">redis://127.0.0.1:6379/0</p>
218
+ </li>
219
+ <li>
220
+ <p id="serverUtcTime" class="navbar-text server-utc-time">20:57:00 UTC</p>
221
+ </li>
222
+ <li>
223
+ <p class="navbar-text"><a style="color: gray;" href="https://github.com/mperham/sidekiq/wiki">docs</a></p>
224
+ </li>
225
+ </ul>
226
+ </div>
227
+ </div>
228
+ </div>
229
+
230
+ </body>
231
+ </html>
@@ -18,7 +18,7 @@
18
18
  <meta name="google" content="notranslate" />
19
19
 
20
20
  </head>
21
- <body class="admin" data-poll-path="" data-locale="en">
21
+ <body class="admin" data-locale="en">
22
22
  <div class="navbar navbar-default navbar-fixed-top">
23
23
  <div class="container-fluid">
24
24
  <div class="navbar-header" data-navbar="static">
@@ -29,9 +29,8 @@
29
29
  </button>
30
30
  <div class="navbar-toggle collapsed navbar-livereload">
31
31
 
32
-
33
- <a id="live-poll" class="btn btn-primary" href="/sidekiq/undertaker/morgue/all/all/total_dead?poll=true">Live Poll</a>
34
-
32
+ <a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
33
+ <a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
35
34
 
36
35
 
37
36
 
@@ -95,9 +94,8 @@
95
94
  <li class="navbar-livereload">
96
95
  <div class="poll-wrapper">
97
96
 
98
-
99
- <a id="live-poll" class="btn btn-primary" href="/sidekiq/undertaker/morgue/all/all/total_dead?poll=true">Live Poll</a>
100
-
97
+ <a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
98
+ <a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
101
99
 
102
100
 
103
101
 
@@ -114,40 +112,40 @@
114
112
  <div class="col-sm-12 summary_bar">
115
113
  <ul class="list-unstyled summary row">
116
114
  <li class="processed col-sm-1">
117
- <span class="count">0</span>
115
+ <span id="txtProcessed" class="count">0</span>
118
116
  <span class="desc">Processed</span>
119
117
  </li>
120
118
  <li class="failed col-sm-1">
121
- <span class="count">0</span>
119
+ <span id="txtFailed" class="count">0</span>
122
120
  <span class="desc">Failed</span>
123
121
  </li>
124
122
  <li class="busy col-sm-1">
125
123
  <a href="/sidekiq/busy">
126
- <span class="count">0</span>
124
+ <span id="txtBusy" class="count">0</span>
127
125
  <span class="desc">Busy</span>
128
126
  </a>
129
127
  </li>
130
128
  <li class="enqueued col-sm-1">
131
129
  <a href="/sidekiq/queues">
132
- <span class="count">0</span>
130
+ <span id="txtEnqueued" class="count">0</span>
133
131
  <span class="desc">Enqueued</span>
134
132
  </a>
135
133
  </li>
136
134
  <li class="retries col-sm-1">
137
135
  <a href="/sidekiq/retries">
138
- <span class="count">0</span>
136
+ <span id="txtRetries" class="count">0</span>
139
137
  <span class="desc">Retries</span>
140
138
  </a>
141
139
  </li>
142
140
  <li class="scheduled col-sm-1">
143
141
  <a href="/sidekiq/scheduled">
144
- <span class="count">0</span>
142
+ <span id="txtScheduled" class="count">0</span>
145
143
  <span class="desc">Scheduled</span>
146
144
  </a>
147
145
  </li>
148
146
  <li class="dead col-sm-1">
149
147
  <a href="/sidekiq/morgue">
150
- <span class="count">4</span>
148
+ <span id="txtDead" class="count">4</span>
151
149
  <span class="desc">Dead</span>
152
150
  </a>
153
151
  </li>
@@ -162,6 +160,7 @@
162
160
  <b>4</b> dead jobs
163
161
 
164
162
 
163
+
165
164
  in <b>total_dead</b> bucket
166
165
  </h3>
167
166
  </div>
@@ -209,7 +208,7 @@
209
208
  <div class="args">&quot;asdf&quot;, 1234</div>
210
209
  </td>
211
210
  <td>
212
- <div>NoMethodError: Some fake message</div>
211
+ <div>NoMethodError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
213
212
  </td>
214
213
  </tr>
215
214
 
@@ -230,7 +229,7 @@
230
229
  <div class="args">&quot;asdf&quot;, 1234</div>
231
230
  </td>
232
231
  <td>
233
- <div>RuntimeError: Some fake message</div>
232
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
234
233
  </td>
235
234
  </tr>
236
235
 
@@ -251,7 +250,7 @@
251
250
  <div class="args">&quot;asdf&quot;, 1234</div>
252
251
  </td>
253
252
  <td>
254
- <div>RuntimeError: Some fake message</div>
253
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
255
254
  </td>
256
255
  </tr>
257
256
 
@@ -272,21 +271,27 @@
272
271
  <div class="args">&quot;asdf&quot;, 1234</div>
273
272
  </td>
274
273
  <td>
275
- <div>NoMethodError: Some fake message</div>
274
+ <div>NoMethodError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
276
275
  </td>
277
276
  </tr>
278
277
 
279
278
  </table>
280
279
  <input class="btn btn-primary btn-xs pull-left" type="submit" name="retry" value="Revive" />
280
+ <input class="btn btn-secondary btn-xs pull-left" type="submit" name="export" value="Export" />
281
281
  <input class="btn btn-danger btn-xs pull-left" type="submit" name="delete" value="Bury" />
282
282
  </form>
283
283
 
284
- <form action="/sidekiq/undertaker/morgue/all/all/total_dead/delete" method="post">
284
+ <form action="/sidekiq/undertaker/morgue/all/all/YWxs/total_dead/delete" method="post">
285
285
  <input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
286
286
  <input class="btn btn-danger btn-xs pull-right" type="submit" name="delete" value="Bury All" data-confirm="Are you sure?" />
287
287
  </form>
288
288
 
289
- <form action="/sidekiq/undertaker/morgue/all/all/total_dead/retry" method="post">
289
+ <form action="/sidekiq/undertaker/morgue/all/all/YWxs/total_dead/export" method="post">
290
+ <input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
291
+ <input class="btn btn-secondary btn-xs pull-right" type="submit" name="export" value="Export All" />
292
+ </form>
293
+
294
+ <form action="/sidekiq/undertaker/morgue/all/all/YWxs/total_dead/retry" method="post">
290
295
  <input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
291
296
  <input class="btn btn-danger btn-xs pull-right" type="submit" name="retry" value="Revive All" data-confirm="Are you sure?" />
292
297
  </form>
@@ -307,7 +312,7 @@
307
312
  <p class="navbar-text redis-url" title="redis://127.0.0.1:6379/0">redis://127.0.0.1:6379/0</p>
308
313
  </li>
309
314
  <li>
310
- <p class="navbar-text server-utc-time">20:57:00 UTC</p>
315
+ <p id="serverUtcTime" class="navbar-text server-utc-time">20:57:00 UTC</p>
311
316
  </li>
312
317
  <li>
313
318
  <p class="navbar-text"><a style="color: gray;" href="https://github.com/mperham/sidekiq/wiki">docs</a></p>