sidekiq 7.1.4 → 8.0.9

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 (128) hide show
  1. checksums.yaml +4 -4
  2. data/Changes.md +333 -0
  3. data/README.md +16 -13
  4. data/bin/multi_queue_bench +271 -0
  5. data/bin/sidekiqload +31 -22
  6. data/bin/webload +69 -0
  7. data/lib/active_job/queue_adapters/sidekiq_adapter.rb +121 -0
  8. data/lib/generators/sidekiq/job_generator.rb +2 -0
  9. data/lib/generators/sidekiq/templates/job.rb.erb +1 -1
  10. data/lib/sidekiq/api.rb +260 -67
  11. data/lib/sidekiq/capsule.rb +17 -8
  12. data/lib/sidekiq/cli.rb +19 -20
  13. data/lib/sidekiq/client.rb +48 -15
  14. data/lib/sidekiq/component.rb +64 -3
  15. data/lib/sidekiq/config.rb +60 -18
  16. data/lib/sidekiq/deploy.rb +4 -2
  17. data/lib/sidekiq/embedded.rb +4 -1
  18. data/lib/sidekiq/fetch.rb +2 -1
  19. data/lib/sidekiq/iterable_job.rb +56 -0
  20. data/lib/sidekiq/job/interrupt_handler.rb +24 -0
  21. data/lib/sidekiq/job/iterable/active_record_enumerator.rb +53 -0
  22. data/lib/sidekiq/job/iterable/csv_enumerator.rb +47 -0
  23. data/lib/sidekiq/job/iterable/enumerators.rb +135 -0
  24. data/lib/sidekiq/job/iterable.rb +322 -0
  25. data/lib/sidekiq/job.rb +16 -5
  26. data/lib/sidekiq/job_logger.rb +15 -12
  27. data/lib/sidekiq/job_retry.rb +41 -13
  28. data/lib/sidekiq/job_util.rb +7 -1
  29. data/lib/sidekiq/launcher.rb +23 -11
  30. data/lib/sidekiq/loader.rb +57 -0
  31. data/lib/sidekiq/logger.rb +25 -69
  32. data/lib/sidekiq/manager.rb +0 -1
  33. data/lib/sidekiq/metrics/query.rb +76 -45
  34. data/lib/sidekiq/metrics/shared.rb +23 -9
  35. data/lib/sidekiq/metrics/tracking.rb +32 -15
  36. data/lib/sidekiq/middleware/current_attributes.rb +39 -14
  37. data/lib/sidekiq/middleware/i18n.rb +2 -0
  38. data/lib/sidekiq/middleware/modules.rb +2 -0
  39. data/lib/sidekiq/monitor.rb +6 -9
  40. data/lib/sidekiq/paginator.rb +16 -3
  41. data/lib/sidekiq/processor.rb +37 -20
  42. data/lib/sidekiq/profiler.rb +73 -0
  43. data/lib/sidekiq/rails.rb +47 -57
  44. data/lib/sidekiq/redis_client_adapter.rb +25 -8
  45. data/lib/sidekiq/redis_connection.rb +49 -9
  46. data/lib/sidekiq/ring_buffer.rb +3 -0
  47. data/lib/sidekiq/scheduled.rb +2 -2
  48. data/lib/sidekiq/systemd.rb +2 -0
  49. data/lib/sidekiq/testing.rb +34 -15
  50. data/lib/sidekiq/transaction_aware_client.rb +20 -5
  51. data/lib/sidekiq/version.rb +6 -2
  52. data/lib/sidekiq/web/action.rb +149 -64
  53. data/lib/sidekiq/web/application.rb +367 -297
  54. data/lib/sidekiq/web/config.rb +120 -0
  55. data/lib/sidekiq/web/csrf_protection.rb +8 -5
  56. data/lib/sidekiq/web/helpers.rb +146 -64
  57. data/lib/sidekiq/web/router.rb +61 -74
  58. data/lib/sidekiq/web.rb +53 -106
  59. data/lib/sidekiq.rb +11 -4
  60. data/sidekiq.gemspec +6 -5
  61. data/web/assets/images/logo.png +0 -0
  62. data/web/assets/images/status.png +0 -0
  63. data/web/assets/javascripts/application.js +66 -24
  64. data/web/assets/javascripts/base-charts.js +30 -16
  65. data/web/assets/javascripts/chartjs-adapter-date-fns.min.js +7 -0
  66. data/web/assets/javascripts/dashboard-charts.js +37 -11
  67. data/web/assets/javascripts/dashboard.js +15 -11
  68. data/web/assets/javascripts/metrics.js +50 -34
  69. data/web/assets/stylesheets/style.css +776 -0
  70. data/web/locales/ar.yml +2 -0
  71. data/web/locales/cs.yml +2 -0
  72. data/web/locales/da.yml +2 -0
  73. data/web/locales/de.yml +2 -0
  74. data/web/locales/el.yml +2 -0
  75. data/web/locales/en.yml +12 -1
  76. data/web/locales/es.yml +25 -2
  77. data/web/locales/fa.yml +2 -0
  78. data/web/locales/fr.yml +2 -1
  79. data/web/locales/gd.yml +2 -1
  80. data/web/locales/he.yml +2 -0
  81. data/web/locales/hi.yml +2 -0
  82. data/web/locales/it.yml +41 -1
  83. data/web/locales/ja.yml +2 -1
  84. data/web/locales/ko.yml +2 -0
  85. data/web/locales/lt.yml +2 -0
  86. data/web/locales/nb.yml +2 -0
  87. data/web/locales/nl.yml +2 -0
  88. data/web/locales/pl.yml +2 -0
  89. data/web/locales/{pt-br.yml → pt-BR.yml} +4 -3
  90. data/web/locales/pt.yml +2 -0
  91. data/web/locales/ru.yml +2 -0
  92. data/web/locales/sv.yml +2 -0
  93. data/web/locales/ta.yml +2 -0
  94. data/web/locales/tr.yml +102 -0
  95. data/web/locales/uk.yml +29 -4
  96. data/web/locales/ur.yml +2 -0
  97. data/web/locales/vi.yml +2 -0
  98. data/web/locales/{zh-cn.yml → zh-CN.yml} +86 -74
  99. data/web/locales/{zh-tw.yml → zh-TW.yml} +3 -2
  100. data/web/views/_footer.erb +31 -22
  101. data/web/views/_job_info.erb +91 -89
  102. data/web/views/_metrics_period_select.erb +13 -10
  103. data/web/views/_nav.erb +14 -21
  104. data/web/views/_paging.erb +22 -21
  105. data/web/views/_poll_link.erb +2 -2
  106. data/web/views/_summary.erb +23 -23
  107. data/web/views/busy.erb +123 -125
  108. data/web/views/dashboard.erb +71 -82
  109. data/web/views/dead.erb +31 -27
  110. data/web/views/filtering.erb +6 -0
  111. data/web/views/layout.erb +13 -29
  112. data/web/views/metrics.erb +70 -68
  113. data/web/views/metrics_for_job.erb +30 -40
  114. data/web/views/morgue.erb +65 -70
  115. data/web/views/profiles.erb +43 -0
  116. data/web/views/queue.erb +54 -52
  117. data/web/views/queues.erb +43 -37
  118. data/web/views/retries.erb +70 -75
  119. data/web/views/retry.erb +32 -27
  120. data/web/views/scheduled.erb +63 -55
  121. data/web/views/scheduled_job_info.erb +3 -3
  122. metadata +49 -27
  123. data/web/assets/stylesheets/application-dark.css +0 -147
  124. data/web/assets/stylesheets/application-rtl.css +0 -153
  125. data/web/assets/stylesheets/application.css +0 -724
  126. data/web/assets/stylesheets/bootstrap-rtl.min.css +0 -9
  127. data/web/assets/stylesheets/bootstrap.css +0 -5
  128. data/web/views/_status.erb +0 -4
@@ -1,56 +1,64 @@
1
- <div class="header-container">
2
- <h1><%= t('ScheduledJobs') %></h1>
3
- <% if @scheduled.size > 0 && @total_size > @count %>
4
- <%= erb :_paging, locals: { url: "#{root_path}scheduled" } %>
5
- <% end %>
6
- <%= filtering('scheduled') %>
7
- </div>
1
+ <section>
2
+ <header>
3
+ <h1><%= t('ScheduledJobs') %></h1>
4
+ <% if @scheduled.size > 0 && @total_size > @count %>
5
+ <%= erb :_paging, locals: { url: "#{root_path}scheduled" } %>
6
+ <% end %>
7
+ <%= filtering('scheduled') %>
8
+ </header>
8
9
 
9
- <% if @scheduled.size > 0 %>
10
- <form action="<%= root_path %>scheduled" method="post">
11
- <%= csrf_tag %>
12
- <div class="table_container">
13
- <table class="table table-striped table-bordered table-hover">
14
- <thead>
15
- <tr>
16
- <th class="table-checkbox checkbox-column">
17
- <label>
18
- <input type="checkbox" class="check_all" />
19
- </label>
20
- </th>
21
- <th><%= t('When') %></th>
22
- <th><%= t('Queue') %></th>
23
- <th><%= t('Job') %></th>
24
- <th><%= t('Arguments') %></th>
25
- </tr>
26
- </thead>
27
- <% @scheduled.each do |entry| %>
28
- <tr>
29
- <td class="table-checkbox">
30
- <label>
31
- <input type='checkbox' name='key[]' value='<%= job_params(entry.item, entry.score) %>' class='shift_clickable' />
32
- </label>
33
- </td>
34
- <td>
35
- <a href="<%= root_path %>scheduled/<%= job_params(entry.item, entry.score) %>"><%= relative_time(entry.at) %></a>
36
- </td>
37
- <td>
38
- <a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
39
- </td>
40
- <td>
41
- <%= entry.display_class %>
42
- <%= display_tags(entry, "scheduled") %>
43
- </td>
44
- <td>
45
- <div class="args"><%= display_args(entry.display_args) %></div>
46
- </td>
47
- </tr>
48
- <% end %>
49
- </table>
50
- </div>
51
- <input class="btn btn-danger pull-right flip" type="submit" name="delete" value="<%= t('Delete') %>" />
52
- <input class="btn btn-danger pull-right flip" type="submit" name="add_to_queue" value="<%= t('AddToQueue') %>" />
53
- </form>
54
- <% else %>
55
- <div class="alert alert-success"><%= t('NoScheduledFound') %></div>
56
- <% end %>
10
+ <% if @scheduled.size > 0 %>
11
+ <form action="<%= root_path %>scheduled" method="post">
12
+ <%= csrf_tag %>
13
+ <div class="table_container">
14
+ <table>
15
+ <thead>
16
+ <tr>
17
+ <th>
18
+ <label>
19
+ <input type="checkbox" class="check_all check-all-items">
20
+ </label>
21
+ </th>
22
+ <th><%= t('When') %></th>
23
+ <th><%= t('Queue') %></th>
24
+ <th><%= t('Job') %></th>
25
+ <th><%= t('Arguments') %></th>
26
+ </tr>
27
+ </thead>
28
+ <% @scheduled.each do |entry| %>
29
+ <tr>
30
+ <td>
31
+ <label>
32
+ <input type="checkbox" name="key[]" value="<%= job_params(entry.item, entry.score) %>" class="shift_clickable select-item-checkbox">
33
+ </label>
34
+ </td>
35
+ <td>
36
+ <a href="<%= root_path %>scheduled/<%= job_params(entry.item, entry.score) %>"><%= relative_time(entry.at) %></a>
37
+ </td>
38
+ <td>
39
+ <a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
40
+ </td>
41
+ <td>
42
+ <%= entry.display_class %>
43
+ <%= display_tags(entry, "scheduled") %>
44
+ </td>
45
+ <td>
46
+ <code>
47
+ <div class="args"><%= display_args(entry.display_args) %></div>
48
+ </code>
49
+ </td>
50
+ </tr>
51
+ <% end %>
52
+ </table>
53
+ </div>
54
+ <div class="buttons-row">
55
+ <input class="btn btn-danger" type="submit" name="delete" value="<%= t('Delete') %>">
56
+ <input class="btn btn-danger" type="submit" name="add_to_queue" value="<%= t('AddToQueue') %>">
57
+ <button class="btn btn-danger bulk-action-buttons bulk-lead-button" type="submit" name="action" value="delete_all" formaction="<%= "#{root_path}scheduled/all/delete" %>"><%= t('DeleteAll') %></button>
58
+ <button class="btn btn-danger bulk-action-buttons" type="submit" name="action" value="add_all_to_queue" formaction="<%= "#{root_path}scheduled/all/add_to_queue" %>"><%= t('AddAllToQueue') %></button>
59
+ </div>
60
+ </form>
61
+ <% else %>
62
+ <div class="alert alert-success"><%= t('NoScheduledFound') %></div>
63
+ <% end %>
64
+ </section>
@@ -1,8 +1,8 @@
1
1
  <%= erb :_job_info, locals: { job: @job, type: :scheduled } %>
2
2
 
3
- <form class="form-horizontal" action="<%= root_path %>scheduled/<%= job_params(@job, @job.score) %>" method="post">
3
+ <form action="<%= root_path %>scheduled/<%= job_params(@job, @job.score) %>" method="post">
4
4
  <%= csrf_tag %>
5
5
  <a class="btn btn-default" href="<%= root_path %>scheduled"><%= t('GoBack') %></a>
6
- <input class="btn btn-primary" type="submit" name="add_to_queue" value="<%= t('AddToQueue') %>" />
7
- <input class="btn btn-danger" type="submit" name="delete" value="<%= t('Delete') %>" />
6
+ <input class="btn btn-primary" type="submit" name="add_to_queue" value="<%= t('AddToQueue') %>">
7
+ <input class="btn btn-danger" type="submit" name="delete" value="<%= t('Delete') %>">
8
8
  </form>
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.1.4
4
+ version: 8.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Perham
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2023-09-12 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: redis-client
@@ -16,56 +15,70 @@ dependencies:
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: 0.14.0
18
+ version: 0.23.2
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - ">="
25
24
  - !ruby/object:Gem::Version
26
- version: 0.14.0
25
+ version: 0.23.2
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: connection_pool
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - ">="
32
31
  - !ruby/object:Gem::Version
33
- version: 2.3.0
32
+ version: 2.5.0
34
33
  type: :runtime
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - ">="
39
38
  - !ruby/object:Gem::Version
40
- version: 2.3.0
39
+ version: 2.5.0
41
40
  - !ruby/object:Gem::Dependency
42
41
  name: rack
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - ">="
46
45
  - !ruby/object:Gem::Version
47
- version: 2.2.4
46
+ version: 3.1.0
48
47
  type: :runtime
49
48
  prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
51
  - - ">="
53
52
  - !ruby/object:Gem::Version
54
- version: 2.2.4
53
+ version: 3.1.0
55
54
  - !ruby/object:Gem::Dependency
56
- name: concurrent-ruby
55
+ name: json
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
- - - "<"
58
+ - - ">="
60
59
  - !ruby/object:Gem::Version
61
- version: '2'
60
+ version: 2.9.0
62
61
  type: :runtime
63
62
  prerelease: false
64
63
  version_requirements: !ruby/object:Gem::Requirement
65
64
  requirements:
66
- - - "<"
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: 2.9.0
68
+ - !ruby/object:Gem::Dependency
69
+ name: logger
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 1.6.2
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
67
80
  - !ruby/object:Gem::Version
68
- version: '2'
81
+ version: 1.6.2
69
82
  description: Simple, efficient background processing for Ruby.
70
83
  email:
71
84
  - info@contribsys.com
@@ -78,9 +91,12 @@ files:
78
91
  - Changes.md
79
92
  - LICENSE.txt
80
93
  - README.md
94
+ - bin/multi_queue_bench
81
95
  - bin/sidekiq
82
96
  - bin/sidekiqload
83
97
  - bin/sidekiqmon
98
+ - bin/webload
99
+ - lib/active_job/queue_adapters/sidekiq_adapter.rb
84
100
  - lib/generators/sidekiq/job_generator.rb
85
101
  - lib/generators/sidekiq/templates/job.rb.erb
86
102
  - lib/generators/sidekiq/templates/job_spec.rb.erb
@@ -95,11 +111,18 @@ files:
95
111
  - lib/sidekiq/deploy.rb
96
112
  - lib/sidekiq/embedded.rb
97
113
  - lib/sidekiq/fetch.rb
114
+ - lib/sidekiq/iterable_job.rb
98
115
  - lib/sidekiq/job.rb
116
+ - lib/sidekiq/job/interrupt_handler.rb
117
+ - lib/sidekiq/job/iterable.rb
118
+ - lib/sidekiq/job/iterable/active_record_enumerator.rb
119
+ - lib/sidekiq/job/iterable/csv_enumerator.rb
120
+ - lib/sidekiq/job/iterable/enumerators.rb
99
121
  - lib/sidekiq/job_logger.rb
100
122
  - lib/sidekiq/job_retry.rb
101
123
  - lib/sidekiq/job_util.rb
102
124
  - lib/sidekiq/launcher.rb
125
+ - lib/sidekiq/loader.rb
103
126
  - lib/sidekiq/logger.rb
104
127
  - lib/sidekiq/manager.rb
105
128
  - lib/sidekiq/metrics/query.rb
@@ -112,6 +135,7 @@ files:
112
135
  - lib/sidekiq/monitor.rb
113
136
  - lib/sidekiq/paginator.rb
114
137
  - lib/sidekiq/processor.rb
138
+ - lib/sidekiq/profiler.rb
115
139
  - lib/sidekiq/rails.rb
116
140
  - lib/sidekiq/redis_client_adapter.rb
117
141
  - lib/sidekiq/redis_connection.rb
@@ -126,6 +150,7 @@ files:
126
150
  - lib/sidekiq/web.rb
127
151
  - lib/sidekiq/web/action.rb
128
152
  - lib/sidekiq/web/application.rb
153
+ - lib/sidekiq/web/config.rb
129
154
  - lib/sidekiq/web/csrf_protection.rb
130
155
  - lib/sidekiq/web/helpers.rb
131
156
  - lib/sidekiq/web/router.rb
@@ -138,15 +163,12 @@ files:
138
163
  - web/assets/javascripts/application.js
139
164
  - web/assets/javascripts/base-charts.js
140
165
  - web/assets/javascripts/chart.min.js
166
+ - web/assets/javascripts/chartjs-adapter-date-fns.min.js
141
167
  - web/assets/javascripts/chartjs-plugin-annotation.min.js
142
168
  - web/assets/javascripts/dashboard-charts.js
143
169
  - web/assets/javascripts/dashboard.js
144
170
  - web/assets/javascripts/metrics.js
145
- - web/assets/stylesheets/application-dark.css
146
- - web/assets/stylesheets/application-rtl.css
147
- - web/assets/stylesheets/application.css
148
- - web/assets/stylesheets/bootstrap-rtl.min.css
149
- - web/assets/stylesheets/bootstrap.css
171
+ - web/assets/stylesheets/style.css
150
172
  - web/locales/ar.yml
151
173
  - web/locales/cs.yml
152
174
  - web/locales/da.yml
@@ -166,31 +188,33 @@ files:
166
188
  - web/locales/nb.yml
167
189
  - web/locales/nl.yml
168
190
  - web/locales/pl.yml
169
- - web/locales/pt-br.yml
191
+ - web/locales/pt-BR.yml
170
192
  - web/locales/pt.yml
171
193
  - web/locales/ru.yml
172
194
  - web/locales/sv.yml
173
195
  - web/locales/ta.yml
196
+ - web/locales/tr.yml
174
197
  - web/locales/uk.yml
175
198
  - web/locales/ur.yml
176
199
  - web/locales/vi.yml
177
- - web/locales/zh-cn.yml
178
- - web/locales/zh-tw.yml
200
+ - web/locales/zh-CN.yml
201
+ - web/locales/zh-TW.yml
179
202
  - web/views/_footer.erb
180
203
  - web/views/_job_info.erb
181
204
  - web/views/_metrics_period_select.erb
182
205
  - web/views/_nav.erb
183
206
  - web/views/_paging.erb
184
207
  - web/views/_poll_link.erb
185
- - web/views/_status.erb
186
208
  - web/views/_summary.erb
187
209
  - web/views/busy.erb
188
210
  - web/views/dashboard.erb
189
211
  - web/views/dead.erb
212
+ - web/views/filtering.erb
190
213
  - web/views/layout.erb
191
214
  - web/views/metrics.erb
192
215
  - web/views/metrics_for_job.erb
193
216
  - web/views/morgue.erb
217
+ - web/views/profiles.erb
194
218
  - web/views/queue.erb
195
219
  - web/views/queues.erb
196
220
  - web/views/retries.erb
@@ -207,7 +231,6 @@ metadata:
207
231
  changelog_uri: https://github.com/sidekiq/sidekiq/blob/main/Changes.md
208
232
  source_code_uri: https://github.com/sidekiq/sidekiq
209
233
  rubygems_mfa_required: 'true'
210
- post_install_message:
211
234
  rdoc_options: []
212
235
  require_paths:
213
236
  - lib
@@ -215,15 +238,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
215
238
  requirements:
216
239
  - - ">="
217
240
  - !ruby/object:Gem::Version
218
- version: 2.7.0
241
+ version: 3.2.0
219
242
  required_rubygems_version: !ruby/object:Gem::Requirement
220
243
  requirements:
221
244
  - - ">="
222
245
  - !ruby/object:Gem::Version
223
246
  version: '0'
224
247
  requirements: []
225
- rubygems_version: 3.4.7
226
- signing_key:
248
+ rubygems_version: 3.6.9
227
249
  specification_version: 4
228
250
  summary: Simple, efficient background processing for Ruby
229
251
  test_files: []
@@ -1,147 +0,0 @@
1
- html, body {
2
- background-color: #171717 !important;
3
- color: #DEDEDE;
4
- }
5
-
6
- a,
7
- .title,
8
- .summary_bar ul .count,
9
- span.current-interval,
10
- .navbar .navbar-brand {
11
- color: #d04;
12
- }
13
-
14
- .history-graph.active,
15
- .beacon .dot {
16
- background-color: #d04;
17
- }
18
-
19
- .navbar .navbar-brand:hover {
20
- color: #ddd;
21
- }
22
-
23
- .navbar .navbar-brand .status {
24
- color: #ddd;
25
- }
26
-
27
- .navbar-default .navbar-nav > li > a {
28
- color: #ddd;
29
- }
30
-
31
- .navbar-inverse {
32
- background-color: #222;
33
- border-color: #444;
34
- }
35
-
36
- table {
37
- background-color: #1D1D1D;
38
- }
39
-
40
- .table-striped > tbody > tr:nth-of-type(odd) {
41
- background-color: #2E2E2E;
42
- }
43
-
44
- .table-bordered,
45
- .table-bordered > tbody > tr > td,
46
- .table-bordered > tbody > tr > th,
47
- .table-bordered > tfoot > tr > td,
48
- .table-bordered > tfoot > tr > th,
49
- .table-bordered > thead > tr > td,
50
- .table-bordered > thead > tr > th {
51
- border: 1px solid #444;
52
- }
53
-
54
- .table-hover > tbody > tr:hover {
55
- background-color: #444;
56
- }
57
-
58
- .alert {
59
- border: none;
60
- color: #ddd;
61
- }
62
-
63
- .alert-success {
64
- background-color: #484;
65
- }
66
-
67
- .alert-danger {
68
- background-color: #980035;
69
- }
70
-
71
- .alert-info {
72
- background-color: #31708f;
73
- }
74
-
75
- .alert-warning {
76
- background-color: #c47612;
77
- }
78
-
79
- a:link, a:active, a:hover, a:visited {
80
- color: #ddd;
81
- }
82
-
83
- input {
84
- background-color: #444;
85
- color: #ccc;
86
- padding: 3px;
87
- }
88
-
89
- .summary_bar .summary {
90
- background-color: #232323;
91
- border: 1px solid #444;
92
- }
93
-
94
- .navbar-default {
95
- background-color: #0F0F0F;
96
- border-color: #444;
97
- }
98
-
99
- .navbar-default .navbar-nav > .active > a,
100
- .navbar-default .navbar-nav > .active > a:focus,
101
- .navbar-default .navbar-nav > .active > a:hover {
102
- color: #ddd;
103
- background-color: #333;
104
- }
105
-
106
- .navbar-default .navbar-nav > li > a:hover {
107
- color: #ddd;
108
- }
109
-
110
- .pagination > li > a,
111
- .pagination > li > a:hover,
112
- .pagination > li > span {
113
- color: #ddd;
114
- background-color: #333;
115
- border-color: #444;
116
- }
117
- .pagination > .disabled > a,
118
- .pagination > .disabled > a:focus,
119
- .pagination > .disabled > a:hover,
120
- .pagination > .disabled > span,
121
- .pagination > .disabled > span:focus,
122
- .pagination > .disabled > span:hover {
123
- color: #ddd;
124
- background-color: #333;
125
- border-color: #444;
126
- }
127
-
128
- .stat {
129
- border: 1px solid #888;
130
- }
131
-
132
- .rickshaw_graph .detail {
133
- background: #888;
134
- }
135
- .rickshaw_graph .x_tick {
136
- border-color: #888;
137
- }
138
-
139
- .rickshaw_graph .y_ticks.glow text {
140
- fill: #ddd;
141
- color: #ddd;
142
- }
143
-
144
- .info-circle {
145
- color: #222;
146
- background-color: #888;
147
- }
@@ -1,153 +0,0 @@
1
- .navbar-right {
2
- float: left !important;
3
- }
4
-
5
- footer .edits {
6
- margin-right: unset;
7
- margin-left: 40px;
8
- }
9
-
10
- .summary_bar .status {
11
- margin-left: unset;
12
- margin-right: 10px;
13
- }
14
- @media (max-width: 767px) and (min-width: 400px) {
15
- .summary_bar ul .desc {
16
- text-align: right;
17
- }
18
- .summary_bar ul .count {
19
- text-align: left;
20
- }
21
- }
22
- @media (max-width: 979px) and (min-width: 768px) {
23
- }
24
- .summary_bar ul .count {
25
- float: left;
26
- }
27
-
28
- form .btn {
29
- margin-right: unset;
30
- margin-left: 5px;
31
- }
32
-
33
- form .btn-group .btn {
34
- margin-right: unset;
35
- margin-left: 1px;
36
- }
37
-
38
- @media (max-width: 768px) {
39
- .navbar.navbar-fixed-top ul {
40
- margin-right: unset;
41
- margin-left: -15px!important;
42
- }
43
- }
44
-
45
- @media (width: 768px) {
46
- .navbar .poll-wrapper {
47
- margin: 4px 0 0 4px;
48
- }
49
- }
50
-
51
- .navbar-footer .navbar ul.nav a.navbar-brand {
52
- padding: 0 0 0 15px;
53
- }
54
-
55
- .navbar-fixed-bottom li {
56
- margin-right: unset;
57
- margin-left: 20px;
58
- }
59
-
60
- .status-active {
61
- background-position: 100% 0;
62
- }
63
-
64
- .status-idle {
65
- background-position: 100% -54px;
66
- }
67
-
68
- .stat {
69
- float: right;
70
- margin-right: unset;
71
- margin-left: 20px;
72
- }
73
-
74
- .stat:last-child {
75
- margin-left: 0;
76
- }
77
-
78
- @media (max-width: 767px) {
79
- .stat {
80
- float: right;
81
- margin-right: unset;
82
- margin-left: 10px;
83
- text-align: right;
84
- }
85
- .stat h3{
86
- float: left;
87
- margin: 5px 5px 5px 10px;
88
- }
89
- .stat p{
90
- font-size: 1em;
91
- margin: 5px 10px 5px 5px;
92
- }
93
- }
94
-
95
- /* Dashboard
96
- ********************************** */
97
- div.dashboard h3 {
98
- float: right;
99
- }
100
-
101
- div.interval-slider {
102
- float: left;
103
- }
104
-
105
- #realtime-legend {
106
- justify-content: start;
107
- }
108
-
109
- /* Beacon
110
- ********************************** */
111
-
112
- .beacon .dot,
113
- .beacon .ring {
114
- right: 50%;
115
- }
116
-
117
- .beacon .dot {
118
- margin: -5px -5px 0 0;
119
- }
120
-
121
- .beacon .ring {
122
- margin: -14px -14px 0 0;
123
- }
124
-
125
- .history-heading {
126
- padding-right: unset;
127
- padding-left: 15px;
128
- }
129
-
130
- @media (max-width: 767px) {
131
- .navbar.navbar-fixed-top ul {
132
- margin-left: 0;
133
- }
134
-
135
- .navbar.navbar-fixed-top li {
136
- margin-left: 0;
137
- }
138
-
139
- .navbar.navbar-fixed-bottom ul {
140
- margin-left: 0;
141
- }
142
-
143
- .navbar.navbar-fixed-bottom li {
144
- margin-left: 0;
145
- }
146
- }
147
-
148
- @media (max-width: 500px) {
149
- .navbar-footer .navbar ul.nav a.navbar-brand {
150
- padding-right: unset;
151
- padding-left: 5px;
152
- }
153
- }