oxidized-web 0.13.1 → 0.15.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of oxidized-web might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.github/PULL_REQUEST_TEMPLATE.md +12 -0
- data/.github/dependabot.yml +25 -0
- data/.github/workflows/codeql.yml +76 -0
- data/.github/workflows/ruby.yml +41 -0
- data/.github/workflows/stale.yml +20 -0
- data/.gitignore +3 -0
- data/.rubocop.yml +38 -3
- data/.rubocop_todo.yml +27 -211
- data/CHANGELOG.md +46 -0
- data/README.md +8 -5
- data/Rakefile +49 -5
- data/docs/development.md +182 -0
- data/lib/oxidized/web/public/css/oxidized.css +59 -0
- data/lib/oxidized/web/public/scripts/oxidized.js +1 -48
- data/lib/oxidized/web/public/weblibs/bootstrap-icons.css +2078 -0
- data/lib/oxidized/web/public/weblibs/bootstrap.bundle.js +6314 -0
- data/lib/oxidized/web/public/weblibs/bootstrap.bundle.js.map +1 -0
- data/lib/oxidized/web/public/weblibs/bootstrap.css +12057 -0
- data/lib/oxidized/web/public/weblibs/bootstrap.css.map +1 -0
- data/lib/oxidized/web/public/weblibs/bootstrap.js +4494 -0
- data/lib/oxidized/web/public/weblibs/bootstrap.js.map +1 -0
- data/lib/oxidized/web/public/weblibs/buttons.bootstrap5.css +395 -0
- data/lib/oxidized/web/public/weblibs/buttons.bootstrap5.js +114 -0
- data/lib/oxidized/web/public/weblibs/buttons.colVis.js +256 -0
- data/lib/oxidized/web/public/weblibs/dataTables.bootstrap5.css +517 -0
- data/lib/oxidized/web/public/weblibs/dataTables.bootstrap5.js +122 -0
- data/lib/oxidized/web/public/weblibs/dataTables.buttons.js +2936 -0
- data/lib/oxidized/web/public/weblibs/dataTables.js +13843 -0
- data/lib/oxidized/web/public/weblibs/fonts/bootstrap-icons.woff +0 -0
- data/lib/oxidized/web/public/weblibs/fonts/bootstrap-icons.woff2 +0 -0
- data/lib/oxidized/web/public/weblibs/jquery.js +10716 -0
- data/lib/oxidized/web/version.rb +7 -0
- data/lib/oxidized/web/views/conf_search.haml +14 -13
- data/lib/oxidized/web/views/diffs.haml +5 -5
- data/lib/oxidized/web/views/footer.haml +5 -4
- data/lib/oxidized/web/views/head.haml +21 -7
- data/lib/oxidized/web/views/layout.haml +25 -34
- data/lib/oxidized/web/views/node.haml +10 -8
- data/lib/oxidized/web/views/nodes.haml +45 -35
- data/lib/oxidized/web/views/stats.haml +32 -24
- data/lib/oxidized/web/views/version.haml +8 -6
- data/lib/oxidized/web/views/versions.haml +23 -24
- data/lib/oxidized/web/webapp.rb +117 -113
- data/lib/oxidized/web.rb +10 -7
- data/oxidized-web.gemspec +32 -18
- data/package-lock.json +104 -0
- data/package.json +21 -0
- data/spec/node_spec.rb +99 -0
- data/spec/node_version_spec.rb +102 -0
- data/spec/nodes_spec.rb +57 -0
- data/spec/root_spec.rb +18 -0
- data/spec/spec_helper.rb +11 -0
- data/spec/webapp_spec.rb +28 -0
- metadata +183 -74
- data/lib/oxidized/web/mig.rb +0 -150
- data/lib/oxidized/web/public/css/bootstrap.min.css +0 -5
- data/lib/oxidized/web/public/css/buttons.bootstrap.min.css +0 -1
- data/lib/oxidized/web/public/css/dataTables.bootstrap.css +0 -299
- data/lib/oxidized/web/public/css/dataTables.colVis.css +0 -171
- data/lib/oxidized/web/public/css/oxidized_custom.css +0 -19
- data/lib/oxidized/web/public/fonts/glyphicons-halflings-regular.eot +0 -0
- data/lib/oxidized/web/public/fonts/glyphicons-halflings-regular.svg +0 -229
- data/lib/oxidized/web/public/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/lib/oxidized/web/public/fonts/glyphicons-halflings-regular.woff +0 -0
- data/lib/oxidized/web/public/images/diff_15x17.png +0 -0
- data/lib/oxidized/web/public/images/sort_asc.png +0 -0
- data/lib/oxidized/web/public/images/sort_asc_disabled.png +0 -0
- data/lib/oxidized/web/public/images/sort_both.png +0 -0
- data/lib/oxidized/web/public/images/sort_desc.png +0 -0
- data/lib/oxidized/web/public/images/sort_desc_disabled.png +0 -0
- data/lib/oxidized/web/public/images/versioning_18px.png +0 -0
- data/lib/oxidized/web/public/scripts/bootstrap.min.js +0 -6
- data/lib/oxidized/web/public/scripts/dataTables.bootstrap.js +0 -186
- data/lib/oxidized/web/public/scripts/dataTables.colVis.js +0 -1123
- data/lib/oxidized/web/public/scripts/jquery-2.1.1.min.js +0 -4
- data/lib/oxidized/web/public/scripts/jquery.dataTables.min.js +0 -157
- data/lib/oxidized/web/public/scripts/jquery.min.js +0 -6
- data/lib/oxidized/web/public/scripts/script-migration.js +0 -15
- data/lib/oxidized/web/views/migration.haml +0 -46
- data/lib/oxidized/web/views/sass/oxidized.sass +0 -113
@@ -0,0 +1,517 @@
|
|
1
|
+
:root {
|
2
|
+
--dt-row-selected: 13, 110, 253;
|
3
|
+
--dt-row-selected-text: 255, 255, 255;
|
4
|
+
--dt-row-selected-link: 9, 10, 11;
|
5
|
+
--dt-row-stripe: 0, 0, 0;
|
6
|
+
--dt-row-hover: 0, 0, 0;
|
7
|
+
--dt-column-ordering: 0, 0, 0;
|
8
|
+
--dt-html-background: white;
|
9
|
+
}
|
10
|
+
:root.dark {
|
11
|
+
--dt-html-background: rgb(33, 37, 41);
|
12
|
+
}
|
13
|
+
|
14
|
+
table.dataTable td.dt-control {
|
15
|
+
text-align: center;
|
16
|
+
cursor: pointer;
|
17
|
+
}
|
18
|
+
table.dataTable td.dt-control:before {
|
19
|
+
display: inline-block;
|
20
|
+
box-sizing: border-box;
|
21
|
+
content: "";
|
22
|
+
border-top: 5px solid transparent;
|
23
|
+
border-left: 10px solid rgba(0, 0, 0, 0.5);
|
24
|
+
border-bottom: 5px solid transparent;
|
25
|
+
border-right: 0px solid transparent;
|
26
|
+
}
|
27
|
+
table.dataTable tr.dt-hasChild td.dt-control:before {
|
28
|
+
border-top: 10px solid rgba(0, 0, 0, 0.5);
|
29
|
+
border-left: 5px solid transparent;
|
30
|
+
border-bottom: 0px solid transparent;
|
31
|
+
border-right: 5px solid transparent;
|
32
|
+
}
|
33
|
+
table.dataTable tfoot:empty {
|
34
|
+
display: none;
|
35
|
+
}
|
36
|
+
|
37
|
+
html.dark table.dataTable td.dt-control:before,
|
38
|
+
:root[data-bs-theme=dark] table.dataTable td.dt-control:before,
|
39
|
+
:root[data-theme=dark] table.dataTable td.dt-control:before {
|
40
|
+
border-left-color: rgba(255, 255, 255, 0.5);
|
41
|
+
}
|
42
|
+
html.dark table.dataTable tr.dt-hasChild td.dt-control:before,
|
43
|
+
:root[data-bs-theme=dark] table.dataTable tr.dt-hasChild td.dt-control:before,
|
44
|
+
:root[data-theme=dark] table.dataTable tr.dt-hasChild td.dt-control:before {
|
45
|
+
border-top-color: rgba(255, 255, 255, 0.5);
|
46
|
+
border-left-color: transparent;
|
47
|
+
}
|
48
|
+
|
49
|
+
div.dt-scroll {
|
50
|
+
width: 100%;
|
51
|
+
}
|
52
|
+
|
53
|
+
div.dt-scroll-body thead tr,
|
54
|
+
div.dt-scroll-body tfoot tr {
|
55
|
+
height: 0;
|
56
|
+
}
|
57
|
+
div.dt-scroll-body thead tr th, div.dt-scroll-body thead tr td,
|
58
|
+
div.dt-scroll-body tfoot tr th,
|
59
|
+
div.dt-scroll-body tfoot tr td {
|
60
|
+
height: 0 !important;
|
61
|
+
padding-top: 0px !important;
|
62
|
+
padding-bottom: 0px !important;
|
63
|
+
border-top-width: 0px !important;
|
64
|
+
border-bottom-width: 0px !important;
|
65
|
+
}
|
66
|
+
div.dt-scroll-body thead tr th div.dt-scroll-sizing, div.dt-scroll-body thead tr td div.dt-scroll-sizing,
|
67
|
+
div.dt-scroll-body tfoot tr th div.dt-scroll-sizing,
|
68
|
+
div.dt-scroll-body tfoot tr td div.dt-scroll-sizing {
|
69
|
+
height: 0 !important;
|
70
|
+
overflow: hidden !important;
|
71
|
+
}
|
72
|
+
|
73
|
+
table.dataTable thead > tr > th:active,
|
74
|
+
table.dataTable thead > tr > td:active {
|
75
|
+
outline: none;
|
76
|
+
}
|
77
|
+
table.dataTable thead > tr > th.dt-orderable-asc span.dt-column-order:before, table.dataTable thead > tr > th.dt-ordering-asc span.dt-column-order:before,
|
78
|
+
table.dataTable thead > tr > td.dt-orderable-asc span.dt-column-order:before,
|
79
|
+
table.dataTable thead > tr > td.dt-ordering-asc span.dt-column-order:before {
|
80
|
+
position: absolute;
|
81
|
+
display: block;
|
82
|
+
bottom: 50%;
|
83
|
+
content: "\25B2";
|
84
|
+
content: "\25B2"/"";
|
85
|
+
}
|
86
|
+
table.dataTable thead > tr > th.dt-orderable-desc span.dt-column-order:after, table.dataTable thead > tr > th.dt-ordering-desc span.dt-column-order:after,
|
87
|
+
table.dataTable thead > tr > td.dt-orderable-desc span.dt-column-order:after,
|
88
|
+
table.dataTable thead > tr > td.dt-ordering-desc span.dt-column-order:after {
|
89
|
+
position: absolute;
|
90
|
+
display: block;
|
91
|
+
top: 50%;
|
92
|
+
content: "\25BC";
|
93
|
+
content: "\25BC"/"";
|
94
|
+
}
|
95
|
+
table.dataTable thead > tr > th.dt-orderable-asc, table.dataTable thead > tr > th.dt-orderable-desc, table.dataTable thead > tr > th.dt-ordering-asc, table.dataTable thead > tr > th.dt-ordering-desc,
|
96
|
+
table.dataTable thead > tr > td.dt-orderable-asc,
|
97
|
+
table.dataTable thead > tr > td.dt-orderable-desc,
|
98
|
+
table.dataTable thead > tr > td.dt-ordering-asc,
|
99
|
+
table.dataTable thead > tr > td.dt-ordering-desc {
|
100
|
+
position: relative;
|
101
|
+
padding-right: 30px;
|
102
|
+
}
|
103
|
+
table.dataTable thead > tr > th.dt-orderable-asc span.dt-column-order, table.dataTable thead > tr > th.dt-orderable-desc span.dt-column-order, table.dataTable thead > tr > th.dt-ordering-asc span.dt-column-order, table.dataTable thead > tr > th.dt-ordering-desc span.dt-column-order,
|
104
|
+
table.dataTable thead > tr > td.dt-orderable-asc span.dt-column-order,
|
105
|
+
table.dataTable thead > tr > td.dt-orderable-desc span.dt-column-order,
|
106
|
+
table.dataTable thead > tr > td.dt-ordering-asc span.dt-column-order,
|
107
|
+
table.dataTable thead > tr > td.dt-ordering-desc span.dt-column-order {
|
108
|
+
position: absolute;
|
109
|
+
right: 12px;
|
110
|
+
top: 0;
|
111
|
+
bottom: 0;
|
112
|
+
width: 12px;
|
113
|
+
}
|
114
|
+
table.dataTable thead > tr > th.dt-orderable-asc span.dt-column-order:before, table.dataTable thead > tr > th.dt-orderable-asc span.dt-column-order:after, table.dataTable thead > tr > th.dt-orderable-desc span.dt-column-order:before, table.dataTable thead > tr > th.dt-orderable-desc span.dt-column-order:after, table.dataTable thead > tr > th.dt-ordering-asc span.dt-column-order:before, table.dataTable thead > tr > th.dt-ordering-asc span.dt-column-order:after, table.dataTable thead > tr > th.dt-ordering-desc span.dt-column-order:before, table.dataTable thead > tr > th.dt-ordering-desc span.dt-column-order:after,
|
115
|
+
table.dataTable thead > tr > td.dt-orderable-asc span.dt-column-order:before,
|
116
|
+
table.dataTable thead > tr > td.dt-orderable-asc span.dt-column-order:after,
|
117
|
+
table.dataTable thead > tr > td.dt-orderable-desc span.dt-column-order:before,
|
118
|
+
table.dataTable thead > tr > td.dt-orderable-desc span.dt-column-order:after,
|
119
|
+
table.dataTable thead > tr > td.dt-ordering-asc span.dt-column-order:before,
|
120
|
+
table.dataTable thead > tr > td.dt-ordering-asc span.dt-column-order:after,
|
121
|
+
table.dataTable thead > tr > td.dt-ordering-desc span.dt-column-order:before,
|
122
|
+
table.dataTable thead > tr > td.dt-ordering-desc span.dt-column-order:after {
|
123
|
+
left: 0;
|
124
|
+
opacity: 0.125;
|
125
|
+
line-height: 9px;
|
126
|
+
font-size: 0.8em;
|
127
|
+
}
|
128
|
+
table.dataTable thead > tr > th.dt-orderable-asc, table.dataTable thead > tr > th.dt-orderable-desc,
|
129
|
+
table.dataTable thead > tr > td.dt-orderable-asc,
|
130
|
+
table.dataTable thead > tr > td.dt-orderable-desc {
|
131
|
+
cursor: pointer;
|
132
|
+
}
|
133
|
+
table.dataTable thead > tr > th.dt-orderable-asc:hover, table.dataTable thead > tr > th.dt-orderable-desc:hover,
|
134
|
+
table.dataTable thead > tr > td.dt-orderable-asc:hover,
|
135
|
+
table.dataTable thead > tr > td.dt-orderable-desc:hover {
|
136
|
+
outline: 2px solid rgba(0, 0, 0, 0.05);
|
137
|
+
outline-offset: -2px;
|
138
|
+
}
|
139
|
+
table.dataTable thead > tr > th.dt-ordering-asc span.dt-column-order:before, table.dataTable thead > tr > th.dt-ordering-desc span.dt-column-order:after,
|
140
|
+
table.dataTable thead > tr > td.dt-ordering-asc span.dt-column-order:before,
|
141
|
+
table.dataTable thead > tr > td.dt-ordering-desc span.dt-column-order:after {
|
142
|
+
opacity: 0.6;
|
143
|
+
}
|
144
|
+
table.dataTable thead > tr > th.sorting_desc_disabled span.dt-column-order:after, table.dataTable thead > tr > th.sorting_asc_disabled span.dt-column-order:before,
|
145
|
+
table.dataTable thead > tr > td.sorting_desc_disabled span.dt-column-order:after,
|
146
|
+
table.dataTable thead > tr > td.sorting_asc_disabled span.dt-column-order:before {
|
147
|
+
display: none;
|
148
|
+
}
|
149
|
+
table.dataTable thead > tr > th:active,
|
150
|
+
table.dataTable thead > tr > td:active {
|
151
|
+
outline: none;
|
152
|
+
}
|
153
|
+
|
154
|
+
div.dt-scroll-body > table.dataTable > thead > tr > th,
|
155
|
+
div.dt-scroll-body > table.dataTable > thead > tr > td {
|
156
|
+
overflow: hidden;
|
157
|
+
}
|
158
|
+
|
159
|
+
:root.dark table.dataTable thead > tr > th.dt-orderable-asc:hover, :root.dark table.dataTable thead > tr > th.dt-orderable-desc:hover,
|
160
|
+
:root.dark table.dataTable thead > tr > td.dt-orderable-asc:hover,
|
161
|
+
:root.dark table.dataTable thead > tr > td.dt-orderable-desc:hover,
|
162
|
+
:root[data-bs-theme=dark] table.dataTable thead > tr > th.dt-orderable-asc:hover,
|
163
|
+
:root[data-bs-theme=dark] table.dataTable thead > tr > th.dt-orderable-desc:hover,
|
164
|
+
:root[data-bs-theme=dark] table.dataTable thead > tr > td.dt-orderable-asc:hover,
|
165
|
+
:root[data-bs-theme=dark] table.dataTable thead > tr > td.dt-orderable-desc:hover {
|
166
|
+
outline: 2px solid rgba(255, 255, 255, 0.05);
|
167
|
+
}
|
168
|
+
|
169
|
+
div.dt-processing {
|
170
|
+
position: absolute;
|
171
|
+
top: 50%;
|
172
|
+
left: 50%;
|
173
|
+
width: 200px;
|
174
|
+
margin-left: -100px;
|
175
|
+
margin-top: -22px;
|
176
|
+
text-align: center;
|
177
|
+
padding: 2px;
|
178
|
+
z-index: 10;
|
179
|
+
}
|
180
|
+
div.dt-processing > div:last-child {
|
181
|
+
position: relative;
|
182
|
+
width: 80px;
|
183
|
+
height: 15px;
|
184
|
+
margin: 1em auto;
|
185
|
+
}
|
186
|
+
div.dt-processing > div:last-child > div {
|
187
|
+
position: absolute;
|
188
|
+
top: 0;
|
189
|
+
width: 13px;
|
190
|
+
height: 13px;
|
191
|
+
border-radius: 50%;
|
192
|
+
background: rgb(13, 110, 253);
|
193
|
+
background: rgb(var(--dt-row-selected));
|
194
|
+
animation-timing-function: cubic-bezier(0, 1, 1, 0);
|
195
|
+
}
|
196
|
+
div.dt-processing > div:last-child > div:nth-child(1) {
|
197
|
+
left: 8px;
|
198
|
+
animation: datatables-loader-1 0.6s infinite;
|
199
|
+
}
|
200
|
+
div.dt-processing > div:last-child > div:nth-child(2) {
|
201
|
+
left: 8px;
|
202
|
+
animation: datatables-loader-2 0.6s infinite;
|
203
|
+
}
|
204
|
+
div.dt-processing > div:last-child > div:nth-child(3) {
|
205
|
+
left: 32px;
|
206
|
+
animation: datatables-loader-2 0.6s infinite;
|
207
|
+
}
|
208
|
+
div.dt-processing > div:last-child > div:nth-child(4) {
|
209
|
+
left: 56px;
|
210
|
+
animation: datatables-loader-3 0.6s infinite;
|
211
|
+
}
|
212
|
+
|
213
|
+
@keyframes datatables-loader-1 {
|
214
|
+
0% {
|
215
|
+
transform: scale(0);
|
216
|
+
}
|
217
|
+
100% {
|
218
|
+
transform: scale(1);
|
219
|
+
}
|
220
|
+
}
|
221
|
+
@keyframes datatables-loader-3 {
|
222
|
+
0% {
|
223
|
+
transform: scale(1);
|
224
|
+
}
|
225
|
+
100% {
|
226
|
+
transform: scale(0);
|
227
|
+
}
|
228
|
+
}
|
229
|
+
@keyframes datatables-loader-2 {
|
230
|
+
0% {
|
231
|
+
transform: translate(0, 0);
|
232
|
+
}
|
233
|
+
100% {
|
234
|
+
transform: translate(24px, 0);
|
235
|
+
}
|
236
|
+
}
|
237
|
+
table.dataTable.nowrap th, table.dataTable.nowrap td {
|
238
|
+
white-space: nowrap;
|
239
|
+
}
|
240
|
+
table.dataTable th,
|
241
|
+
table.dataTable td {
|
242
|
+
box-sizing: border-box;
|
243
|
+
}
|
244
|
+
table.dataTable th.dt-type-numeric, table.dataTable th.dt-type-date,
|
245
|
+
table.dataTable td.dt-type-numeric,
|
246
|
+
table.dataTable td.dt-type-date {
|
247
|
+
text-align: right;
|
248
|
+
}
|
249
|
+
table.dataTable th.dt-left,
|
250
|
+
table.dataTable td.dt-left {
|
251
|
+
text-align: left;
|
252
|
+
}
|
253
|
+
table.dataTable th.dt-center,
|
254
|
+
table.dataTable td.dt-center {
|
255
|
+
text-align: center;
|
256
|
+
}
|
257
|
+
table.dataTable th.dt-right,
|
258
|
+
table.dataTable td.dt-right {
|
259
|
+
text-align: right;
|
260
|
+
}
|
261
|
+
table.dataTable th.dt-justify,
|
262
|
+
table.dataTable td.dt-justify {
|
263
|
+
text-align: justify;
|
264
|
+
}
|
265
|
+
table.dataTable th.dt-nowrap,
|
266
|
+
table.dataTable td.dt-nowrap {
|
267
|
+
white-space: nowrap;
|
268
|
+
}
|
269
|
+
table.dataTable th.dt-empty,
|
270
|
+
table.dataTable td.dt-empty {
|
271
|
+
text-align: center;
|
272
|
+
vertical-align: top;
|
273
|
+
}
|
274
|
+
table.dataTable thead th,
|
275
|
+
table.dataTable thead td,
|
276
|
+
table.dataTable tfoot th,
|
277
|
+
table.dataTable tfoot td {
|
278
|
+
text-align: left;
|
279
|
+
}
|
280
|
+
table.dataTable thead th.dt-head-left,
|
281
|
+
table.dataTable thead td.dt-head-left,
|
282
|
+
table.dataTable tfoot th.dt-head-left,
|
283
|
+
table.dataTable tfoot td.dt-head-left {
|
284
|
+
text-align: left;
|
285
|
+
}
|
286
|
+
table.dataTable thead th.dt-head-center,
|
287
|
+
table.dataTable thead td.dt-head-center,
|
288
|
+
table.dataTable tfoot th.dt-head-center,
|
289
|
+
table.dataTable tfoot td.dt-head-center {
|
290
|
+
text-align: center;
|
291
|
+
}
|
292
|
+
table.dataTable thead th.dt-head-right,
|
293
|
+
table.dataTable thead td.dt-head-right,
|
294
|
+
table.dataTable tfoot th.dt-head-right,
|
295
|
+
table.dataTable tfoot td.dt-head-right {
|
296
|
+
text-align: right;
|
297
|
+
}
|
298
|
+
table.dataTable thead th.dt-head-justify,
|
299
|
+
table.dataTable thead td.dt-head-justify,
|
300
|
+
table.dataTable tfoot th.dt-head-justify,
|
301
|
+
table.dataTable tfoot td.dt-head-justify {
|
302
|
+
text-align: justify;
|
303
|
+
}
|
304
|
+
table.dataTable thead th.dt-head-nowrap,
|
305
|
+
table.dataTable thead td.dt-head-nowrap,
|
306
|
+
table.dataTable tfoot th.dt-head-nowrap,
|
307
|
+
table.dataTable tfoot td.dt-head-nowrap {
|
308
|
+
white-space: nowrap;
|
309
|
+
}
|
310
|
+
table.dataTable tbody th.dt-body-left,
|
311
|
+
table.dataTable tbody td.dt-body-left {
|
312
|
+
text-align: left;
|
313
|
+
}
|
314
|
+
table.dataTable tbody th.dt-body-center,
|
315
|
+
table.dataTable tbody td.dt-body-center {
|
316
|
+
text-align: center;
|
317
|
+
}
|
318
|
+
table.dataTable tbody th.dt-body-right,
|
319
|
+
table.dataTable tbody td.dt-body-right {
|
320
|
+
text-align: right;
|
321
|
+
}
|
322
|
+
table.dataTable tbody th.dt-body-justify,
|
323
|
+
table.dataTable tbody td.dt-body-justify {
|
324
|
+
text-align: justify;
|
325
|
+
}
|
326
|
+
table.dataTable tbody th.dt-body-nowrap,
|
327
|
+
table.dataTable tbody td.dt-body-nowrap {
|
328
|
+
white-space: nowrap;
|
329
|
+
}
|
330
|
+
|
331
|
+
/*! Bootstrap 5 integration for DataTables
|
332
|
+
*
|
333
|
+
* ©2020 SpryMedia Ltd, all rights reserved.
|
334
|
+
* License: MIT datatables.net/license/mit
|
335
|
+
*/
|
336
|
+
table.table.dataTable {
|
337
|
+
clear: both;
|
338
|
+
margin-bottom: 0;
|
339
|
+
max-width: none;
|
340
|
+
border-spacing: 0;
|
341
|
+
}
|
342
|
+
table.table.dataTable.table-striped > tbody > tr:nth-of-type(2n+1) > * {
|
343
|
+
box-shadow: none;
|
344
|
+
}
|
345
|
+
table.table.dataTable > :not(caption) > * > * {
|
346
|
+
background-color: var(--bs-table-bg);
|
347
|
+
}
|
348
|
+
table.table.dataTable > tbody > tr {
|
349
|
+
background-color: transparent;
|
350
|
+
}
|
351
|
+
table.table.dataTable > tbody > tr.selected > * {
|
352
|
+
box-shadow: inset 0 0 0 9999px rgb(13, 110, 253);
|
353
|
+
box-shadow: inset 0 0 0 9999px rgb(var(--dt-row-selected));
|
354
|
+
color: rgb(255, 255, 255);
|
355
|
+
color: rgb(var(--dt-row-selected-text));
|
356
|
+
}
|
357
|
+
table.table.dataTable > tbody > tr.selected a {
|
358
|
+
color: rgb(9, 10, 11);
|
359
|
+
color: rgb(var(--dt-row-selected-link));
|
360
|
+
}
|
361
|
+
table.table.dataTable.table-striped > tbody > tr:nth-of-type(2n+1) > * {
|
362
|
+
box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-stripe), 0.05);
|
363
|
+
}
|
364
|
+
table.table.dataTable.table-striped > tbody > tr:nth-of-type(2n+1).selected > * {
|
365
|
+
box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.95);
|
366
|
+
box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.95);
|
367
|
+
}
|
368
|
+
table.table.dataTable.table-hover > tbody > tr:hover > * {
|
369
|
+
box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-hover), 0.075);
|
370
|
+
}
|
371
|
+
table.table.dataTable.table-hover > tbody > tr.selected:hover > * {
|
372
|
+
box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.975);
|
373
|
+
box-shadow: inset 0 0 0 9999px rgba(var(--dt-row-selected), 0.975);
|
374
|
+
}
|
375
|
+
|
376
|
+
div.dt-container div.dt-layout-start > *:not(:last-child) {
|
377
|
+
margin-right: 1em;
|
378
|
+
}
|
379
|
+
div.dt-container div.dt-layout-end > *:not(:first-child) {
|
380
|
+
margin-left: 1em;
|
381
|
+
}
|
382
|
+
div.dt-container div.dt-layout-full {
|
383
|
+
width: 100%;
|
384
|
+
}
|
385
|
+
div.dt-container div.dt-layout-full > *:only-child {
|
386
|
+
margin-left: auto;
|
387
|
+
margin-right: auto;
|
388
|
+
}
|
389
|
+
div.dt-container div.dt-layout-table > div {
|
390
|
+
display: block !important;
|
391
|
+
}
|
392
|
+
|
393
|
+
@media screen and (max-width: 767px) {
|
394
|
+
div.dt-container div.dt-layout-start > *:not(:last-child) {
|
395
|
+
margin-right: 0;
|
396
|
+
}
|
397
|
+
div.dt-container div.dt-layout-end > *:not(:first-child) {
|
398
|
+
margin-left: 0;
|
399
|
+
}
|
400
|
+
}
|
401
|
+
div.dt-container div.dt-length label {
|
402
|
+
font-weight: normal;
|
403
|
+
text-align: left;
|
404
|
+
white-space: nowrap;
|
405
|
+
}
|
406
|
+
div.dt-container div.dt-length select {
|
407
|
+
width: auto;
|
408
|
+
display: inline-block;
|
409
|
+
margin-right: 0.5em;
|
410
|
+
}
|
411
|
+
div.dt-container div.dt-search {
|
412
|
+
text-align: right;
|
413
|
+
}
|
414
|
+
div.dt-container div.dt-search label {
|
415
|
+
font-weight: normal;
|
416
|
+
white-space: nowrap;
|
417
|
+
text-align: left;
|
418
|
+
}
|
419
|
+
div.dt-container div.dt-search input {
|
420
|
+
margin-left: 0.5em;
|
421
|
+
display: inline-block;
|
422
|
+
width: auto;
|
423
|
+
}
|
424
|
+
div.dt-container div.dt-paging {
|
425
|
+
margin: 0;
|
426
|
+
}
|
427
|
+
div.dt-container div.dt-paging ul.pagination {
|
428
|
+
margin: 2px 0;
|
429
|
+
flex-wrap: wrap;
|
430
|
+
}
|
431
|
+
div.dt-container div.dt-row {
|
432
|
+
position: relative;
|
433
|
+
}
|
434
|
+
|
435
|
+
div.dt-scroll-head table.dataTable {
|
436
|
+
margin-bottom: 0 !important;
|
437
|
+
}
|
438
|
+
|
439
|
+
div.dt-scroll-body {
|
440
|
+
border-bottom-color: var(--bs-border-color);
|
441
|
+
border-bottom-width: var(--bs-border-width);
|
442
|
+
border-bottom-style: solid;
|
443
|
+
}
|
444
|
+
div.dt-scroll-body > table {
|
445
|
+
border-top: none;
|
446
|
+
margin-top: 0 !important;
|
447
|
+
margin-bottom: 0 !important;
|
448
|
+
}
|
449
|
+
div.dt-scroll-body > table > tbody > tr:first-child {
|
450
|
+
border-top-width: 0;
|
451
|
+
}
|
452
|
+
div.dt-scroll-body > table > thead > tr {
|
453
|
+
border-width: 0 !important;
|
454
|
+
}
|
455
|
+
div.dt-scroll-body > table > tbody > tr:last-child > * {
|
456
|
+
border-bottom: none;
|
457
|
+
}
|
458
|
+
|
459
|
+
div.dt-scroll-foot > .dt-scroll-footInner {
|
460
|
+
box-sizing: content-box;
|
461
|
+
}
|
462
|
+
div.dt-scroll-foot > .dt-scroll-footInner > table {
|
463
|
+
margin-top: 0 !important;
|
464
|
+
border-top: none;
|
465
|
+
}
|
466
|
+
div.dt-scroll-foot > .dt-scroll-footInner > table > tfoot > tr:first-child {
|
467
|
+
border-top-width: 0 !important;
|
468
|
+
}
|
469
|
+
|
470
|
+
@media screen and (max-width: 767px) {
|
471
|
+
div.dt-container div.dt-length,
|
472
|
+
div.dt-container div.dt-search,
|
473
|
+
div.dt-container div.dt-info,
|
474
|
+
div.dt-container div.dt-paging {
|
475
|
+
text-align: center;
|
476
|
+
}
|
477
|
+
div.dt-container .row {
|
478
|
+
--bs-gutter-y: 0.5rem;
|
479
|
+
}
|
480
|
+
div.dt-container div.dt-paging ul.pagination {
|
481
|
+
justify-content: center !important;
|
482
|
+
}
|
483
|
+
}
|
484
|
+
table.dataTable.table-sm > thead > tr th.dt-orderable-asc, table.dataTable.table-sm > thead > tr th.dt-orderable-desc, table.dataTable.table-sm > thead > tr th.dt-ordering-asc, table.dataTable.table-sm > thead > tr th.dt-ordering-desc,
|
485
|
+
table.dataTable.table-sm > thead > tr td.dt-orderable-asc,
|
486
|
+
table.dataTable.table-sm > thead > tr td.dt-orderable-desc,
|
487
|
+
table.dataTable.table-sm > thead > tr td.dt-ordering-asc,
|
488
|
+
table.dataTable.table-sm > thead > tr td.dt-ordering-desc {
|
489
|
+
padding-right: 20px;
|
490
|
+
}
|
491
|
+
table.dataTable.table-sm > thead > tr th.dt-orderable-asc span.dt-column-order, table.dataTable.table-sm > thead > tr th.dt-orderable-desc span.dt-column-order, table.dataTable.table-sm > thead > tr th.dt-ordering-asc span.dt-column-order, table.dataTable.table-sm > thead > tr th.dt-ordering-desc span.dt-column-order,
|
492
|
+
table.dataTable.table-sm > thead > tr td.dt-orderable-asc span.dt-column-order,
|
493
|
+
table.dataTable.table-sm > thead > tr td.dt-orderable-desc span.dt-column-order,
|
494
|
+
table.dataTable.table-sm > thead > tr td.dt-ordering-asc span.dt-column-order,
|
495
|
+
table.dataTable.table-sm > thead > tr td.dt-ordering-desc span.dt-column-order {
|
496
|
+
right: 5px;
|
497
|
+
}
|
498
|
+
|
499
|
+
div.dt-scroll-head table.table-bordered {
|
500
|
+
border-bottom-width: 0;
|
501
|
+
}
|
502
|
+
|
503
|
+
div.table-responsive > div.dt-container > div.row {
|
504
|
+
margin: 0;
|
505
|
+
}
|
506
|
+
div.table-responsive > div.dt-container > div.row > div[class^=col-]:first-child {
|
507
|
+
padding-left: 0;
|
508
|
+
}
|
509
|
+
div.table-responsive > div.dt-container > div.row > div[class^=col-]:last-child {
|
510
|
+
padding-right: 0;
|
511
|
+
}
|
512
|
+
|
513
|
+
:root[data-bs-theme=dark] {
|
514
|
+
--dt-row-hover: 255, 255, 255;
|
515
|
+
--dt-row-stripe: 255, 255, 255;
|
516
|
+
--dt-column-ordering: 255, 255, 255;
|
517
|
+
}
|
@@ -0,0 +1,122 @@
|
|
1
|
+
/*! DataTables Bootstrap 5 integration
|
2
|
+
* © SpryMedia Ltd - datatables.net/license
|
3
|
+
*/
|
4
|
+
|
5
|
+
(function( factory ){
|
6
|
+
if ( typeof define === 'function' && define.amd ) {
|
7
|
+
// AMD
|
8
|
+
define( ['jquery', 'datatables.net'], function ( $ ) {
|
9
|
+
return factory( $, window, document );
|
10
|
+
} );
|
11
|
+
}
|
12
|
+
else if ( typeof exports === 'object' ) {
|
13
|
+
// CommonJS
|
14
|
+
var jq = require('jquery');
|
15
|
+
var cjsRequires = function (root, $) {
|
16
|
+
if ( ! $.fn.dataTable ) {
|
17
|
+
require('datatables.net')(root, $);
|
18
|
+
}
|
19
|
+
};
|
20
|
+
|
21
|
+
if (typeof window === 'undefined') {
|
22
|
+
module.exports = function (root, $) {
|
23
|
+
if ( ! root ) {
|
24
|
+
// CommonJS environments without a window global must pass a
|
25
|
+
// root. This will give an error otherwise
|
26
|
+
root = window;
|
27
|
+
}
|
28
|
+
|
29
|
+
if ( ! $ ) {
|
30
|
+
$ = jq( root );
|
31
|
+
}
|
32
|
+
|
33
|
+
cjsRequires( root, $ );
|
34
|
+
return factory( $, root, root.document );
|
35
|
+
};
|
36
|
+
}
|
37
|
+
else {
|
38
|
+
cjsRequires( window, jq );
|
39
|
+
module.exports = factory( jq, window, window.document );
|
40
|
+
}
|
41
|
+
}
|
42
|
+
else {
|
43
|
+
// Browser
|
44
|
+
factory( jQuery, window, document );
|
45
|
+
}
|
46
|
+
}(function( $, window, document ) {
|
47
|
+
'use strict';
|
48
|
+
var DataTable = $.fn.dataTable;
|
49
|
+
|
50
|
+
|
51
|
+
|
52
|
+
/**
|
53
|
+
* DataTables integration for Bootstrap 5.
|
54
|
+
*
|
55
|
+
* This file sets the defaults and adds options to DataTables to style its
|
56
|
+
* controls using Bootstrap. See https://datatables.net/manual/styling/bootstrap
|
57
|
+
* for further information.
|
58
|
+
*/
|
59
|
+
|
60
|
+
/* Set the defaults for DataTables initialisation */
|
61
|
+
$.extend( true, DataTable.defaults, {
|
62
|
+
renderer: 'bootstrap'
|
63
|
+
} );
|
64
|
+
|
65
|
+
|
66
|
+
/* Default class modification */
|
67
|
+
$.extend( true, DataTable.ext.classes, {
|
68
|
+
container: "dt-container dt-bootstrap5",
|
69
|
+
search: {
|
70
|
+
input: "form-control form-control-sm"
|
71
|
+
},
|
72
|
+
length: {
|
73
|
+
select: "form-select form-select-sm"
|
74
|
+
},
|
75
|
+
processing: {
|
76
|
+
container: "dt-processing card"
|
77
|
+
},
|
78
|
+
layout: {
|
79
|
+
row: 'row mt-2 justify-content-between',
|
80
|
+
cell: 'd-md-flex justify-content-between align-items-center',
|
81
|
+
tableCell: 'col-12',
|
82
|
+
start: 'dt-layout-start col-md-auto me-auto',
|
83
|
+
end: 'dt-layout-end col-md-auto ms-auto',
|
84
|
+
full: 'dt-layout-full col-md'
|
85
|
+
}
|
86
|
+
} );
|
87
|
+
|
88
|
+
|
89
|
+
/* Bootstrap paging button renderer */
|
90
|
+
DataTable.ext.renderer.pagingButton.bootstrap = function (settings, buttonType, content, active, disabled) {
|
91
|
+
var btnClasses = ['dt-paging-button', 'page-item'];
|
92
|
+
|
93
|
+
if (active) {
|
94
|
+
btnClasses.push('active');
|
95
|
+
}
|
96
|
+
|
97
|
+
if (disabled) {
|
98
|
+
btnClasses.push('disabled')
|
99
|
+
}
|
100
|
+
|
101
|
+
var li = $('<li>').addClass(btnClasses.join(' '));
|
102
|
+
var a = $('<button>', {
|
103
|
+
'class': 'page-link',
|
104
|
+
role: 'link',
|
105
|
+
type: 'button'
|
106
|
+
})
|
107
|
+
.html(content)
|
108
|
+
.appendTo(li);
|
109
|
+
|
110
|
+
return {
|
111
|
+
display: li,
|
112
|
+
clicker: a
|
113
|
+
};
|
114
|
+
};
|
115
|
+
|
116
|
+
DataTable.ext.renderer.pagingContainer.bootstrap = function (settings, buttonEls) {
|
117
|
+
return $('<ul/>').addClass('pagination').append(buttonEls);
|
118
|
+
};
|
119
|
+
|
120
|
+
|
121
|
+
return DataTable;
|
122
|
+
}));
|