oxidized-web 0.15.1 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of oxidized-web might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.gitignore +4 -0
- data/.rubocop.yml +22 -2
- data/CHANGELOG.md +30 -1
- data/README.md +13 -3
- data/Rakefile +9 -4
- data/docs/configuration.md +90 -0
- data/docs/development.md +42 -39
- data/lib/oxidized/web/public/scripts/oxidized.js +13 -13
- data/lib/oxidized/web/public/weblibs/bootstrap-icons.css +31 -3
- data/lib/oxidized/web/public/weblibs/bootstrap.bundle.js +20 -19
- data/lib/oxidized/web/public/weblibs/bootstrap.bundle.js.map +1 -1
- data/lib/oxidized/web/public/weblibs/bootstrap.css +110 -124
- data/lib/oxidized/web/public/weblibs/bootstrap.css.map +1 -1
- data/lib/oxidized/web/public/weblibs/bootstrap.js +20 -17
- data/lib/oxidized/web/public/weblibs/bootstrap.js.map +1 -1
- data/lib/oxidized/web/public/weblibs/buttons.bootstrap5.css +3 -3
- data/lib/oxidized/web/public/weblibs/buttons.colVis.js +14 -5
- data/lib/oxidized/web/public/weblibs/dataTables.bootstrap5.css +111 -17
- data/lib/oxidized/web/public/weblibs/dataTables.buttons.js +25 -7
- data/lib/oxidized/web/public/weblibs/dataTables.js +336 -106
- data/lib/oxidized/web/public/weblibs/dayjs-plugin-utc.min.js +1 -0
- data/lib/oxidized/web/public/weblibs/dayjs.min.js +1 -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/version.rb +1 -1
- data/lib/oxidized/web/views/conf_search.haml +1 -1
- data/lib/oxidized/web/views/diffs.haml +6 -7
- data/lib/oxidized/web/views/head.haml +4 -0
- data/lib/oxidized/web/views/node.haml +3 -2
- data/lib/oxidized/web/views/nodes.haml +13 -5
- data/lib/oxidized/web/views/stats.haml +11 -3
- data/lib/oxidized/web/views/version.haml +1 -2
- data/lib/oxidized/web/views/versions.haml +11 -7
- data/lib/oxidized/web/webapp.rb +41 -29
- data/lib/oxidized/web.rb +72 -16
- data/oxidized-web.gemspec +22 -13
- data/package-lock.json +37 -25
- data/package.json +7 -5
- data/spec/spec_helper.rb +1 -0
- data/spec/web/node/show_spec.rb +100 -0
- data/spec/web/node/version_spec.rb +161 -0
- data/spec/{node_spec.rb → web/node_spec.rb} +1 -1
- data/spec/{nodes_spec.rb → web/nodes_spec.rb} +1 -1
- data/spec/{root_spec.rb → web/root_spec.rb} +1 -1
- data/spec/{webapp_spec.rb → web/webapp_spec.rb} +1 -1
- data/spec/web_spec.rb +98 -0
- metadata +69 -69
- data/.rubocop_todo.yml +0 -64
- data/spec/node_version_spec.rb +0 -102
@@ -119,7 +119,7 @@ div.dt-button-collection .dt-button-active:after {
|
|
119
119
|
margin-top: -10px;
|
120
120
|
right: 1em;
|
121
121
|
display: inline-block;
|
122
|
-
content: "
|
122
|
+
content: "\2713";
|
123
123
|
color: inherit;
|
124
124
|
}
|
125
125
|
div.dt-button-collection .dt-button-active.dt-button-split {
|
@@ -137,7 +137,7 @@ div.dt-button-collection .dt-button-active.dt-button-split > *:first-child:after
|
|
137
137
|
margin-top: -10px;
|
138
138
|
right: 1em;
|
139
139
|
display: inline-block;
|
140
|
-
content: "
|
140
|
+
content: "\2713";
|
141
141
|
color: inherit;
|
142
142
|
}
|
143
143
|
div.dt-button-collection .dt-button-active-a a {
|
@@ -147,7 +147,7 @@ div.dt-button-collection .dt-button-active-a a:after {
|
|
147
147
|
position: absolute;
|
148
148
|
right: 1em;
|
149
149
|
display: inline-block;
|
150
|
-
content: "
|
150
|
+
content: "\2713";
|
151
151
|
color: inherit;
|
152
152
|
}
|
153
153
|
div.dt-button-collection span.dt-button-spacer {
|
@@ -152,11 +152,17 @@ $.extend(DataTable.ext.buttons, {
|
|
152
152
|
},
|
153
153
|
init: function (dt, button, conf) {
|
154
154
|
var that = this;
|
155
|
+
var column = dt.column(conf.columns);
|
156
|
+
|
155
157
|
button.attr('data-cv-idx', conf.columns);
|
156
158
|
|
157
|
-
dt.on('column-visibility.dt' + conf.namespace, function (e, settings) {
|
158
|
-
if (
|
159
|
-
|
159
|
+
dt.on('column-visibility.dt' + conf.namespace, function (e, settings, index, state) {
|
160
|
+
if (
|
161
|
+
column.index() === index &&
|
162
|
+
!settings.bDestroying &&
|
163
|
+
settings.nTable == dt.settings()[0].nTable
|
164
|
+
) {
|
165
|
+
that.active(state);
|
160
166
|
}
|
161
167
|
}).on('column-reorder.dt' + conf.namespace, function () {
|
162
168
|
// Button has been removed from the DOM
|
@@ -168,15 +174,18 @@ $.extend(DataTable.ext.buttons, {
|
|
168
174
|
return;
|
169
175
|
}
|
170
176
|
|
177
|
+
// Reassign the column for the updated indexes
|
178
|
+
column = dt.column(conf.columns);
|
179
|
+
|
171
180
|
// This button controls the same column index but the text for the column has
|
172
181
|
// changed
|
173
182
|
that.text(conf._columnText(dt, conf));
|
174
183
|
|
175
184
|
// Since its a different column, we need to check its visibility
|
176
|
-
that.active(
|
185
|
+
that.active(column.visible());
|
177
186
|
});
|
178
187
|
|
179
|
-
this.active(
|
188
|
+
this.active(column.visible());
|
180
189
|
},
|
181
190
|
destroy: function (dt, button, conf) {
|
182
191
|
dt.off('column-visibility.dt' + conf.namespace).off(
|
@@ -5,17 +5,18 @@
|
|
5
5
|
--dt-row-stripe: 0, 0, 0;
|
6
6
|
--dt-row-hover: 0, 0, 0;
|
7
7
|
--dt-column-ordering: 0, 0, 0;
|
8
|
+
--dt-header-align-items: center;
|
8
9
|
--dt-html-background: white;
|
9
10
|
}
|
10
11
|
:root.dark {
|
11
12
|
--dt-html-background: rgb(33, 37, 41);
|
12
13
|
}
|
13
14
|
|
14
|
-
table.dataTable td.dt-control {
|
15
|
+
table.dataTable tbody td.dt-control {
|
15
16
|
text-align: center;
|
16
17
|
cursor: pointer;
|
17
18
|
}
|
18
|
-
table.dataTable td.dt-control:before {
|
19
|
+
table.dataTable tbody td.dt-control:before {
|
19
20
|
display: inline-block;
|
20
21
|
box-sizing: border-box;
|
21
22
|
content: "";
|
@@ -24,7 +25,7 @@ table.dataTable td.dt-control:before {
|
|
24
25
|
border-bottom: 5px solid transparent;
|
25
26
|
border-right: 0px solid transparent;
|
26
27
|
}
|
27
|
-
table.dataTable tr.dt-hasChild td.dt-control:before {
|
28
|
+
table.dataTable tbody tr.dt-hasChild td.dt-control:before {
|
28
29
|
border-top: 10px solid rgba(0, 0, 0, 0.5);
|
29
30
|
border-left: 5px solid transparent;
|
30
31
|
border-bottom: 0px solid transparent;
|
@@ -92,24 +93,14 @@ table.dataTable thead > tr > td.dt-ordering-desc span.dt-column-order:after {
|
|
92
93
|
content: "\25BC";
|
93
94
|
content: "\25BC"/"";
|
94
95
|
}
|
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
96
|
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
97
|
table.dataTable thead > tr > td.dt-orderable-asc span.dt-column-order,
|
105
98
|
table.dataTable thead > tr > td.dt-orderable-desc span.dt-column-order,
|
106
99
|
table.dataTable thead > tr > td.dt-ordering-asc span.dt-column-order,
|
107
100
|
table.dataTable thead > tr > td.dt-ordering-desc span.dt-column-order {
|
108
|
-
position:
|
109
|
-
right: 12px;
|
110
|
-
top: 0;
|
111
|
-
bottom: 0;
|
101
|
+
position: relative;
|
112
102
|
width: 12px;
|
103
|
+
height: 20px;
|
113
104
|
}
|
114
105
|
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
106
|
table.dataTable thead > tr > td.dt-orderable-asc span.dt-column-order:before,
|
@@ -151,6 +142,40 @@ table.dataTable thead > tr > td:active {
|
|
151
142
|
outline: none;
|
152
143
|
}
|
153
144
|
|
145
|
+
table.dataTable thead > tr > th div.dt-column-header,
|
146
|
+
table.dataTable thead > tr > th div.dt-column-footer,
|
147
|
+
table.dataTable thead > tr > td div.dt-column-header,
|
148
|
+
table.dataTable thead > tr > td div.dt-column-footer,
|
149
|
+
table.dataTable tfoot > tr > th div.dt-column-header,
|
150
|
+
table.dataTable tfoot > tr > th div.dt-column-footer,
|
151
|
+
table.dataTable tfoot > tr > td div.dt-column-header,
|
152
|
+
table.dataTable tfoot > tr > td div.dt-column-footer {
|
153
|
+
display: flex;
|
154
|
+
justify-content: space-between;
|
155
|
+
align-items: var(--dt-header-align-items);
|
156
|
+
gap: 4px;
|
157
|
+
}
|
158
|
+
table.dataTable thead > tr > th div.dt-column-header span.dt-column-title,
|
159
|
+
table.dataTable thead > tr > th div.dt-column-footer span.dt-column-title,
|
160
|
+
table.dataTable thead > tr > td div.dt-column-header span.dt-column-title,
|
161
|
+
table.dataTable thead > tr > td div.dt-column-footer span.dt-column-title,
|
162
|
+
table.dataTable tfoot > tr > th div.dt-column-header span.dt-column-title,
|
163
|
+
table.dataTable tfoot > tr > th div.dt-column-footer span.dt-column-title,
|
164
|
+
table.dataTable tfoot > tr > td div.dt-column-header span.dt-column-title,
|
165
|
+
table.dataTable tfoot > tr > td div.dt-column-footer span.dt-column-title {
|
166
|
+
flex-grow: 1;
|
167
|
+
}
|
168
|
+
table.dataTable thead > tr > th div.dt-column-header span.dt-column-title:empty,
|
169
|
+
table.dataTable thead > tr > th div.dt-column-footer span.dt-column-title:empty,
|
170
|
+
table.dataTable thead > tr > td div.dt-column-header span.dt-column-title:empty,
|
171
|
+
table.dataTable thead > tr > td div.dt-column-footer span.dt-column-title:empty,
|
172
|
+
table.dataTable tfoot > tr > th div.dt-column-header span.dt-column-title:empty,
|
173
|
+
table.dataTable tfoot > tr > th div.dt-column-footer span.dt-column-title:empty,
|
174
|
+
table.dataTable tfoot > tr > td div.dt-column-header span.dt-column-title:empty,
|
175
|
+
table.dataTable tfoot > tr > td div.dt-column-footer span.dt-column-title:empty {
|
176
|
+
display: none;
|
177
|
+
}
|
178
|
+
|
154
179
|
div.dt-scroll-body > table.dataTable > thead > tr > th,
|
155
180
|
div.dt-scroll-body > table.dataTable > thead > tr > td {
|
156
181
|
overflow: hidden;
|
@@ -246,10 +271,25 @@ table.dataTable td.dt-type-numeric,
|
|
246
271
|
table.dataTable td.dt-type-date {
|
247
272
|
text-align: right;
|
248
273
|
}
|
274
|
+
table.dataTable th.dt-type-numeric div.dt-column-header,
|
275
|
+
table.dataTable th.dt-type-numeric div.dt-column-footer, table.dataTable th.dt-type-date div.dt-column-header,
|
276
|
+
table.dataTable th.dt-type-date div.dt-column-footer,
|
277
|
+
table.dataTable td.dt-type-numeric div.dt-column-header,
|
278
|
+
table.dataTable td.dt-type-numeric div.dt-column-footer,
|
279
|
+
table.dataTable td.dt-type-date div.dt-column-header,
|
280
|
+
table.dataTable td.dt-type-date div.dt-column-footer {
|
281
|
+
flex-direction: row-reverse;
|
282
|
+
}
|
249
283
|
table.dataTable th.dt-left,
|
250
284
|
table.dataTable td.dt-left {
|
251
285
|
text-align: left;
|
252
286
|
}
|
287
|
+
table.dataTable th.dt-left div.dt-column-header,
|
288
|
+
table.dataTable th.dt-left div.dt-column-footer,
|
289
|
+
table.dataTable td.dt-left div.dt-column-header,
|
290
|
+
table.dataTable td.dt-left div.dt-column-footer {
|
291
|
+
flex-direction: row;
|
292
|
+
}
|
253
293
|
table.dataTable th.dt-center,
|
254
294
|
table.dataTable td.dt-center {
|
255
295
|
text-align: center;
|
@@ -258,10 +298,22 @@ table.dataTable th.dt-right,
|
|
258
298
|
table.dataTable td.dt-right {
|
259
299
|
text-align: right;
|
260
300
|
}
|
301
|
+
table.dataTable th.dt-right div.dt-column-header,
|
302
|
+
table.dataTable th.dt-right div.dt-column-footer,
|
303
|
+
table.dataTable td.dt-right div.dt-column-header,
|
304
|
+
table.dataTable td.dt-right div.dt-column-footer {
|
305
|
+
flex-direction: row-reverse;
|
306
|
+
}
|
261
307
|
table.dataTable th.dt-justify,
|
262
308
|
table.dataTable td.dt-justify {
|
263
309
|
text-align: justify;
|
264
310
|
}
|
311
|
+
table.dataTable th.dt-justify div.dt-column-header,
|
312
|
+
table.dataTable th.dt-justify div.dt-column-footer,
|
313
|
+
table.dataTable td.dt-justify div.dt-column-header,
|
314
|
+
table.dataTable td.dt-justify div.dt-column-footer {
|
315
|
+
flex-direction: row;
|
316
|
+
}
|
265
317
|
table.dataTable th.dt-nowrap,
|
266
318
|
table.dataTable td.dt-nowrap {
|
267
319
|
white-space: nowrap;
|
@@ -283,6 +335,16 @@ table.dataTable tfoot th.dt-head-left,
|
|
283
335
|
table.dataTable tfoot td.dt-head-left {
|
284
336
|
text-align: left;
|
285
337
|
}
|
338
|
+
table.dataTable thead th.dt-head-left div.dt-column-header,
|
339
|
+
table.dataTable thead th.dt-head-left div.dt-column-footer,
|
340
|
+
table.dataTable thead td.dt-head-left div.dt-column-header,
|
341
|
+
table.dataTable thead td.dt-head-left div.dt-column-footer,
|
342
|
+
table.dataTable tfoot th.dt-head-left div.dt-column-header,
|
343
|
+
table.dataTable tfoot th.dt-head-left div.dt-column-footer,
|
344
|
+
table.dataTable tfoot td.dt-head-left div.dt-column-header,
|
345
|
+
table.dataTable tfoot td.dt-head-left div.dt-column-footer {
|
346
|
+
flex-direction: row;
|
347
|
+
}
|
286
348
|
table.dataTable thead th.dt-head-center,
|
287
349
|
table.dataTable thead td.dt-head-center,
|
288
350
|
table.dataTable tfoot th.dt-head-center,
|
@@ -295,12 +357,32 @@ table.dataTable tfoot th.dt-head-right,
|
|
295
357
|
table.dataTable tfoot td.dt-head-right {
|
296
358
|
text-align: right;
|
297
359
|
}
|
360
|
+
table.dataTable thead th.dt-head-right div.dt-column-header,
|
361
|
+
table.dataTable thead th.dt-head-right div.dt-column-footer,
|
362
|
+
table.dataTable thead td.dt-head-right div.dt-column-header,
|
363
|
+
table.dataTable thead td.dt-head-right div.dt-column-footer,
|
364
|
+
table.dataTable tfoot th.dt-head-right div.dt-column-header,
|
365
|
+
table.dataTable tfoot th.dt-head-right div.dt-column-footer,
|
366
|
+
table.dataTable tfoot td.dt-head-right div.dt-column-header,
|
367
|
+
table.dataTable tfoot td.dt-head-right div.dt-column-footer {
|
368
|
+
flex-direction: row-reverse;
|
369
|
+
}
|
298
370
|
table.dataTable thead th.dt-head-justify,
|
299
371
|
table.dataTable thead td.dt-head-justify,
|
300
372
|
table.dataTable tfoot th.dt-head-justify,
|
301
373
|
table.dataTable tfoot td.dt-head-justify {
|
302
374
|
text-align: justify;
|
303
375
|
}
|
376
|
+
table.dataTable thead th.dt-head-justify div.dt-column-header,
|
377
|
+
table.dataTable thead th.dt-head-justify div.dt-column-footer,
|
378
|
+
table.dataTable thead td.dt-head-justify div.dt-column-header,
|
379
|
+
table.dataTable thead td.dt-head-justify div.dt-column-footer,
|
380
|
+
table.dataTable tfoot th.dt-head-justify div.dt-column-header,
|
381
|
+
table.dataTable tfoot th.dt-head-justify div.dt-column-footer,
|
382
|
+
table.dataTable tfoot td.dt-head-justify div.dt-column-header,
|
383
|
+
table.dataTable tfoot td.dt-head-justify div.dt-column-footer {
|
384
|
+
flex-direction: row;
|
385
|
+
}
|
304
386
|
table.dataTable thead th.dt-head-nowrap,
|
305
387
|
table.dataTable thead td.dt-head-nowrap,
|
306
388
|
table.dataTable tfoot th.dt-head-nowrap,
|
@@ -328,6 +410,10 @@ table.dataTable tbody td.dt-body-nowrap {
|
|
328
410
|
white-space: nowrap;
|
329
411
|
}
|
330
412
|
|
413
|
+
:root {
|
414
|
+
--dt-header-align-items: flex-end;
|
415
|
+
}
|
416
|
+
|
331
417
|
/*! Bootstrap 5 integration for DataTables
|
332
418
|
*
|
333
419
|
* ©2020 SpryMedia Ltd, all rights reserved.
|
@@ -398,6 +484,9 @@ div.dt-container div.dt-layout-table > div {
|
|
398
484
|
margin-left: 0;
|
399
485
|
}
|
400
486
|
}
|
487
|
+
div.dt-container {
|
488
|
+
position: relative;
|
489
|
+
}
|
401
490
|
div.dt-container div.dt-length label {
|
402
491
|
font-weight: normal;
|
403
492
|
text-align: left;
|
@@ -486,14 +575,19 @@ table.dataTable.table-sm > thead > tr td.dt-orderable-asc,
|
|
486
575
|
table.dataTable.table-sm > thead > tr td.dt-orderable-desc,
|
487
576
|
table.dataTable.table-sm > thead > tr td.dt-ordering-asc,
|
488
577
|
table.dataTable.table-sm > thead > tr td.dt-ordering-desc {
|
489
|
-
padding-right:
|
578
|
+
padding-right: 0.25rem;
|
490
579
|
}
|
491
580
|
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
581
|
table.dataTable.table-sm > thead > tr td.dt-orderable-asc span.dt-column-order,
|
493
582
|
table.dataTable.table-sm > thead > tr td.dt-orderable-desc span.dt-column-order,
|
494
583
|
table.dataTable.table-sm > thead > tr td.dt-ordering-asc span.dt-column-order,
|
495
584
|
table.dataTable.table-sm > thead > tr td.dt-ordering-desc span.dt-column-order {
|
496
|
-
right:
|
585
|
+
right: 0.25rem;
|
586
|
+
}
|
587
|
+
table.dataTable.table-sm > thead > tr th.dt-type-date span.dt-column-order, table.dataTable.table-sm > thead > tr th.dt-type-numeric span.dt-column-order,
|
588
|
+
table.dataTable.table-sm > thead > tr td.dt-type-date span.dt-column-order,
|
589
|
+
table.dataTable.table-sm > thead > tr td.dt-type-numeric span.dt-column-order {
|
590
|
+
left: 0.25rem;
|
497
591
|
}
|
498
592
|
|
499
593
|
div.dt-scroll-head table.table-bordered {
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! Buttons for DataTables 3.2.
|
1
|
+
/*! Buttons for DataTables 3.2.4
|
2
2
|
* © SpryMedia Ltd - datatables.net/license
|
3
3
|
*/
|
4
4
|
|
@@ -494,6 +494,10 @@ $.extend(Buttons.prototype, {
|
|
494
494
|
|
495
495
|
$(button.node).remove();
|
496
496
|
|
497
|
+
if (button.inserter) {
|
498
|
+
$(button.inserter).remove();
|
499
|
+
}
|
500
|
+
|
497
501
|
var idx = $.inArray(button, host);
|
498
502
|
host.splice(idx, 1);
|
499
503
|
|
@@ -776,6 +780,7 @@ $.extend(Buttons.prototype, {
|
|
776
780
|
var configDom = this.c.dom;
|
777
781
|
var textNode;
|
778
782
|
var dt = this.s.dt;
|
783
|
+
var setLinerTab = false;
|
779
784
|
var text = function (opt) {
|
780
785
|
return typeof opt === 'function' ? opt(dt, button, config) : opt;
|
781
786
|
};
|
@@ -809,6 +814,7 @@ $.extend(Buttons.prototype, {
|
|
809
814
|
return {
|
810
815
|
conf: config,
|
811
816
|
node: spacer,
|
817
|
+
nodeChild: null,
|
812
818
|
inserter: spacer,
|
813
819
|
buttons: [],
|
814
820
|
inCollection: inCollection,
|
@@ -863,7 +869,6 @@ $.extend(Buttons.prototype, {
|
|
863
869
|
|
864
870
|
button = $('<' + tag + '/>')
|
865
871
|
.addClass(dom.className)
|
866
|
-
.attr('tabindex', this.s.dt.settings()[0].iTabIndex)
|
867
872
|
.attr('aria-controls', this.s.dt.table().node().id)
|
868
873
|
.on('click.dtb', function (e) {
|
869
874
|
e.preventDefault();
|
@@ -897,14 +902,20 @@ $.extend(Buttons.prototype, {
|
|
897
902
|
}
|
898
903
|
|
899
904
|
if (dom.liner.tag) {
|
900
|
-
var
|
905
|
+
var lc = dom.liner.tag.toLowerCase();
|
906
|
+
var liner = $('<' + lc + '/>')
|
901
907
|
.html(text(config.text))
|
902
908
|
.addClass(dom.liner.className);
|
903
909
|
|
904
|
-
if (
|
910
|
+
if (lc === 'a') {
|
905
911
|
liner.attr('href', '#');
|
906
912
|
}
|
907
913
|
|
914
|
+
if (lc === 'a' || lc === 'button') {
|
915
|
+
liner.attr('tabindex', this.s.dt.settings()[0].iTabIndex);
|
916
|
+
setLinerTab = true;
|
917
|
+
}
|
918
|
+
|
908
919
|
button.append(liner);
|
909
920
|
textNode = liner;
|
910
921
|
}
|
@@ -913,6 +924,10 @@ $.extend(Buttons.prototype, {
|
|
913
924
|
textNode = button;
|
914
925
|
}
|
915
926
|
|
927
|
+
if (! setLinerTab) {
|
928
|
+
button.attr('tabindex', this.s.dt.settings()[0].iTabIndex)
|
929
|
+
}
|
930
|
+
|
916
931
|
if (config.enabled === false) {
|
917
932
|
button.addClass(dom.disabled);
|
918
933
|
}
|
@@ -1041,9 +1056,12 @@ $.extend(Buttons.prototype, {
|
|
1041
1056
|
splitDiv.append(dropButton).attr(dropButtonConfig.attr);
|
1042
1057
|
}
|
1043
1058
|
|
1059
|
+
var node = isSplit ? splitDiv.get(0) : button.get(0);
|
1060
|
+
|
1044
1061
|
return {
|
1045
1062
|
conf: config,
|
1046
|
-
node:
|
1063
|
+
node: node,
|
1064
|
+
nodeChild: node && node.children && node.children.length ? node.children[0] : null,
|
1047
1065
|
inserter: isSplit ? splitDiv : inserter,
|
1048
1066
|
buttons: [],
|
1049
1067
|
inCollection: inCollection,
|
@@ -1118,7 +1136,7 @@ $.extend(Buttons.prototype, {
|
|
1118
1136
|
}
|
1119
1137
|
|
1120
1138
|
for (var i = 0, ien = buttons.length; i < ien; i++) {
|
1121
|
-
if (buttons[i].node === node ||
|
1139
|
+
if (buttons[i].node === node || buttons[i].nodeChild === node) {
|
1122
1140
|
return buttons[i];
|
1123
1141
|
}
|
1124
1142
|
|
@@ -2149,7 +2167,7 @@ Buttons.defaults = {
|
|
2149
2167
|
* @type {string}
|
2150
2168
|
* @static
|
2151
2169
|
*/
|
2152
|
-
Buttons.version = '3.2.
|
2170
|
+
Buttons.version = '3.2.4';
|
2153
2171
|
|
2154
2172
|
$.extend(_dtButtons, {
|
2155
2173
|
collection: {
|