rocketjob_mission_control 5.0.0 → 6.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/Rakefile +1 -2
  4. data/app/assets/config/manifest.js +3 -0
  5. data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  6. data/app/assets/fonts/glyphicons-halflings-regular.svg +288 -0
  7. data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  8. data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  9. data/app/assets/fonts/glyphicons-halflings-regular.woff2 +0 -0
  10. data/app/assets/javascripts/rocket_job_mission_control/application.js +10 -11
  11. data/app/assets/javascripts/rocket_job_mission_control/base.js +1 -1
  12. data/app/assets/javascripts/rocket_job_mission_control/bootstrap.min.js +6 -0
  13. data/app/assets/javascripts/rocket_job_mission_control/{datatable.js → datatable_init.js} +0 -0
  14. data/{vendor/assets/javascripts → app/assets/javascripts/rocket_job_mission_control}/datatables.min.js +0 -0
  15. data/app/assets/javascripts/rocket_job_mission_control/dirmon_entries.js +1 -1
  16. data/app/assets/javascripts/rocket_job_mission_control/jquery-3.5.1.min.js +2 -0
  17. data/app/assets/javascripts/rocket_job_mission_control/nested_fields.js +112 -0
  18. data/app/assets/javascripts/rocket_job_mission_control/selectize.min.js +3 -0
  19. data/app/assets/javascripts/rocket_job_mission_control/selectize_init.js +6 -0
  20. data/app/assets/stylesheets/rocket_job_mission_control/{application.scss → application.css} +9 -8
  21. data/app/assets/stylesheets/rocket_job_mission_control/base.css +420 -0
  22. data/app/assets/stylesheets/rocket_job_mission_control/bootstrap.min.css.erb +6 -0
  23. data/app/assets/stylesheets/rocket_job_mission_control/bootstrap.min.css.map +1 -0
  24. data/app/assets/stylesheets/rocket_job_mission_control/{callout.scss → callout.css} +50 -52
  25. data/{vendor/assets/stylesheets → app/assets/stylesheets/rocket_job_mission_control}/datatables.min.css +0 -0
  26. data/{vendor/assets/stylesheets → app/assets/stylesheets/rocket_job_mission_control}/fontawesome-all.min.css.erb +0 -0
  27. data/app/assets/stylesheets/rocket_job_mission_control/jobs.css +56 -0
  28. data/app/assets/stylesheets/rocket_job_mission_control/selectize.bootstrap3.css +1 -0
  29. data/app/assets/stylesheets/rocket_job_mission_control/selectize.css +19 -0
  30. data/app/assets/stylesheets/rocket_job_mission_control/worker_processes.css +7 -0
  31. data/app/controllers/rocket_job_mission_control/application_controller.rb +3 -1
  32. data/app/controllers/rocket_job_mission_control/dirmon_entries_controller.rb +23 -23
  33. data/app/controllers/rocket_job_mission_control/jobs_controller.rb +50 -7
  34. data/app/controllers/rocket_job_mission_control/servers_controller.rb +7 -7
  35. data/app/datatables/rocket_job_mission_control/dirmon_entries_datatable.rb +1 -1
  36. data/app/datatables/rocket_job_mission_control/jobs_datatable.rb +1 -1
  37. data/app/helpers/rocket_job_mission_control/application_helper.rb +51 -26
  38. data/app/helpers/rocket_job_mission_control/dirmon_entries_helper.rb +12 -0
  39. data/app/helpers/rocket_job_mission_control/jobs_helper.rb +76 -8
  40. data/app/helpers/rocket_job_mission_control/servers_helper.rb +4 -0
  41. data/app/models/rocket_job_mission_control/dirmon_sanitizer.rb +68 -0
  42. data/app/models/rocket_job_mission_control/job_sanitizer.rb +37 -0
  43. data/app/views/layouts/rocket_job_mission_control/application.html.erb +2 -2
  44. data/app/views/layouts/rocket_job_mission_control/partials/_flash.html.erb +4 -4
  45. data/app/views/rocket_job_mission_control/dirmon_entries/_form.html.erb +78 -42
  46. data/app/views/rocket_job_mission_control/dirmon_entries/_input_categories.html.erb +59 -0
  47. data/app/views/rocket_job_mission_control/dirmon_entries/_input_category_fields.html.erb +56 -0
  48. data/app/views/rocket_job_mission_control/dirmon_entries/_output_categories.html.erb +44 -0
  49. data/app/views/rocket_job_mission_control/dirmon_entries/_output_category_fields.html.erb +36 -0
  50. data/app/views/rocket_job_mission_control/dirmon_entries/_status.html.erb +22 -16
  51. data/app/views/rocket_job_mission_control/dirmon_entries/copy.html.erb +1 -1
  52. data/app/views/rocket_job_mission_control/dirmon_entries/edit.html.erb +7 -3
  53. data/app/views/rocket_job_mission_control/dirmon_entries/show.html.erb +2 -3
  54. data/app/views/rocket_job_mission_control/jobs/_attributes.html.erb +28 -0
  55. data/app/views/rocket_job_mission_control/jobs/_dates.html.erb +35 -0
  56. data/app/views/rocket_job_mission_control/jobs/_details.html.erb +125 -0
  57. data/app/views/rocket_job_mission_control/jobs/_exception.html.erb +22 -0
  58. data/app/views/rocket_job_mission_control/jobs/_input_categories.html.erb +76 -0
  59. data/app/views/rocket_job_mission_control/jobs/_input_category_fields.html.erb +56 -0
  60. data/app/views/rocket_job_mission_control/jobs/_output_categories.html.erb +49 -0
  61. data/app/views/rocket_job_mission_control/jobs/_output_category_fields.html.erb +36 -0
  62. data/app/views/rocket_job_mission_control/jobs/_retryable.html.erb +16 -0
  63. data/app/views/rocket_job_mission_control/jobs/_status.html.erb +20 -48
  64. data/app/views/rocket_job_mission_control/jobs/edit.html.erb +28 -0
  65. data/app/views/rocket_job_mission_control/jobs/edit_slice.html.erb +2 -2
  66. data/app/views/rocket_job_mission_control/jobs/exception.html.erb +1 -1
  67. data/app/views/rocket_job_mission_control/jobs/index.html.erb +24 -18
  68. data/app/views/rocket_job_mission_control/jobs/show.html.erb +32 -58
  69. data/app/views/rocket_job_mission_control/jobs/view_slice.html.erb +6 -4
  70. data/config/initializers/assets.rb +3 -4
  71. data/lib/rocket_job_mission_control/engine.rb +2 -2
  72. data/lib/rocket_job_mission_control/version.rb +1 -1
  73. data/test/controllers/rocket_job_mission_control/application_controller_test.rb +4 -12
  74. data/test/controllers/rocket_job_mission_control/dirmon_entries_controller_test.rb +20 -52
  75. data/test/controllers/rocket_job_mission_control/jobs_controller_test.rb +21 -41
  76. data/test/controllers/rocket_job_mission_control/servers_controller_test.rb +3 -3
  77. data/test/models/rocket_job_mission_control/dirmon_sanitizer_test.rb +146 -0
  78. data/test/models/rocket_job_mission_control/job_sanitizer_test.rb +9 -3
  79. data/test/test_helper.rb +6 -12
  80. metadata +73 -53
  81. data/app/assets/javascripts/rocket_job_mission_control/selectize.js +0 -8
  82. data/app/assets/stylesheets/rocket_job_mission_control/base.scss +0 -436
  83. data/app/assets/stylesheets/rocket_job_mission_control/bootstrap_and_overrides.scss +0 -488
  84. data/app/assets/stylesheets/rocket_job_mission_control/jobs.scss +0 -72
  85. data/app/assets/stylesheets/rocket_job_mission_control/worker_processes.scss +0 -9
  86. data/vendor/assets/javascripts/bootstrap.min.js +0 -7
  87. data/vendor/assets/javascripts/microplugin.js +0 -135
  88. data/vendor/assets/javascripts/selectize.js +0 -3058
  89. data/vendor/assets/javascripts/sifter.js +0 -470
  90. data/vendor/assets/stylesheets/bootstrap.min.css +0 -6
  91. data/vendor/assets/stylesheets/bootstrap.min.css.map +0 -1
  92. data/vendor/assets/stylesheets/selectize.bootstrap3.css +0 -408
  93. data/vendor/assets/stylesheets/selectize.css +0 -317
@@ -1,8 +0,0 @@
1
- 'use strict';
2
-
3
- $(document).on('ready', function () {
4
- return $('select.selectize').selectize({
5
- create: true,
6
- hideSelected: true
7
- });
8
- });
@@ -1,436 +0,0 @@
1
- html, body, #wrapper, #wrapper > .container-fluid, #main,
2
- .row.row-offcanvas.row-offcanvas-left {
3
- height: 100%
4
- }
5
-
6
- .navbar-default {
7
- background-image: linear-gradient(90deg, #000000, #99120f);
8
- }
9
-
10
- #wrapper { background-color: #f7f7f7; }
11
-
12
- .footer {
13
- position: relative;
14
- height: 100px;
15
- clear:both;
16
- padding-top:20px;
17
- }
18
-
19
- /* Datatables */
20
- table.datatable { border-collapse: collapse; }
21
-
22
- .dataTables_wrapper { margin-top: 2em; }
23
-
24
- .dt-reload { margin: 1em 0; }
25
-
26
- table.dataTable thead .sorting:after, table.dataTable thead .sorting_asc:after,
27
- table.dataTable thead .sorting_desc:after {
28
- position: absolute;
29
- top: 8px;
30
- left: 8px;
31
- display: block;
32
- font-family: "Font Awesome 5 Free";
33
- font-size: inherit;
34
- text-rendering: auto;
35
- -webkit-font-smoothing: antialiased;
36
- -moz-osx-font-smoothing: grayscale;
37
- }
38
-
39
- table.dataTable thead .sorting:after {
40
- content: "\f0c9";
41
- }
42
-
43
- table.dataTable thead .sorting_asc:after {
44
- content: "\f160";
45
- }
46
-
47
- table.dataTable thead .sorting_desc:after {
48
- content: "\f161";
49
- }
50
-
51
- table.dataTable thead > tr > th {
52
- padding-left: 30px;
53
- }
54
-
55
- .datatable .card td {
56
- vertical-align: middle;
57
- }
58
-
59
- .inline-job-actions > a {
60
- display: inline-block;
61
- padding: 1px 5px;
62
- font-size: 12px;
63
- line-height: 1.5;
64
- border-radius: 1px;
65
- }
66
-
67
- .job-list {
68
- height: 100%;
69
- min-height: 768px;
70
- }
71
-
72
- /* Job Edit Page */
73
-
74
- .edit_job {
75
- textarea.description-block { height: 166px; }
76
- .buttons { margin-top: 1em; }
77
- }
78
-
79
- .job-status {
80
- .lead {
81
- color: #50555b;
82
- float: left;
83
- margin-top: 1em;
84
- vertical-align: middle;
85
- }
86
-
87
- p {
88
- font-size: 14px;
89
- color: #666;
90
- }
91
-
92
- .welcome_screen {
93
- text-align: center;
94
- margin-top: 2%;
95
-
96
- h1 { margin-bottom: 10px; }
97
- p { font-size: 16px; }
98
- }
99
-
100
- .job-actions {
101
- float: left;
102
- margin-top: 23px;
103
- margin-left: 20px;
104
-
105
- .btn { padding: 2px 6px; }
106
- }
107
-
108
- .pagination-buttons {
109
- float: left;
110
- margin-top: 23px;
111
- margin-left: 20px;
112
- }
113
-
114
- .job-state {
115
- margin-left: 20px;
116
- padding: 0;
117
- font-size: 12px;
118
- margin-top: 25px;
119
- vertical-align: middle;
120
- float: left;
121
-
122
- .left {
123
- float: left;
124
- text-shadow: 0 2px 3px #000;
125
- background-color: #404650;
126
- color: #fff;
127
- padding: 2px 6px;
128
- border-top-left-radius: 3px;
129
- border-bottom-left-radius: 3px;
130
- }
131
-
132
- .right {
133
- float: left;
134
- color: #fff;
135
- padding: 2px 6px;
136
- border-top-right-radius: 3px;
137
- border-bottom-right-radius: 3px;
138
- }
139
-
140
- .queued, .pending, { background-color: #A29F00; }
141
- .scheduled { background-color: #92001B; }
142
- .running { background-color: #337ab7; }
143
- .sleeping { background-color: darkcyan; }
144
- .completed, .enabled { background-color: green; }
145
- .paused, .disabled { background-color: orange; }
146
- .failed { background-color: red; }
147
- .aborted { background-color: darkorange; }
148
- }
149
-
150
- .priority {
151
- display: inline-block;
152
- vertical-align: middle;
153
- float: right;
154
- margin-top: 20px;
155
-
156
- .form-control {
157
- width: 47px;
158
- height: 34px;
159
- }
160
- }
161
-
162
- .priority-set {
163
- float: right;
164
- padding: 7px 14px;
165
- font-weight: bold;
166
- border-top-left-radius: 0;
167
- border-bottom-left-radius: 0;
168
- }
169
- }
170
-
171
- #content {
172
- margin-top: 60px;
173
- padding: 20px;
174
- }
175
-
176
- #main { padding-left: 0; }
177
-
178
- .white-background{ background-color: #fff; }
179
-
180
- /* Sidebar */
181
-
182
- #sidebar {
183
- padding:0px;
184
- padding-top:15px;
185
- margin-top: 5em;
186
- }
187
-
188
- #sidebar, #sidebar a {
189
- color: #555;
190
- background-color: transparent;
191
- padding-left: 5px;
192
- }
193
-
194
- #sidebar .nav li > a:hover {
195
- color: #000;
196
- background-color: #dddddd;
197
- }
198
-
199
- @media screen and (max-width: 768px) {
200
- .row-offcanvas {
201
- position: relative;
202
- -webkit-transition: all 0.25s ease-out;
203
- -moz-transition: all 0.25s ease-out;
204
- transition: all 0.25s ease-out;
205
- }
206
-
207
- .row-offcanvas-left.active { left: 33%; }
208
-
209
- .row-offcanvas-left.active .sidebar-offcanvas {
210
- left: -33%;
211
- position: absolute;
212
- top: 0;
213
- width: 33%;
214
- margin-left: 5px;
215
- }
216
-
217
- #sidebar, #sidebar a, #sidebar-footer a { padding-left:6px; }
218
- }
219
-
220
- /* Header Styles */
221
-
222
- #header {
223
- padding: 5px;
224
- border-radius: 0;
225
- border-bottom: 1px solid #ddd;
226
- position: fixed;
227
- z-index: 1000;
228
- right: 0;
229
- left: 0;
230
-
231
- .navbar { position: relative; }
232
-
233
- .brand {
234
- position: absolute;
235
- left: 50%;
236
- margin-left: -96px !important;
237
- display: block;
238
-
239
- img {
240
- display: inline;
241
- height: 40px;
242
- position: relative;
243
- bottom: 3px;
244
- left: 8px;
245
- }
246
- }
247
-
248
- .first { left: 15px; }
249
- .last { right: 15px; }
250
-
251
- a.navbar-brand.brand {
252
- font-size: 23px;
253
- color: white;
254
- font-weight: bold;
255
- top: -5px;
256
-
257
- span {
258
- display: inline-block;
259
- position: relative;
260
- left: -3px;
261
- color: orangered;
262
- font-weight: bold;
263
- }
264
- }
265
- }
266
-
267
- #jobs-menu {
268
- margin-top: 1.5em;
269
- background-color: #B3B3B3;
270
- border-color: white;
271
- }
272
-
273
- // List View
274
-
275
- .job-search-box { padding: 20px 100px; }
276
-
277
- .list {
278
- .card:nth-child(1) { border-top: 1px solid #ddd; }
279
- .card:nth-child(odd) { background-color: #fff; }
280
-
281
- .card {
282
- border-bottom: 1px solid #ddd;
283
- border-right: 1px solid #ddd;
284
- height: 100%;
285
- background-color: #F7F7F7;
286
-
287
- &:hover {
288
- cursor: pointer;
289
- background-color: #DADADA;
290
- }
291
-
292
- .inner {
293
- padding: 0.5em;
294
- position: relative;
295
- margin: 0 0 0 10px;
296
-
297
- .title {
298
- display: inline-block;
299
- vertical-align: middle;
300
-
301
- i.queued { color: #A29F00; }
302
- i.scheduled { color: #92001B; }
303
- i.running { color: #337ab7; }
304
- i.sleeping { color: darkcyan; }
305
- i.completed { color: green; }
306
- i.paused { color: orange; }
307
- i.failed { color: red; }
308
- i.aborted { color: darkorange; }
309
- i.enabled { color: green; }
310
- i.disabled { color: orange; }
311
-
312
- h3 {
313
- font-weight: bold;
314
- margin: 0;
315
- font-size: 16px;
316
- }
317
- }
318
-
319
- .lead {
320
- margin-bottom: 5px;
321
- font-size: 18px;
322
- }
323
-
324
- .duration, .description, .completion {
325
- color: #7C735C;
326
- font-size: 18px;
327
- font-weight: 200;
328
- }
329
-
330
- .batch {
331
- position: absolute;
332
- right: -10px;
333
- top: -10px;
334
- background-color: #444;
335
- border-radius: 30px;
336
- padding: 4px 10px;
337
- color: #fff;
338
- z-index: 2;
339
- }
340
- }
341
- }
342
-
343
- .selected {
344
- border-bottom: 1px solid blue;
345
- border-right: 1px solid blue;
346
- border-top: 1px solid blue;
347
- background-color: lightcyan;
348
- }
349
- }
350
-
351
- // Grid View
352
- .grid {
353
- padding: 1em;
354
- font-size: .85em;
355
-
356
- .card {
357
- padding: 1em;
358
-
359
- .inner {
360
- padding: 1em;
361
- border-radius: 3px;
362
- display: inline-block;
363
- background: #fff;
364
- width: 100%;
365
- min-height: 250px;
366
- box-sizing: border-box;
367
- -moz-box-sizing: border-box;
368
- -webkit-box-sizing: border-box;
369
- box-shadow: 0px 1px 2px 0 #ccc;
370
- position: relative;
371
- text-align: center;
372
-
373
- .title, .state, .threads, .time { margin-bottom: 10px; }
374
-
375
- .actions {
376
- padding: 10px 0;
377
- background: #f5f5f5;
378
- border: 1px solid #eee;
379
- border-radius: 2px;
380
- }
381
-
382
- .title {
383
- text-align: center;
384
-
385
- h3 {
386
- font-weight: bold;
387
- margin: 0;
388
- font-size: 16px;
389
- }
390
- }
391
- }
392
- }
393
- }
394
-
395
- .priority-group {
396
- width: 67px;
397
- margin: 0 auto;
398
-
399
- input { text-align: right; }
400
-
401
- .input-group-btn-vertical {
402
- position: relative;
403
- white-space: nowrap;
404
- width: 1%;
405
- vertical-align: middle;
406
- display: table-cell;
407
- }
408
-
409
- .input-group-btn-vertical > .btn {
410
- display: block;
411
- float: none;
412
- width: 100%;
413
- max-width: 100%;
414
- padding: 8px;
415
- margin-left: -1px;
416
- position: relative;
417
- border-radius: 0;
418
- }
419
-
420
- .input-group-btn-vertical > .btn:first-child { border-right: 0; }
421
-
422
- .input-group-btn-vertical > .btn:last-child {
423
- margin-top: -2px;
424
- border-right: 0;
425
- }
426
-
427
- .input-group-btn-vertical i{
428
- position: absolute;
429
- top: 0;
430
- left: 4px;
431
- }
432
- }
433
-
434
- .code-block { margin-top: 25px; }
435
-
436
- .status { padding: 1em; }