rocketjob_mission_control 1.2.4 → 2.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +201 -0
  3. data/README.md +85 -0
  4. data/Rakefile +12 -18
  5. data/app/assets/javascripts/rocket_job_mission_control/application.js +3 -0
  6. data/app/assets/javascripts/rocket_job_mission_control/base.js.coffee +9 -12
  7. data/app/assets/javascripts/rocket_job_mission_control/datatable.js.coffee +31 -0
  8. data/app/assets/javascripts/rocket_job_mission_control/dirmon_entries.js.coffee +0 -1
  9. data/app/assets/stylesheets/rocket_job_mission_control/application.scss +2 -0
  10. data/app/assets/stylesheets/rocket_job_mission_control/base.scss +310 -357
  11. data/app/assets/stylesheets/rocket_job_mission_control/bootstrap_and_overrides.scss +474 -3
  12. data/app/assets/stylesheets/rocket_job_mission_control/callout.scss +57 -12
  13. data/app/assets/stylesheets/rocket_job_mission_control/jobs.scss +3 -2
  14. data/app/assets/stylesheets/rocket_job_mission_control/worker_processes.scss +9 -0
  15. data/app/controllers/rocket_job_mission_control/active_processes_controller.rb +26 -0
  16. data/app/controllers/rocket_job_mission_control/dirmon_entries/index_filters_controller.rb +50 -0
  17. data/app/controllers/rocket_job_mission_control/dirmon_entries_controller.rb +11 -14
  18. data/app/controllers/rocket_job_mission_control/jobs/failures_controller.rb +2 -2
  19. data/app/controllers/rocket_job_mission_control/jobs/index_filters_controller.rb +69 -0
  20. data/app/controllers/rocket_job_mission_control/jobs_controller.rb +10 -12
  21. data/app/controllers/rocket_job_mission_control/workers/index_filters_controller.rb +50 -0
  22. data/app/controllers/rocket_job_mission_control/workers_controller.rb +14 -5
  23. data/app/datatables/rocket_job_mission_control/active_processes_datatable.rb +79 -0
  24. data/app/datatables/rocket_job_mission_control/completed_jobs_datatable.rb +26 -0
  25. data/app/datatables/rocket_job_mission_control/dirmon_entries_datatable.rb +95 -0
  26. data/app/datatables/rocket_job_mission_control/interrupted_jobs_datatable.rb +25 -0
  27. data/app/datatables/rocket_job_mission_control/jobs_datatable.rb +95 -0
  28. data/app/datatables/rocket_job_mission_control/queued_jobs_datatable.rb +22 -0
  29. data/app/datatables/rocket_job_mission_control/running_jobs_datatable.rb +35 -0
  30. data/app/datatables/rocket_job_mission_control/scheduled_jobs_datatable.rb +30 -0
  31. data/app/datatables/rocket_job_mission_control/workers_datatable.rb +127 -0
  32. data/app/helpers/rocket_job_mission_control/application_helper.rb +21 -2
  33. data/app/helpers/rocket_job_mission_control/dirmon_entries_helper.rb +7 -0
  34. data/app/helpers/rocket_job_mission_control/jobs_helper.rb +9 -26
  35. data/app/helpers/rocket_job_mission_control/workers_helper.rb +18 -6
  36. data/app/interactors/rocket_job_mission_control/dirmon_entries/search.rb +19 -0
  37. data/app/interactors/rocket_job_mission_control/jobs/search.rb +19 -0
  38. data/app/interactors/rocket_job_mission_control/workers/search.rb +19 -0
  39. data/app/models/job_failures.rb +5 -5
  40. data/app/views/layouts/rocket_job_mission_control/application.html.haml +22 -22
  41. data/app/views/layouts/rocket_job_mission_control/partials/_header.html.haml +33 -18
  42. data/app/views/layouts/rocket_job_mission_control/partials/_sidebar.html.haml +11 -24
  43. data/app/views/rocket_job_mission_control/active_processes/index.html.haml +24 -0
  44. data/app/views/rocket_job_mission_control/dirmon_entries/_form.html.haml +11 -10
  45. data/app/views/rocket_job_mission_control/dirmon_entries/_properties.html.haml +6 -3
  46. data/app/views/rocket_job_mission_control/dirmon_entries/_sidebar.html.haml +27 -0
  47. data/app/views/rocket_job_mission_control/dirmon_entries/_status.html.haml +0 -3
  48. data/app/views/rocket_job_mission_control/dirmon_entries/edit.html.haml +3 -7
  49. data/app/views/rocket_job_mission_control/dirmon_entries/index.html.haml +17 -10
  50. data/app/views/rocket_job_mission_control/dirmon_entries/index_filters/disabled.html.haml +17 -0
  51. data/app/views/rocket_job_mission_control/dirmon_entries/index_filters/enabled.html.haml +17 -0
  52. data/app/views/rocket_job_mission_control/dirmon_entries/index_filters/failed.html.haml +17 -0
  53. data/app/views/rocket_job_mission_control/dirmon_entries/index_filters/pending.html.haml +17 -0
  54. data/app/views/rocket_job_mission_control/dirmon_entries/new.html.haml +5 -8
  55. data/app/views/rocket_job_mission_control/dirmon_entries/show.html.haml +18 -22
  56. data/app/views/rocket_job_mission_control/jobs/_sidebar.html.haml +28 -0
  57. data/app/views/rocket_job_mission_control/jobs/failures/index.html.haml +2 -2
  58. data/app/views/rocket_job_mission_control/jobs/index.html.haml +23 -10
  59. data/app/views/rocket_job_mission_control/jobs/index_filters/aborted.html.haml +22 -0
  60. data/app/views/rocket_job_mission_control/jobs/index_filters/completed.html.haml +23 -0
  61. data/app/views/rocket_job_mission_control/jobs/index_filters/failed.html.haml +22 -0
  62. data/app/views/rocket_job_mission_control/jobs/index_filters/paused.html.haml +22 -0
  63. data/app/views/rocket_job_mission_control/jobs/index_filters/queued.html.haml +23 -0
  64. data/app/views/rocket_job_mission_control/jobs/index_filters/running.html.haml +24 -0
  65. data/app/views/rocket_job_mission_control/jobs/index_filters/scheduled.html.haml +23 -0
  66. data/app/views/rocket_job_mission_control/jobs/show.html.haml +5 -8
  67. data/app/views/rocket_job_mission_control/workers/_sidebar.html.haml +20 -0
  68. data/app/views/rocket_job_mission_control/workers/index.html.haml +36 -59
  69. data/app/views/rocket_job_mission_control/workers/index_filters/paused.html.haml +37 -0
  70. data/app/views/rocket_job_mission_control/workers/index_filters/running.html.haml +37 -0
  71. data/app/views/rocket_job_mission_control/workers/index_filters/starting.html.haml +37 -0
  72. data/app/views/rocket_job_mission_control/workers/index_filters/stopping.html.haml +37 -0
  73. data/config/routes.rb +28 -5
  74. data/lib/rocket_job_mission_control/engine.rb +2 -0
  75. data/lib/rocket_job_mission_control/version.rb +1 -1
  76. data/spec/controllers/application_controller_spec.rb +1 -1
  77. data/spec/controllers/dirmon_entries_controller_spec.rb +35 -97
  78. data/spec/controllers/jobs/failures_controller_spec.rb +4 -4
  79. data/spec/controllers/jobs_controller_spec.rb +10 -80
  80. data/spec/dummy/config/environments/development.rb +7 -7
  81. data/spec/dummy/config/environments/test.rb +9 -9
  82. data/spec/dummy/log/test.log +5446 -23487
  83. data/spec/helpers/application_helper_spec.rb +58 -0
  84. data/spec/helpers/jobs_helper_spec.rb +0 -65
  85. data/spec/helpers/slices_helper_spec.rb +1 -1
  86. data/spec/helpers/workers_helper_spec.rb +1 -1
  87. metadata +64 -44
  88. data/MIT-LICENSE +0 -20
  89. data/app/assets/javascripts/rocket_job_mission_control/jobs.js.coffee +0 -11
  90. data/app/views/rocket_job_mission_control/dirmon_entries/_list.html.haml +0 -31
  91. data/app/views/rocket_job_mission_control/jobs/_list.html.haml +0 -35
  92. data/app/views/rocket_job_mission_control/jobs/running.html.haml +0 -37
  93. data/spec/dummy/log/development.log +0 -0
  94. data/spec/views/workers/index.html.haml_spec.rb +0 -23
@@ -1,6 +1,477 @@
1
- $border-radius-small: 2px;
2
- $border-radius-base: 3px;
3
- $border-radius-large: 4px;
1
+ $gray-darker: lighten(#000, 13.5%); // #222
2
+ $gray-dark: lighten(#000, 20%); // #333
3
+ $gray: lighten(#000, 33.5%); // #555
4
+ $gray-light: lighten(#000, 60%); // #999
5
+ $gray-lighter: lighten(#000, 93.5%); // #eee
6
+
7
+ $brand-primary: #3182C5;
8
+ $brand-success: #5cb85c;
9
+ $brand-info: #5bc0de;
10
+ $brand-warning: #FF9900;
11
+ $brand-danger: #d9534f;
12
+ $brand-purple: #8419f1;
13
+
14
+ $body-bg: #fff;
15
+ $text-color: $gray-dark;
16
+
17
+ $link-color: $brand-primary;
18
+ $link-hover-color: darken($link-color, 15%);
19
+
20
+ $font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif;
21
+ $font-family-serif: Georgia, "Times New Roman", Times, serif;
22
+ $font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace;
23
+ $font-family-base: $font-family-sans-serif;
24
+ $font-size-base: 13px;
25
+ $font-size-large: ceil(($font-size-base * 1.25)); // ~18px
26
+ $font-size-small: ceil(($font-size-base * 0.85)); // ~12px
27
+ $font-size-h1: floor(($font-size-base * 2.6)); // ~36px
28
+ $font-size-h2: floor(($font-size-base * 2.15)); // ~30px
29
+ $font-size-h3: ceil(($font-size-base * 1.7)); // ~24px
30
+ $font-size-h4: ceil(($font-size-base * 1.25)); // ~18px
31
+ $font-size-h5: $font-size-base;
32
+ $font-size-h6: ceil(($font-size-base * 0.85)); // ~12px
33
+
34
+ $line-height-base: 1.428571429; // 20/14
35
+ $line-height-computed: floor(($font-size-base * $line-height-base)); // ~20px
36
+
37
+ $headings-font-family: inherit;
38
+ $headings-font-weight: 500;
39
+ $headings-line-height: 1.1;
40
+ $headings-color: inherit;
41
+
42
+ $icon-font-path: "bootstrap/";
43
+ $icon-font-name: "glyphicons-halflings-regular";
44
+ $icon-font-svg-id: "glyphicons_halflingsregular";
45
+
46
+ $padding-xs-vertical: 1px;
47
+ $padding-small-vertical: 5px;
48
+ $padding-base-vertical: 6px;
49
+ $padding-large-vertical: 10px;
50
+
51
+ $padding-xs-horizontal: 5px;
52
+ $padding-small-horizontal: 10px;
53
+ $padding-base-horizontal: 12px;
54
+ $padding-large-horizontal: 16px;
55
+
56
+ $line-height-small: 1.5;
57
+ $line-height-large: 1.33;
58
+
59
+ $border-radius-small: 1px;
60
+ $border-radius-base: 2px;
61
+ $border-radius-large: 3px;
62
+
63
+ $component-active-color: #fff;
64
+ $component-active-bg: $brand-primary;
65
+
66
+ $caret-width-base: 4px;
67
+ $caret-width-large: 5px;
68
+
69
+ $table-cell-padding: 8px;
70
+ $table-condensed-cell-padding: 5px;
71
+
72
+ $table-bg: transparent;
73
+ $table-bg-accent: #f9f9f9;
74
+ $table-bg-hover: #f5f5f5;
75
+ $table-bg-active: $table-bg-hover;
76
+ $table-border-color: #ddd;
77
+
78
+ $btn-font-weight: normal;
79
+
80
+ $btn-default-color: #333;
81
+ $btn-default-bg: #fff;
82
+ $btn-default-border: #ccc;
83
+
84
+ $btn-primary-color: #fff;
85
+ $btn-primary-bg: $brand-primary;
86
+ $btn-primary-border: darken($btn-primary-bg, 5%);
87
+
88
+ $btn-success-color: #fff;
89
+ $btn-success-bg: $brand-success;
90
+ $btn-success-border: darken($btn-success-bg, 5%);
91
+
92
+ $btn-info-color: #fff;
93
+ $btn-info-bg: $brand-info;
94
+ $btn-info-border: darken($btn-info-bg, 5%);
95
+
96
+ $btn-warning-color: #fff;
97
+ $btn-warning-bg: $brand-warning;
98
+ $btn-warning-border: darken($btn-warning-bg, 5%);
99
+
100
+ $btn-danger-color: #fff;
101
+ $btn-danger-bg: $brand-danger;
102
+ $btn-danger-border: darken($btn-danger-bg, 5%);
103
+
104
+ $btn-link-disabled-color: $gray-light;
105
+
106
+ $input-bg: #fff;
107
+ $input-bg-disabled: $gray-lighter;
108
+
109
+ $input-color: $gray;
110
+ $input-border: #ddd;
111
+ $input-border-radius: $border-radius-base;
112
+ $input-border-focus: #66afe9;
113
+
114
+ $input-color-placeholder: $gray-light;
115
+
116
+ $input-height-base: ($line-height-computed + ($padding-base-vertical * 3) + 4);
117
+ $input-height-large: (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2);
118
+ $input-height-small: (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2);
119
+
120
+ $legend-color: $gray-dark;
121
+ $legend-border-color: #e5e5e5;
122
+
123
+ $input-group-addon-bg: $gray-lighter;
124
+ $input-group-addon-border-color: $input-border;
125
+
126
+ $dropdown-bg: #fff;
127
+ $dropdown-border: rgba(0,0,0,.15);
128
+ $dropdown-fallback-border: #ccc;
129
+ $dropdown-divider-bg: #e5e5e5;
130
+ $dropdown-link-color: $gray-dark;
131
+ $dropdown-link-hover-color: darken($gray-dark, 5%);
132
+ $dropdown-link-hover-bg: #f5f5f5;
133
+ $dropdown-link-active-color: $component-active-color;
134
+ $dropdown-link-active-bg: $component-active-bg;
135
+ $dropdown-link-disabled-color: $gray-light;
136
+ $dropdown-header-color: $gray-light;
137
+ $dropdown-caret-color: #000;
138
+
139
+ $zindex-navbar: 1000;
140
+ $zindex-dropdown: 1000;
141
+ $zindex-popover: 1010;
142
+ $zindex-tooltip: 1030;
143
+ $zindex-navbar-fixed: 1030;
144
+ $zindex-modal-background: 1040;
145
+ $zindex-modal: 1050;
146
+
147
+ $screen-xs: 480px;
148
+ $screen-xs-min: $screen-xs;
149
+ $screen-phone: $screen-xs-min;
150
+
151
+ $screen-sm: 768px;
152
+ $screen-sm-min: $screen-sm;
153
+ $screen-tablet: $screen-sm-min;
154
+
155
+ $screen-md: 992px;
156
+ $screen-md-min: $screen-md;
157
+ $screen-desktop: $screen-md-min;
158
+
159
+ $screen-lg: 1200px;
160
+ $screen-lg-min: $screen-lg;
161
+ $screen-lg-desktop: $screen-lg-min;
162
+
163
+ $screen-xs-max: ($screen-sm-min - 1);
164
+ $screen-sm-max: ($screen-md-min - 1);
165
+ $screen-md-max: ($screen-lg-min - 1);
166
+
167
+ $grid-columns: 12;
168
+ $grid-gutter-width: 30px;
169
+ $grid-float-breakpoint: $screen-md-min;
170
+ $grid-float-breakpoint-max: ($grid-float-breakpoint - 1);
171
+
172
+ $container-tablet: ((720px + $grid-gutter-width));
173
+ $container-sm: $container-tablet;
174
+
175
+ $container-desktop: ((940px + $grid-gutter-width));
176
+ $container-md: $container-desktop;
177
+
178
+ $container-large-desktop: ((1140px + $grid-gutter-width));
179
+ $container-lg: $container-large-desktop;
180
+
181
+ $navbar-height: 50px;
182
+ $navbar-margin-bottom: 0px; // $line-height-computed
183
+ $navbar-border-radius: $border-radius-base;
184
+ $navbar-padding-horizontal: 0; //floor(($grid-gutter-width / 2))
185
+ $navbar-padding-vertical: (($navbar-height - $line-height-computed) / 2);
186
+ $navbar-collapse-max-height: 340px;
187
+
188
+ $navbar-default-color: #FFF;
189
+ $navbar-default-bg: #46484A;
190
+ $navbar-default-border: #46484A;
191
+
192
+ $navbar-default-link-color: #FFF;
193
+ $navbar-default-link-hover-color: #EEE;
194
+ $navbar-default-link-hover-bg: transparent;
195
+ $navbar-default-link-active-color: #FFF;
196
+ $navbar-default-link-active-bg: darken($navbar-default-bg, 6.5%);
197
+ $navbar-default-link-disabled-color: #ccc;
198
+ $navbar-default-link-disabled-bg: transparent;
199
+
200
+ $navbar-default-brand-color: $navbar-default-link-color;
201
+ $navbar-default-brand-hover-color: darken($navbar-default-brand-color, 10%);
202
+ $navbar-default-brand-hover-bg: transparent;
203
+
204
+ $navbar-default-toggle-hover-bg: #333;
205
+ $navbar-default-toggle-icon-bar-bg: #fff;
206
+ $navbar-default-toggle-border-color: #fff;
207
+
208
+ $navbar-inverse-color: $gray-light;
209
+ $navbar-inverse-bg: #222;
210
+ $navbar-inverse-border: darken($navbar-inverse-bg, 10%);
211
+
212
+ $navbar-inverse-link-color: $gray-light;
213
+ $navbar-inverse-link-hover-color: #fff;
214
+ $navbar-inverse-link-hover-bg: transparent;
215
+ $navbar-inverse-link-active-color: $navbar-inverse-link-hover-color;
216
+ $navbar-inverse-link-active-bg: darken($navbar-inverse-bg, 10%);
217
+ $navbar-inverse-link-disabled-color: #444;
218
+ $navbar-inverse-link-disabled-bg: transparent;
219
+
220
+ $navbar-inverse-brand-color: $navbar-inverse-link-color;
221
+ $navbar-inverse-brand-hover-color: #fff;
222
+ $navbar-inverse-brand-hover-bg: transparent;
223
+
224
+ $navbar-inverse-toggle-hover-bg: #333;
225
+ $navbar-inverse-toggle-icon-bar-bg: #fff;
226
+ $navbar-inverse-toggle-border-color: #333;
227
+
228
+ $nav-link-padding: 10px 10px;
229
+ $nav-link-hover-bg: $gray-lighter;
230
+ $nav-disabled-link-color: $gray-light;
231
+ $nav-disabled-link-hover-color: $gray-light;
232
+ $nav-open-link-hover-color: #fff;
233
+
234
+ $nav-tabs-border-color: #ddd;
235
+ $nav-tabs-link-hover-border-color: $gray-lighter;
236
+ $nav-tabs-active-link-hover-bg: $body-bg;
237
+ $nav-tabs-active-link-hover-color: $gray;
238
+ $nav-tabs-active-link-hover-border-color: #ddd;
239
+ $nav-tabs-justified-link-border-color: #ddd;
240
+ $nav-tabs-justified-active-link-border-color: $body-bg;
241
+
242
+ $nav-pills-border-radius: $border-radius-base;
243
+ $nav-pills-active-link-hover-bg: $component-active-bg;
244
+ $nav-pills-active-link-hover-color: $component-active-color;
245
+
246
+ $pagination-color: $link-color;
247
+ $pagination-bg: #fff;
248
+ $pagination-border: #ddd;
249
+
250
+ $pagination-hover-color: $link-hover-color;
251
+ $pagination-hover-bg: $gray-lighter;
252
+ $pagination-hover-border: #ddd;
253
+
254
+ $pagination-active-color: #fff;
255
+ $pagination-active-bg: $brand-primary;
256
+ $pagination-active-border: $brand-primary;
257
+
258
+ $pagination-disabled-color: $gray-light;
259
+ $pagination-disabled-bg: #fff;
260
+ $pagination-disabled-border: #ddd;
261
+
262
+ $pager-bg: $pagination-bg;
263
+ $pager-border: $pagination-border;
264
+ $pager-border-radius: 15px;
265
+
266
+ $pager-hover-bg: $pagination-hover-bg;
267
+
268
+ $pager-active-bg: $pagination-active-bg;
269
+ $pager-active-color: $pagination-active-color;
270
+
271
+ $pager-disabled-color: $pagination-disabled-color;
272
+
273
+ $jumbotron-padding: 30px;
274
+ $jumbotron-color: inherit;
275
+ $jumbotron-bg: $gray-lighter;
276
+ $jumbotron-heading-color: inherit;
277
+ $jumbotron-font-size: ceil(($font-size-base * 1.5));
278
+
279
+ $state-success-text: #3c763d;
280
+ $state-success-bg: #dff0d8;
281
+ $state-success-border: darken(adjust-hue($state-success-bg, -10), 5%);
282
+
283
+ $state-info-text: #31708f;
284
+ $state-info-bg: #d9edf7;
285
+ $state-info-border: darken(adjust-hue($state-info-bg, -10), 7%);
286
+
287
+ $state-warning-text: #8a6d3b;
288
+ $state-warning-bg: #fcf8e3;
289
+ $state-warning-border: darken(adjust-hue($state-warning-bg, -10), 5%);
290
+
291
+ $state-danger-text: #a94442;
292
+ $state-danger-bg: #f2dede;
293
+ $state-danger-border: darken(adjust-hue($state-danger-bg, -10), 5%);
294
+
295
+ $tooltip-max-width: 200px;
296
+ $tooltip-color: #fff;
297
+ $tooltip-bg: #000;
298
+ $tooltip-opacity: .9;
299
+
300
+ $tooltip-arrow-width: 5px;
301
+ $tooltip-arrow-color: $tooltip-bg;
302
+
303
+ $popover-bg: #fff;
304
+ $popover-max-width: 276px;
305
+ $popover-border-color: rgba(0,0,0,.2);
306
+ $popover-fallback-border-color: #ccc;
307
+
308
+ $popover-title-bg: darken($popover-bg, 3%);
309
+ $popover-arrow-width: 10px;
310
+ $popover-arrow-color: #fff;
311
+ $popover-arrow-outer-width: ($popover-arrow-width + 1);
312
+ $popover-arrow-outer-color: fadein($popover-border-color, 5%);
313
+ $popover-arrow-outer-fallback-color: darken($popover-fallback-border-color, 20%);
314
+
315
+ $label-default-bg: $gray-light;
316
+ $label-primary-bg: $brand-primary;
317
+ $label-success-bg: $brand-success;
318
+ $label-info-bg: $brand-info;
319
+ $label-warning-bg: $brand-warning;
320
+ $label-danger-bg: $brand-danger;
321
+ $label-color: #fff;
322
+ $label-link-hover-color: #fff;
323
+
324
+ $modal-inner-padding: 15px;
325
+ $modal-title-padding: 15px;
326
+ $modal-title-line-height: $line-height-base;
327
+ $modal-content-bg: #fff;
328
+ $modal-content-border-color: rgba(0,0,0,.2);
329
+ $modal-content-fallback-border-color: #999;
330
+ $modal-backdrop-bg: #000;
331
+ $modal-backdrop-opacity: .5;
332
+ $modal-header-border-color: #e5e5e5;
333
+ $modal-footer-border-color: $modal-header-border-color;
334
+
335
+ $modal-lg: 900px;
336
+ $modal-md: 600px;
337
+ $modal-sm: 300px;
338
+
339
+ $alert-padding: 15px;
340
+ $alert-border-radius: $border-radius-base;
341
+ $alert-link-font-weight: bold;
342
+
343
+ $alert-success-bg: $state-success-bg;
344
+ $alert-success-text: $state-success-text;
345
+ $alert-success-border: $state-success-border;
346
+
347
+ $alert-info-bg: $state-info-bg;
348
+ $alert-info-text: $state-info-text;
349
+ $alert-info-border: $state-info-border;
350
+
351
+ $alert-warning-bg: $state-warning-bg;
352
+ $alert-warning-text: $state-warning-text;
353
+ $alert-warning-border: $state-warning-border;
354
+
355
+ $alert-danger-bg: $state-danger-bg;
356
+ $alert-danger-text: $state-danger-text;
357
+ $alert-danger-border: $state-danger-border;
358
+
359
+ $progress-bg: #f5f5f5;
360
+ $progress-bar-color: #fff;
361
+ $progress-bar-bg: $brand-primary;
362
+ $progress-bar-success-bg: $brand-success;
363
+ $progress-bar-warning-bg: $brand-warning;
364
+ $progress-bar-danger-bg: $brand-danger;
365
+ $progress-bar-info-bg: $brand-info;
366
+
367
+ $list-group-bg: #fff;
368
+ $list-group-border: #ddd;
369
+ $list-group-border-radius: $border-radius-base;
370
+
371
+ $list-group-hover-bg: #f5f5f5;
372
+ $list-group-active-color: $component-active-color;
373
+ $list-group-active-bg: $component-active-bg;
374
+ $list-group-active-border: $list-group-active-bg;
375
+ $list-group-active-text-color: lighten($list-group-active-bg, 40%);
376
+
377
+ $list-group-link-color: #555;
378
+ $list-group-link-heading-color: #333;
379
+
380
+ $panel-bg: #fff;
381
+ $panel-body-padding: 15px;
382
+ $panel-border-radius: $border-radius-base;
383
+
384
+ $panel-inner-border: #e3e3e3;
385
+ $panel-footer-bg: #f5f5f5;
386
+
387
+ $panel-default-text: $gray-dark;
388
+ $panel-default-border: #e3e3e3;
389
+ $panel-default-heading-bg: #f5f5f5;
390
+
391
+ $panel-primary-text: #fff;
392
+ $panel-primary-border: $brand-primary;
393
+ $panel-primary-heading-bg: $brand-primary;
394
+
395
+ $panel-success-text: $state-success-text;
396
+ $panel-success-border: $state-success-border;
397
+ $panel-success-heading-bg: $state-success-bg;
398
+
399
+ $panel-info-text: $state-info-text;
400
+ $panel-info-border: $state-info-border;
401
+ $panel-info-heading-bg: $state-info-bg;
402
+
403
+ $panel-warning-text: $state-warning-text;
404
+ $panel-warning-border: $state-warning-border;
405
+ $panel-warning-heading-bg: $state-warning-bg;
406
+
407
+ $panel-danger-text: $state-danger-text;
408
+ $panel-danger-border: $state-danger-border;
409
+ $panel-danger-heading-bg: $state-danger-bg;
410
+
411
+ $thumbnail-padding: 4px;
412
+ $thumbnail-bg: $body-bg;
413
+ $thumbnail-border: #ddd;
414
+ $thumbnail-border-radius: $border-radius-base;
415
+
416
+ $thumbnail-caption-color: $text-color;
417
+ $thumbnail-caption-padding: 9px;
418
+
419
+ $well-bg: #f5f5f5;
420
+ $well-border: darken($well-bg, 7%);
421
+
422
+ $badge-color: #fff;
423
+ $badge-link-hover-color: #fff;
424
+ $badge-bg: $gray-light;
425
+ $badge-active-color: $link-color;
426
+ $badge-active-bg: #fff;
427
+
428
+ $badge-font-weight: bold;
429
+ $badge-line-height: 1;
430
+ $badge-border-radius: 10px;
431
+
432
+ $breadcrumb-padding-vertical: 8px;
433
+ $breadcrumb-padding-horizontal: 15px;
434
+ $breadcrumb-bg: #f5f5f5;
435
+ $breadcrumb-color: #ccc;
436
+ $breadcrumb-active-color: $gray-light;
437
+ $breadcrumb-separator: "/";
438
+
439
+ $carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6);
440
+ $carousel-control-color: #fff;
441
+ $carousel-control-width: 15%;
442
+ $carousel-control-opacity: .5;
443
+ $carousel-control-font-size: 20px;
444
+ $carousel-indicator-active-bg: #fff;
445
+ $carousel-indicator-border-color: #fff;
446
+ $carousel-caption-color: #fff;
447
+
448
+ $close-font-weight: bold;
449
+ $close-color: #000;
450
+ $close-text-shadow: 0 1px 0 #fff;
451
+
452
+ $code-color: #c7254e;
453
+ $code-bg: #f9f2f4;
454
+
455
+ $kbd-color: #fff;
456
+ $kbd-bg: #333;
457
+
458
+ $pre-bg: #f5f5f5;
459
+ $pre-color: $gray-dark;
460
+ $pre-border-color: #ccc;
461
+ $pre-scrollable-max-height: 340px;
462
+
463
+ $text-muted: $gray-light;
464
+ $abbr-border-color: $gray-light;
465
+ $headings-small-color: $gray-light;
466
+
467
+ $blockquote-small-color: $gray-light;
468
+ $blockquote-font-size: ($font-size-base * 1.25);
469
+ $blockquote-border-color: $gray-lighter;
470
+
471
+ $page-header-border-color: $gray-lighter;
472
+ $hr-border: $gray-lighter;
473
+
474
+ $component-offset-horizontal: 180px;
4
475
 
5
476
  @import "bootstrap-sprockets";
6
477
  @import "bootstrap";
@@ -5,48 +5,93 @@
5
5
  }
6
6
  .callout-queued {
7
7
  border-left-color: darkgrey;
8
+ a {
9
+ color: darkgrey;
10
+ }
8
11
  }
9
12
  .callout-running {
10
13
  border-left-color: #337ab7;
14
+ a {
15
+ color: #337ab7;
16
+ }
11
17
  }
12
18
  .callout-completed {
13
19
  border-left-color: green;
20
+ a {
21
+ color: green;
22
+ }
14
23
  }
15
24
  .callout-paused {
16
25
  border-left-color: orange;
26
+ a {
27
+ color: orange;
28
+ }
17
29
  }
18
30
  .callout-failed {
19
31
  border-left-color: red;
32
+ a {
33
+ color: red;
34
+ }
20
35
  }
21
36
  .callout-aborted {
22
37
  border-left-color: darkorange;
38
+ a {
39
+ color: darkorange;
40
+ }
23
41
  }
24
42
 
25
43
  /* Used by Dirmon Entries */
44
+ .callout-pending {
45
+ border-color: orange;
46
+ a {
47
+ color: orange;
48
+ }
49
+ }
26
50
  .callout-enabled {
27
51
  border-left-color: green;
52
+ a {
53
+ color: green;
54
+ }
28
55
  }
29
56
  .callout-disabled {
30
- border-left-color: orange;
57
+ border-left-color: grey;
58
+ a {
59
+ color: grey;
60
+ }
31
61
  }
32
62
 
33
63
  /* Used by Workers */
34
64
  .callout-top {
35
65
  border: 1px solid #eee;
36
- border-top-width: 5px;
66
+ border-left-width: 5px;
37
67
  }
38
- .callout-info-top {
39
- border-top-color: #1b809e;
68
+ .callout-info {
69
+ border-left-color: #1b809e;
70
+ .title {
71
+ color: #1b809e;
72
+ }
40
73
  }
41
- .callout-success-top {
42
- border-top-color: #3c763d;
74
+ .callout-success {
75
+ border-left-color: #3c763d;
76
+ .title {
77
+ color: #3c763d;
78
+ }
43
79
  }
44
- .callout-warning-top {
45
- border-top-color: #aa6708;
80
+ .callout-warning {
81
+ border-left-color: #aa6708;
82
+ .title {
83
+ color: #aa6708;
84
+ }
46
85
  }
47
- .callout-alert-top {
48
- border-top-color: #ce4844;
86
+ .callout-alert {
87
+ border-left-color: #ce4844;
88
+ .title {
89
+ color: #ce4844;
90
+ }
49
91
  }
50
- .callout-zombie-top {
51
- border-top-color: darkred;
92
+ .callout-zombie {
93
+ border-left-color: darkred;
94
+ .title {
95
+ color: darkred;
96
+ }
52
97
  }
@@ -15,16 +15,17 @@
15
15
 
16
16
  .list {
17
17
  .progress {
18
- width: 16em;
18
+ width: 10em;
19
19
  height: 1em;
20
20
  margin: 5px 0px 0px 10px;
21
+ display: inline-block;
21
22
  -webkit-border-radius: 0 !important;
22
23
  -moz-border-radius: 0 !important;
23
24
  border-radius: 0 !important;
24
25
  }
25
26
 
26
27
  .progress-bar {
27
- min-width: 1em;
28
+ min-width: 0em;
28
29
  }
29
30
  }
30
31
  }
@@ -0,0 +1,9 @@
1
+ #workers {
2
+ .worker-collection-actions {
3
+ margin: 1em 0;
4
+ }
5
+ .actions > a {
6
+ display: inline;
7
+ margin: 5px;
8
+ }
9
+ }
@@ -0,0 +1,26 @@
1
+ module RocketJobMissionControl
2
+ class ActiveProcessesController < RocketJobMissionControl::ApplicationController
3
+ def index
4
+ # The list of workers actively processing jobs
5
+ # [Array[Array<worker_name [String], job [RocketJob::Job], slice_id [String]]]
6
+ sorted = true
7
+ t = Time.new
8
+ busy = []
9
+ RocketJob::Job.running.sort(:worker_name).collect do |job|
10
+ if job.respond_to?(:input)
11
+ sorted = false
12
+ job.input.each('state' => 'running') do |slice|
13
+ busy << [slice.worker_name, job, slice.started_at]
14
+ end
15
+ else
16
+ busy << [job.worker_name, job, job.started_at]
17
+ end
18
+ end
19
+ @busy = sorted ? busy : busy.sort_by { |result| result.first }
20
+ respond_to do |format|
21
+ format.html
22
+ format.json { render(json: ActiveProcessesDatatable.new(view_context, @busy)) }
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,50 @@
1
+ module RocketJobMissionControl
2
+ module DirmonEntries
3
+ class IndexFiltersController < RocketJobMissionControl::ApplicationController
4
+ before_filter :load_dirmon_entries
5
+ before_filter :show_sidebar
6
+
7
+ def pending
8
+ @dirmons = @dirmons.where(state: :pending)
9
+ respond_to do |format|
10
+ format.html
11
+ format.json { render(json: DirmonEntriesDatatable.new(view_context, @dirmons)) }
12
+ end
13
+ end
14
+
15
+ def enabled
16
+ @dirmons = @dirmons.where(state: :enabled)
17
+ respond_to do |format|
18
+ format.html
19
+ format.json { render(json: DirmonEntriesDatatable.new(view_context, @dirmons)) }
20
+ end
21
+ end
22
+
23
+ def failed
24
+ @dirmons = @dirmons.where(state: :failed)
25
+ respond_to do |format|
26
+ format.html
27
+ format.json { render(json: DirmonEntriesDatatable.new(view_context, @dirmons)) }
28
+ end
29
+ end
30
+
31
+ def disabled
32
+ @dirmons = @dirmons.where(state: :disabled)
33
+ respond_to do |format|
34
+ format.html
35
+ format.json { render(json: DirmonEntriesDatatable.new(view_context, @dirmons)) }
36
+ end
37
+ end
38
+
39
+ private
40
+
41
+ def load_dirmon_entries
42
+ @dirmons = RocketJob::DirmonEntry.where()
43
+ end
44
+
45
+ def show_sidebar
46
+ @dirmon_sidebar = true
47
+ end
48
+ end
49
+ end
50
+ end