bootstrap-table-rails 1.13.4 → 1.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (119) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +208 -91
  3. data/lib/bootstrap-table-rails/version.rb +1 -1
  4. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table-locale-all.js +5988 -2758
  5. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table-vue.esm.js +2281 -0
  6. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table-vue.js +2289 -0
  7. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table.css +172 -58
  8. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table.js +7429 -3853
  9. data/vendor/assets/javascripts/bootstrap-table/extensions/accent-neutralise/bootstrap-table-accent-neutralise.js +2667 -276
  10. data/vendor/assets/javascripts/bootstrap-table/extensions/addrbar/bootstrap-table-addrbar.js +1650 -270
  11. data/vendor/assets/javascripts/bootstrap-table/extensions/auto-refresh/bootstrap-table-auto-refresh.js +1092 -92
  12. data/vendor/assets/javascripts/bootstrap-table/extensions/cookie/bootstrap-table-cookie.js +2984 -549
  13. data/vendor/assets/javascripts/bootstrap-table/extensions/copy-rows/bootstrap-table-copy-rows.js +1114 -120
  14. data/vendor/assets/javascripts/bootstrap-table/extensions/custom-view/bootstrap-table-custom-view.js +1587 -0
  15. data/vendor/assets/javascripts/bootstrap-table/extensions/defer-url/bootstrap-table-defer-url.js +819 -48
  16. data/vendor/assets/javascripts/bootstrap-table/extensions/editable/bootstrap-table-editable.js +2461 -259
  17. data/vendor/assets/javascripts/bootstrap-table/extensions/export/bootstrap-table-export.js +2692 -335
  18. data/vendor/assets/javascripts/bootstrap-table/extensions/filter-control/bootstrap-table-filter-control.css +4 -4
  19. data/vendor/assets/javascripts/bootstrap-table/extensions/filter-control/bootstrap-table-filter-control.js +2956 -910
  20. data/vendor/assets/javascripts/bootstrap-table/extensions/filter-control/utils.js +2361 -0
  21. data/vendor/assets/javascripts/bootstrap-table/extensions/fixed-columns/bootstrap-table-fixed-columns.css +25 -0
  22. data/vendor/assets/javascripts/bootstrap-table/extensions/fixed-columns/bootstrap-table-fixed-columns.js +1544 -0
  23. data/vendor/assets/javascripts/bootstrap-table/extensions/group-by-v2/bootstrap-table-group-by.css +2 -6
  24. data/vendor/assets/javascripts/bootstrap-table/extensions/group-by-v2/bootstrap-table-group-by.js +1864 -233
  25. data/vendor/assets/javascripts/bootstrap-table/extensions/i18n-enhance/bootstrap-table-i18n-enhance.js +112 -37
  26. data/vendor/assets/javascripts/bootstrap-table/extensions/key-events/bootstrap-table-key-events.js +1386 -101
  27. data/vendor/assets/javascripts/bootstrap-table/extensions/mobile/bootstrap-table-mobile.js +1238 -151
  28. data/vendor/assets/javascripts/bootstrap-table/extensions/multiple-sort/bootstrap-table-multiple-sort.js +2140 -424
  29. data/vendor/assets/javascripts/bootstrap-table/extensions/page-jump-to/bootstrap-table-page-jump-to.css +11 -8
  30. data/vendor/assets/javascripts/bootstrap-table/extensions/page-jump-to/bootstrap-table-page-jump-to.js +1042 -57
  31. data/vendor/assets/javascripts/bootstrap-table/extensions/pipeline/bootstrap-table-pipeline.js +1172 -340
  32. data/vendor/assets/javascripts/bootstrap-table/extensions/print/bootstrap-table-print.js +2199 -144
  33. data/vendor/assets/javascripts/bootstrap-table/extensions/reorder-columns/bootstrap-table-reorder-columns.js +1402 -196
  34. data/vendor/assets/javascripts/bootstrap-table/extensions/reorder-rows/bootstrap-table-reorder-rows.css +10 -10
  35. data/vendor/assets/javascripts/bootstrap-table/extensions/reorder-rows/bootstrap-table-reorder-rows.js +985 -131
  36. data/vendor/assets/javascripts/bootstrap-table/extensions/resizable/bootstrap-table-resizable.js +715 -85
  37. data/vendor/assets/javascripts/bootstrap-table/extensions/sticky-header/bootstrap-table-sticky-header.css +1 -2
  38. data/vendor/assets/javascripts/bootstrap-table/extensions/sticky-header/bootstrap-table-sticky-header.js +1151 -193
  39. data/vendor/assets/javascripts/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.js +2584 -372
  40. data/vendor/assets/javascripts/bootstrap-table/extensions/treegrid/bootstrap-table-treegrid.js +1922 -118
  41. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-af-ZA.js +770 -52
  42. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ar-SA.js +771 -53
  43. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-bg-BG.js +771 -0
  44. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ca-ES.js +771 -56
  45. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-cs-CZ.js +771 -56
  46. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-da-DK.js +770 -64
  47. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-de-DE.js +770 -64
  48. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-el-GR.js +770 -40
  49. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-en-US.js +770 -61
  50. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-AR.js +771 -43
  51. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-CL.js +771 -56
  52. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-CR.js +770 -52
  53. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-ES.js +770 -107
  54. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-MX.js +772 -63
  55. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-NI.js +770 -52
  56. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-SP.js +770 -52
  57. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-et-EE.js +770 -55
  58. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-eu-EU.js +770 -55
  59. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fa-IR.js +770 -55
  60. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fi-FI.js +770 -61
  61. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-BE.js +771 -40
  62. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-CH.js +771 -0
  63. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-FR.js +772 -107
  64. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-LU.js +771 -0
  65. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-he-IL.js +770 -55
  66. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-hr-HR.js +771 -56
  67. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-hu-HU.js +770 -55
  68. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-id-ID.js +770 -61
  69. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-it-IT.js +772 -63
  70. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ja-JP.js +770 -55
  71. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ka-GE.js +770 -52
  72. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ko-KR.js +770 -49
  73. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ms-MY.js +770 -55
  74. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nb-NO.js +770 -49
  75. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nl-BE.js +771 -0
  76. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nl-NL.js +771 -64
  77. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pl-PL.js +770 -49
  78. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pt-BR.js +773 -53
  79. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pt-PT.js +770 -55
  80. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ro-RO.js +770 -55
  81. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ru-RU.js +770 -85
  82. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sk-SK.js +770 -61
  83. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sr-Cyrl-RS.js +771 -0
  84. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sr-Latn-RS.js +771 -0
  85. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sv-SE.js +770 -49
  86. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-th-TH.js +770 -49
  87. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-tr-TR.js +771 -53
  88. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-uk-UA.js +770 -85
  89. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ur-PK.js +770 -49
  90. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-uz-Latn-UZ.js +770 -61
  91. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-vi-VN.js +770 -40
  92. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-zh-CN.js +770 -58
  93. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-zh-TW.js +770 -52
  94. data/vendor/assets/javascripts/bootstrap-table/themes/bootstrap-table/bootstrap-table.css +768 -0
  95. data/vendor/assets/javascripts/bootstrap-table/themes/bootstrap-table/bootstrap-table.js +1049 -0
  96. data/vendor/assets/javascripts/bootstrap-table/themes/bootstrap-table/fonts/bootstrap-table.eot +0 -0
  97. data/vendor/assets/javascripts/bootstrap-table/themes/bootstrap-table/fonts/bootstrap-table.svg +28 -0
  98. data/vendor/assets/javascripts/bootstrap-table/themes/bootstrap-table/fonts/bootstrap-table.ttf +0 -0
  99. data/vendor/assets/javascripts/bootstrap-table/themes/bootstrap-table/fonts/bootstrap-table.woff +0 -0
  100. data/vendor/assets/javascripts/bootstrap-table/themes/bulma/bootstrap-table-bulma.css +420 -0
  101. data/vendor/assets/javascripts/bootstrap-table/themes/bulma/bootstrap-table-bulma.js +1041 -0
  102. data/vendor/assets/javascripts/bootstrap-table/themes/foundation/bootstrap-table-foundation.css +394 -0
  103. data/vendor/assets/javascripts/bootstrap-table/themes/foundation/bootstrap-table-foundation.js +1051 -0
  104. data/vendor/assets/javascripts/bootstrap-table/themes/materialize/bootstrap-table-materialize.css +390 -0
  105. data/vendor/assets/javascripts/bootstrap-table/themes/materialize/bootstrap-table-materialize.js +1044 -0
  106. data/vendor/assets/javascripts/bootstrap-table/themes/semantic/bootstrap-table-semantic.css +402 -0
  107. data/vendor/assets/javascripts/bootstrap-table/themes/semantic/bootstrap-table-semantic.js +1018 -0
  108. metadata +32 -18
  109. data/vendor/assets/javascripts/bootstrap-table/extensions/auto-refresh/bootstrap-table-auto-refresh.css +0 -3
  110. data/vendor/assets/javascripts/bootstrap-table/extensions/group-by/bootstrap-table-group-by.css +0 -53
  111. data/vendor/assets/javascripts/bootstrap-table/extensions/group-by/bootstrap-table-group-by.js +0 -257
  112. data/vendor/assets/javascripts/bootstrap-table/extensions/multi-column-toggle/bootstrap-table-multi-toggle.js +0 -105
  113. data/vendor/assets/javascripts/bootstrap-table/extensions/multiple-search/bootstrap-table-multiple-search.js +0 -85
  114. data/vendor/assets/javascripts/bootstrap-table/extensions/multiple-selection-row/bootstrap-table-multiple-selection-row.css +0 -17
  115. data/vendor/assets/javascripts/bootstrap-table/extensions/multiple-selection-row/bootstrap-table-multiple-selection-row.js +0 -143
  116. data/vendor/assets/javascripts/bootstrap-table/extensions/natural-sorting/bootstrap-table-natural-sorting.js +0 -83
  117. data/vendor/assets/javascripts/bootstrap-table/extensions/select2-filter/bootstrap-table-select2-filter.js +0 -341
  118. data/vendor/assets/javascripts/bootstrap-table/extensions/tree-column/bootstrap-table-tree-column.css +0 -1
  119. data/vendor/assets/javascripts/bootstrap-table/extensions/tree-column/bootstrap-table-tree-column.js +0 -142
@@ -1,85 +0,0 @@
1
- (function (global, factory) {
2
- if (typeof define === "function" && define.amd) {
3
- define([], factory);
4
- } else if (typeof exports !== "undefined") {
5
- factory();
6
- } else {
7
- var mod = {
8
- exports: {}
9
- };
10
- factory();
11
- global.bootstrapTableMultipleSearch = mod.exports;
12
- }
13
- })(this, function () {
14
- 'use strict';
15
-
16
- /**
17
- * @author: Dennis Hernández
18
- * @webSite: http://djhvscf.github.io/Blog
19
- * @version: v1.0.0
20
- */
21
-
22
- !function ($) {
23
-
24
- 'use strict';
25
-
26
- $.extend($.fn.bootstrapTable.defaults, {
27
- multipleSearch: false,
28
- delimeter: " "
29
- });
30
-
31
- var BootstrapTable = $.fn.bootstrapTable.Constructor,
32
- _initSearch = BootstrapTable.prototype.initSearch;
33
-
34
- BootstrapTable.prototype.initSearch = function () {
35
- if (this.options.multipleSearch) {
36
- if (this.searchText === undefined) {
37
- return;
38
- }
39
- var strArray = this.searchText.split(this.options.delimeter),
40
- that = this,
41
- f = $.isEmptyObject(this.filterColumns) ? null : this.filterColumns,
42
- dataFiltered = [];
43
-
44
- if (strArray.length === 1) {
45
- _initSearch.apply(this, Array.prototype.slice.apply(arguments));
46
- } else {
47
- for (var i = 0; i < strArray.length; i++) {
48
- var str = strArray[i].trim();
49
- dataFiltered = str ? $.grep(dataFiltered.length === 0 ? this.options.data : dataFiltered, function (item, i) {
50
- for (var key in item) {
51
- key = $.isNumeric(key) ? parseInt(key, 10) : key;
52
- var value = item[key],
53
- column = that.columns[that.fieldsColumnsIndex[key]],
54
- j = $.inArray(key, that.header.fields);
55
-
56
- // Fix #142: search use formated data
57
- if (column && column.searchFormatter) {
58
- value = $.fn.bootstrapTable.utils.calculateObjectValue(column, that.header.formatters[j], [value, item, i], value);
59
- }
60
-
61
- var index = $.inArray(key, that.header.fields);
62
- if (index !== -1 && that.header.searchables[index] && (typeof value === 'string' || typeof value === 'number')) {
63
- if (that.options.strictSearch) {
64
- if ((value + '').toLowerCase() === str) {
65
- return true;
66
- }
67
- } else {
68
- if ((value + '').toLowerCase().indexOf(str) !== -1) {
69
- return true;
70
- }
71
- }
72
- }
73
- }
74
- return false;
75
- }) : this.data;
76
- }
77
-
78
- this.data = dataFiltered;
79
- }
80
- } else {
81
- _initSearch.apply(this, Array.prototype.slice.apply(arguments));
82
- }
83
- };
84
- }(jQuery);
85
- });
@@ -1,17 +0,0 @@
1
- .multiple-select-row-selected {
2
- background: lightBlue
3
- }
4
-
5
- .table tbody tr:hover td,
6
- .table tbody tr:hover th {
7
- background-color: transparent;
8
- }
9
-
10
-
11
- .table-striped tbody tr:nth-child(odd):hover td {
12
- background-color: #F9F9F9;
13
- }
14
-
15
- .fixed-table-container tbody .selected td {
16
- background: lightBlue;
17
- }
@@ -1,143 +0,0 @@
1
- (function (global, factory) {
2
- if (typeof define === "function" && define.amd) {
3
- define([], factory);
4
- } else if (typeof exports !== "undefined") {
5
- factory();
6
- } else {
7
- var mod = {
8
- exports: {}
9
- };
10
- factory();
11
- global.bootstrapTableMultipleSelectionRow = mod.exports;
12
- }
13
- })(this, function () {
14
- "use strict";
15
-
16
- /**
17
- * @author: Dennis Hernández
18
- * @webSite: http://djhvscf.github.io/Blog
19
- * @version: v1.0.0
20
- */
21
-
22
- !function ($) {
23
-
24
- 'use strict';
25
-
26
- document.onselectstart = function () {
27
- return false;
28
- };
29
-
30
- var getTableObjectFromCurrentTarget = function getTableObjectFromCurrentTarget(currentTarget) {
31
- currentTarget = $(currentTarget);
32
- return currentTarget.is("table") ? currentTarget : currentTarget.parents().find(".table");
33
- };
34
-
35
- var getRow = function getRow(target) {
36
- target = $(target);
37
- return target.parent().parent();
38
- };
39
-
40
- var onRowClick = function onRowClick(e) {
41
- var that = getTableObjectFromCurrentTarget(e.currentTarget);
42
-
43
- if (window.event.ctrlKey) {
44
- toggleRow(e.currentTarget, that, false, false);
45
- }
46
-
47
- if (window.event.button === 0) {
48
- if (!window.event.ctrlKey && !window.event.shiftKey) {
49
- clearAll(that);
50
- toggleRow(e.currentTarget, that, false, false);
51
- }
52
-
53
- if (window.event.shiftKey) {
54
- selectRowsBetweenIndexes([that.bootstrapTable("getOptions").multipleSelectRowLastSelectedRow.rowIndex, e.currentTarget.rowIndex], that);
55
- }
56
- }
57
- };
58
-
59
- var onCheckboxChange = function onCheckboxChange(e) {
60
- var that = getTableObjectFromCurrentTarget(e.currentTarget);
61
- clearAll(that);
62
- toggleRow(getRow(e.currentTarget), that, false, false);
63
- };
64
-
65
- var toggleRow = function toggleRow(row, that, clearAll, useShift) {
66
- if (clearAll) {
67
- row = $(row);
68
- that.bootstrapTable("getOptions").multipleSelectRowLastSelectedRow = undefined;
69
- row.removeClass(that.bootstrapTable("getOptions").multipleSelectRowCssClass);
70
- that.bootstrapTable("uncheck", row.data("index"));
71
- } else {
72
- that.bootstrapTable("getOptions").multipleSelectRowLastSelectedRow = row;
73
- row = $(row);
74
- if (useShift) {
75
- row.addClass(that.bootstrapTable("getOptions").multipleSelectRowCssClass);
76
- that.bootstrapTable("check", row.data("index"));
77
- } else {
78
- if (row.hasClass(that.bootstrapTable("getOptions").multipleSelectRowCssClass)) {
79
- row.removeClass(that.bootstrapTable("getOptions").multipleSelectRowCssClass);
80
- that.bootstrapTable("uncheck", row.data("index"));
81
- } else {
82
- row.addClass(that.bootstrapTable("getOptions").multipleSelectRowCssClass);
83
- that.bootstrapTable("check", row.data("index"));
84
- }
85
- }
86
- }
87
- };
88
-
89
- var selectRowsBetweenIndexes = function selectRowsBetweenIndexes(indexes, that) {
90
- indexes.sort(function (a, b) {
91
- return a - b;
92
- });
93
-
94
- for (var i = indexes[0]; i <= indexes[1]; i++) {
95
- toggleRow(that.bootstrapTable("getOptions").multipleSelectRowRows[i - 1], that, false, true);
96
- }
97
- };
98
-
99
- var clearAll = function clearAll(that) {
100
- for (var i = 0; i < that.bootstrapTable("getOptions").multipleSelectRowRows.length; i++) {
101
- toggleRow(that.bootstrapTable("getOptions").multipleSelectRowRows[i], that, true, false);
102
- }
103
- };
104
-
105
- $.extend($.fn.bootstrapTable.defaults, {
106
- multipleSelectRow: false,
107
- multipleSelectRowCssClass: 'multiple-select-row-selected',
108
- //internal variables used by the extension
109
- multipleSelectRowLastSelectedRow: undefined,
110
- multipleSelectRowRows: []
111
- });
112
-
113
- var BootstrapTable = $.fn.bootstrapTable.Constructor,
114
- _init = BootstrapTable.prototype.init,
115
- _initBody = BootstrapTable.prototype.initBody;
116
-
117
- BootstrapTable.prototype.init = function () {
118
- if (this.options.multipleSelectRow) {
119
- var that = this;
120
-
121
- //Make sure that the internal variables have the correct value
122
- this.options.multipleSelectRowLastSelectedRow = undefined;
123
- this.options.multipleSelectRowRows = [];
124
-
125
- this.$el.on("post-body.bs.table", function (e) {
126
- setTimeout(function () {
127
- that.options.multipleSelectRowRows = that.$body.children();
128
- that.options.multipleSelectRowRows.click(onRowClick);
129
- that.options.multipleSelectRowRows.find("input[type=checkbox]").change(onCheckboxChange);
130
- }, 1);
131
- });
132
- }
133
-
134
- _init.apply(this, Array.prototype.slice.apply(arguments));
135
- };
136
-
137
- BootstrapTable.prototype.clearAllMultipleSelectionRow = function () {
138
- clearAll(this);
139
- };
140
-
141
- $.fn.bootstrapTable.methods.push('clearAllMultipleSelectionRow');
142
- }(jQuery);
143
- });
@@ -1,83 +0,0 @@
1
- (function (global, factory) {
2
- if (typeof define === "function" && define.amd) {
3
- define([], factory);
4
- } else if (typeof exports !== "undefined") {
5
- factory();
6
- } else {
7
- var mod = {
8
- exports: {}
9
- };
10
- factory();
11
- global.bootstrapTableNaturalSorting = mod.exports;
12
- }
13
- })(this, function () {
14
- "use strict";
15
-
16
- /**
17
- * @author: Brian Huisman
18
- * @webSite: http://www.greywyvern.com
19
- * @version: v1.0.0
20
- * JS functions to allow natural sorting on bootstrap-table columns
21
- * add data-sorter="alphanum" or data-sorter="numericOnly" to any th
22
- *
23
- * @update Dennis Hernández <http://djhvscf.github.io/Blog>
24
- * @update Duane May
25
- */
26
-
27
- function alphanum(a, b) {
28
- function chunkify(t) {
29
- var tz = [],
30
- x = 0,
31
- y = -1,
32
- n = 0,
33
- i,
34
- j;
35
-
36
- while (i = (j = t.charAt(x++)).charCodeAt(0)) {
37
- var m = i === 46 || i >= 48 && i <= 57;
38
- if (m !== n) {
39
- tz[++y] = "";
40
- n = m;
41
- }
42
- tz[y] += j;
43
- }
44
- return tz;
45
- }
46
-
47
- function stringfy(v) {
48
- if (typeof v === "number") {
49
- v = "" + v;
50
- }
51
- if (!v) {
52
- v = "";
53
- }
54
- return v;
55
- }
56
-
57
- var aa = chunkify(stringfy(a));
58
- var bb = chunkify(stringfy(b));
59
-
60
- for (x = 0; aa[x] && bb[x]; x++) {
61
- if (aa[x] !== bb[x]) {
62
- var c = Number(aa[x]),
63
- d = Number(bb[x]);
64
-
65
- if (c == aa[x] && d == bb[x]) {
66
- return c - d;
67
- } else {
68
- return aa[x] > bb[x] ? 1 : -1;
69
- }
70
- }
71
- }
72
- return aa.length - bb.length;
73
- }
74
-
75
- function numericOnly(a, b) {
76
- function stripNonNumber(s) {
77
- s = s.replace(new RegExp(/[^0-9]/g), "");
78
- return parseInt(s, 10);
79
- }
80
-
81
- return stripNonNumber(a) - stripNonNumber(b);
82
- }
83
- });
@@ -1,341 +0,0 @@
1
- (function (global, factory) {
2
- if (typeof define === "function" && define.amd) {
3
- define([], factory);
4
- } else if (typeof exports !== "undefined") {
5
- factory();
6
- } else {
7
- var mod = {
8
- exports: {}
9
- };
10
- factory();
11
- global.bootstrapTableSelect2Filter = mod.exports;
12
- }
13
- })(this, function () {
14
- 'use strict';
15
-
16
- /**
17
- * @author: Jewway
18
- * @version: v1.1.1
19
- */
20
-
21
- !function ($) {
22
- 'use strict';
23
-
24
- function getCurrentHeader(that) {
25
- var header = that.$header;
26
- if (that.options.height) {
27
- header = that.$tableHeader;
28
- }
29
-
30
- return header;
31
- }
32
-
33
- function initFilterValues(that) {
34
- if (!$.isEmptyObject(that.filterColumnsPartial)) {
35
- var $header = getCurrentHeader(that);
36
-
37
- $.each(that.columns, function (idx, column) {
38
- var value = that.filterColumnsPartial[column.field];
39
-
40
- if (column.filter) {
41
- if (column.filter.setFilterValue) {
42
- var $filter = $header.find('[data-field=' + column.field + '] .filter');
43
- column.filter.setFilterValue($filter, column.field, value);
44
- } else {
45
- var $ele = $header.find('[data-filter-field=' + column.field + ']');
46
- switch (column.filter.type) {
47
- case 'input':
48
- $ele.val(value);
49
- case 'select':
50
- $ele.val(value).trigger('change');
51
- }
52
- }
53
- }
54
- });
55
- }
56
- }
57
-
58
- function createFilter(that, header) {
59
- var enableFilter = false,
60
- isVisible,
61
- html,
62
- timeoutId = 0;
63
-
64
- $.each(that.columns, function (i, column) {
65
- isVisible = 'hidden';
66
- html = null;
67
-
68
- if (!column.visible) {
69
- return;
70
- }
71
-
72
- if (!column.filter) {
73
- html = $('<div class="no-filter"></div>');
74
- } else {
75
- var filterClass = column.filter.class ? ' ' + column.filter.class : '';
76
- html = $('<div style="margin: 0px 2px 2px 2px;" class="filter' + filterClass + '">');
77
-
78
- if (column.searchable) {
79
- enableFilter = true;
80
- isVisible = 'visible';
81
- }
82
-
83
- if (column.filter.template) {
84
- html.append(column.filter.template(that, column, isVisible));
85
- } else {
86
- var $filter = $(that.options.filterTemplate[column.filter.type.toLowerCase()](that, column, isVisible));
87
-
88
- switch (column.filter.type) {
89
- case 'input':
90
- var cpLock = true;
91
- $filter.off('compositionstart').on('compositionstart', function (event) {
92
- cpLock = false;
93
- });
94
-
95
- $filter.off('compositionend').on('compositionend', function (event) {
96
- cpLock = true;
97
- var $input = $(this);
98
- clearTimeout(timeoutId);
99
- timeoutId = setTimeout(function () {
100
- that.onColumnSearch(event, column.field, $input.val());
101
- }, that.options.searchTimeOut);
102
- });
103
-
104
- $filter.off('keyup').on('keyup', function (event) {
105
- if (cpLock) {
106
- var $input = $(this);
107
- clearTimeout(timeoutId);
108
- timeoutId = setTimeout(function () {
109
- that.onColumnSearch(event, column.field, $input.val());
110
- }, that.options.searchTimeOut);
111
- }
112
- });
113
-
114
- $filter.off('mouseup').on('mouseup', function (event) {
115
- var $input = $(this),
116
- oldValue = $input.val();
117
-
118
- if (oldValue === "") {
119
- return;
120
- }
121
-
122
- setTimeout(function () {
123
- var newValue = $input.val();
124
-
125
- if (newValue === "") {
126
- clearTimeout(timeoutId);
127
- timeoutId = setTimeout(function () {
128
- that.onColumnSearch(event, column.field, newValue);
129
- }, that.options.searchTimeOut);
130
- }
131
- }, 1);
132
- });
133
- break;
134
- case 'select':
135
- $filter.on('select2:select', function (event) {
136
- that.onColumnSearch(event, column.field, $(this).val());
137
- });
138
-
139
- $filter.on("select2:unselecting", function (event) {
140
- var $select2 = $(this);
141
- event.preventDefault();
142
- $select2.val(null).trigger('change');
143
- that.searchText = undefined;
144
- that.onColumnSearch(event, column.field, $select2.val());
145
- });
146
- break;
147
- }
148
-
149
- html.append($filter);
150
- }
151
- }
152
-
153
- $.each(header.children().children(), function (i, tr) {
154
- tr = $(tr);
155
- if (tr.data('field') === column.field) {
156
- tr.find('.fht-cell').append(html);
157
- return false;
158
- }
159
- });
160
- });
161
-
162
- if (!enableFilter) {
163
- header.find('.filter').hide();
164
- }
165
- }
166
-
167
- function initSelect2(that) {
168
- var $header = getCurrentHeader(that);
169
-
170
- $.each(that.columns, function (idx, column) {
171
- if (column.filter && column.filter.type === 'select') {
172
- var $selectEle = $header.find('select[data-filter-field="' + column.field + '"]');
173
-
174
- if ($selectEle.length > 0 && !$selectEle.data().select2) {
175
- var select2Opts = {
176
- placeholder: "",
177
- allowClear: true,
178
- data: column.filter.data,
179
- dropdownParent: that.$el.closest(".bootstrap-table")
180
- };
181
-
182
- $selectEle.select2(select2Opts);
183
- }
184
- }
185
- });
186
- }
187
-
188
- $.extend($.fn.bootstrapTable.defaults, {
189
- filter: false,
190
- filterValues: {},
191
- filterTemplate: {
192
- input: function input(instance, column, isVisible) {
193
- return '<input type="text" class="form-control" data-filter-field="' + column.field + '" style="width: 100%; visibility:' + isVisible + '">';
194
- },
195
- select: function select(instance, column, isVisible) {
196
- return '<select data-filter-field="' + column.field + '" style="width: 100%; visibility:' + isVisible + '"></select>';
197
- }
198
- },
199
- onColumnSearch: function onColumnSearch(field, text) {
200
- return false;
201
- }
202
- });
203
-
204
- $.extend($.fn.bootstrapTable.COLUMN_DEFAULTS, {
205
- filter: undefined
206
- });
207
-
208
- $.extend($.fn.bootstrapTable.Constructor.EVENTS, {
209
- 'column-search.bs.table': 'onColumnSearch'
210
- });
211
-
212
- var BootstrapTable = $.fn.bootstrapTable.Constructor,
213
- _init = BootstrapTable.prototype.init,
214
- _initHeader = BootstrapTable.prototype.initHeader,
215
- _initSearch = BootstrapTable.prototype.initSearch;
216
-
217
- BootstrapTable.prototype.init = function () {
218
- //Make sure that the filtercontrol option is set
219
- if (this.options.filter) {
220
- var that = this;
221
-
222
- if (that.options.filterTemplate) {
223
- that.options.filterTemplate = $.extend({}, $.fn.bootstrapTable.defaults.filterTemplate, that.options.filterTemplate);
224
- }
225
-
226
- if (!$.isEmptyObject(that.options.filterValues)) {
227
- that.filterColumnsPartial = that.options.filterValues;
228
- that.options.filterValues = {};
229
- }
230
-
231
- this.$el.on('reset-view.bs.table', function () {
232
- //Create controls on $tableHeader if the height is set
233
- if (!that.options.height) {
234
- return;
235
- }
236
-
237
- //Avoid recreate the controls
238
- if (that.$tableHeader.find('select').length > 0 || that.$tableHeader.find('input').length > 0) {
239
- return;
240
- }
241
-
242
- createFilter(that, that.$tableHeader);
243
- }).on('post-header.bs.table', function () {
244
- var timeoutId = 0;
245
-
246
- initSelect2(that);
247
- clearTimeout(timeoutId);
248
- timeoutId = setTimeout(function () {
249
- initFilterValues(that);
250
- }, that.options.searchTimeOut - 1000);
251
- }).on('column-switch.bs.table', function (field, checked) {
252
- initFilterValues(that);
253
- });
254
- }
255
-
256
- _init.apply(this, Array.prototype.slice.apply(arguments));
257
- };
258
-
259
- BootstrapTable.prototype.initHeader = function () {
260
- _initHeader.apply(this, Array.prototype.slice.apply(arguments));
261
- if (this.options.filter) {
262
- createFilter(this, this.$header);
263
- }
264
- };
265
-
266
- BootstrapTable.prototype.initSearch = function () {
267
- var that = this,
268
- filterValues = that.filterColumnsPartial;
269
-
270
- // Filter for client
271
- if (that.options.sidePagination === 'client') {
272
- this.data = $.grep(this.data, function (row, idx) {
273
- for (var field in filterValues) {
274
- var column = that.columns[that.fieldsColumnsIndex[field]],
275
- filterValue = filterValues[field].toLowerCase(),
276
- rowValue = row[field];
277
-
278
- rowValue = $.fn.bootstrapTable.utils.calculateObjectValue(that.header, that.header.formatters[$.inArray(field, that.header.fields)], [rowValue, row, idx], rowValue);
279
-
280
- if (column.filterStrictSearch) {
281
- if (!($.inArray(field, that.header.fields) !== -1 && (typeof rowValue === 'string' || typeof rowValue === 'number') && rowValue.toString().toLowerCase() === filterValue.toString().toLowerCase())) {
282
- return false;
283
- }
284
- } else {
285
- if (!($.inArray(field, that.header.fields) !== -1 && (typeof rowValue === 'string' || typeof rowValue === 'number') && (rowValue + '').toLowerCase().indexOf(filterValue) !== -1)) {
286
- return false;
287
- }
288
- }
289
- }
290
-
291
- return true;
292
- });
293
- }
294
-
295
- _initSearch.apply(this, Array.prototype.slice.apply(arguments));
296
- };
297
-
298
- BootstrapTable.prototype.onColumnSearch = function (event, field, value) {
299
- if ($.isEmptyObject(this.filterColumnsPartial)) {
300
- this.filterColumnsPartial = {};
301
- }
302
-
303
- if (value) {
304
- this.filterColumnsPartial[field] = value;
305
- } else {
306
- delete this.filterColumnsPartial[field];
307
- }
308
-
309
- this.options.pageNumber = 1;
310
- this.onSearch(event);
311
- this.trigger('column-search', field, value);
312
- };
313
-
314
- BootstrapTable.prototype.setSelect2Data = function (field, data) {
315
- var that = this,
316
- $header = getCurrentHeader(that),
317
- $selectEle = $header.find('select[data-filter-field=\"' + field + '\"]');
318
- $selectEle.empty();
319
- $selectEle.select2({
320
- data: data,
321
- placeholder: "",
322
- allowClear: true,
323
- dropdownParent: that.$el.closest(".bootstrap-table")
324
- });
325
-
326
- $.each(this.columns, function (idx, column) {
327
- if (column.field === field) {
328
- column.filter.data = data;
329
- return false;
330
- }
331
- });
332
- };
333
-
334
- BootstrapTable.prototype.setFilterValues = function (values) {
335
- this.filterColumnsPartial = values;
336
- };
337
-
338
- $.fn.bootstrapTable.methods.push('setSelect2Data');
339
- $.fn.bootstrapTable.methods.push('setFilterValues');
340
- }(jQuery);
341
- });
@@ -1 +0,0 @@
1
- .table:not(.table-condensed)>tbody>tr>td.treenode{padding-top:0;padding-bottom:0;border-bottom:solid #fff 1px}.table:not(.table-condensed)>tbody>tr:last-child>td.treenode{border-bottom:none}.treenode .text{float:left;display:block;padding-top:6px;padding-bottom:6px}.treenode .vertical,.treenode .vertical.last{float:left;display:block;width:1px;border-left:dashed silver 1px;height:38px;margin-left:8px}.treenode .vertical.last{height:15px}.treenode .space,.treenode .node{float:left;display:block;width:15px;height:5px;margin-top:15px}.treenode .node{border-top:dashed silver 1px}