forked from giterlizzi/dokuwiki-plugin-datatables
-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
79 lines (51 loc) · 1.77 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
/*!
* DokuWiki DataTables Plugins
*
* Home http://dokuwiki.org/template:bootstrap3
* Author Giuseppe Di Terlizzi <[email protected]>
* License GPL 2 (http://www.gnu.org/licenses/gpl.html)
* Copyright (C) 2015-2016, Giuseppe Di Terlizzi
*/
jQuery(document).ready(function() {
var WRAP_TABLES_SELECTOR = '#dokuwiki__content div.dt-wrapper table',
ALL_TABLES_SELECTOR = '#dokuwiki__content table thead';
var $wrap_tables = jQuery(WRAP_TABLES_SELECTOR);
function init_datatables($target_table, dt_config) {
var headerRows = dt_config.headerRows;
if (headerRows) {
var $thead = jQuery('thead', $target_table),
$tbody = jQuery('tbody', $target_table),
missingThead = $thead.size() === 0;
headerRows -= $thead.children().size();
if (missingThead) {
$thead = jQuery('<thead>');
}
while(headerRows > 0) {
headerRows--;
$thead.append($tbody.children().first());
}
if (missingThead) {
$target_table.prepend($thead);
}
}
if (jQuery('thead > tr', $target_table).size() && ! jQuery('tbody', $target_table).find('[rowspan], [colspan]').length) {
$target_table.DataTable(dt_config);
}
}
if (JSINFO.plugin.datatables.enableForAllTables) {
jQuery(ALL_TABLES_SELECTOR).each(function() {
var $target_table = jQuery(this).parent();
if (! $target_table.parents('.dt-wrapper').length) {
init_datatables($target_table, JSINFO.plugin.datatables.config);
}
});
}
if ($wrap_tables.length) {
$wrap_tables.each(function() {
var $target_table = jQuery(this),
wrap_config = jQuery(this).parents('.dt-wrapper').data(),
dt_config = jQuery.extend(wrap_config, JSINFO.plugin.datatables.config);
init_datatables($target_table, dt_config);
});
}
});