bootstrap-table-rails 1.11.1.1 → 1.15.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (195) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +152 -98
  3. data/lib/bootstrap-table-rails/version.rb +1 -1
  4. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table-locale-all.js +5196 -0
  5. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table-vue.esm.js +1809 -0
  6. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table-vue.js +1817 -0
  7. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table.css +296 -0
  8. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table.js +6924 -0
  9. data/vendor/assets/javascripts/bootstrap-table/extensions/accent-neutralise/bootstrap-table-accent-neutralise.js +1757 -0
  10. data/vendor/assets/javascripts/bootstrap-table/extensions/addrbar/bootstrap-table-addrbar.js +1485 -0
  11. data/vendor/assets/javascripts/bootstrap-table/extensions/auto-refresh/bootstrap-table-auto-refresh.css +3 -0
  12. data/vendor/assets/javascripts/bootstrap-table/extensions/auto-refresh/bootstrap-table-auto-refresh.js +1020 -0
  13. data/vendor/assets/javascripts/bootstrap-table/extensions/cell-input/bootstrap-table-cell-input.css +12 -0
  14. data/vendor/assets/javascripts/bootstrap-table/extensions/cell-input/bootstrap-table-cell-input.js +2087 -0
  15. data/vendor/assets/javascripts/bootstrap-table/extensions/cookie/bootstrap-table-cookie.js +1934 -0
  16. data/vendor/assets/javascripts/bootstrap-table/extensions/copy-rows/bootstrap-table-copy-rows.js +1042 -0
  17. data/vendor/assets/javascripts/bootstrap-table/extensions/defer-url/bootstrap-table-defer-url.js +779 -0
  18. data/vendor/assets/javascripts/bootstrap-table/extensions/editable/bootstrap-table-editable.js +1451 -0
  19. data/vendor/assets/javascripts/bootstrap-table/extensions/export/bootstrap-table-export.js +2494 -0
  20. data/vendor/assets/{stylesheets/extensions → javascripts/bootstrap-table/extensions/filter-control}/bootstrap-table-filter-control.css +3 -3
  21. data/vendor/assets/javascripts/bootstrap-table/extensions/filter-control/bootstrap-table-filter-control.js +2502 -0
  22. data/vendor/assets/javascripts/bootstrap-table/extensions/fixed-columns/bootstrap-table-fixed-columns.css +27 -0
  23. data/vendor/assets/javascripts/bootstrap-table/extensions/fixed-columns/bootstrap-table-fixed-columns.js +1378 -0
  24. data/vendor/assets/{stylesheets/extensions → javascripts/bootstrap-table/extensions/group-by}/bootstrap-table-group-by.css +0 -0
  25. data/vendor/assets/javascripts/bootstrap-table/extensions/group-by/bootstrap-table-group-by.js +257 -0
  26. data/vendor/assets/javascripts/bootstrap-table/extensions/group-by-v2/bootstrap-table-group-by.css +7 -0
  27. data/vendor/assets/javascripts/bootstrap-table/extensions/group-by-v2/bootstrap-table-group-by.js +1478 -0
  28. data/vendor/assets/javascripts/bootstrap-table/extensions/i18n-enhance/bootstrap-table-i18n-enhance.js +125 -0
  29. data/vendor/assets/javascripts/bootstrap-table/extensions/key-events/bootstrap-table-key-events.js +1243 -0
  30. data/vendor/assets/javascripts/bootstrap-table/extensions/mobile/bootstrap-table-mobile.js +1162 -0
  31. data/vendor/assets/javascripts/bootstrap-table/extensions/multi-column-toggle/bootstrap-table-multi-toggle.js +105 -0
  32. data/vendor/assets/javascripts/bootstrap-table/extensions/multiple-search/bootstrap-table-multiple-search.js +85 -0
  33. data/vendor/assets/{stylesheets/extensions → javascripts/bootstrap-table/extensions/multiple-selection-row}/bootstrap-table-multiple-selection-row.css +0 -0
  34. data/vendor/assets/javascripts/bootstrap-table/extensions/multiple-selection-row/bootstrap-table-multiple-selection-row.js +143 -0
  35. data/vendor/assets/javascripts/bootstrap-table/extensions/multiple-sort/bootstrap-table-multiple-sort.js +1905 -0
  36. data/vendor/assets/javascripts/bootstrap-table/extensions/natural-sorting/bootstrap-table-natural-sorting.js +1265 -0
  37. data/vendor/assets/javascripts/bootstrap-table/extensions/page-jump-to/bootstrap-table-page-jump-to.css +11 -0
  38. data/vendor/assets/javascripts/bootstrap-table/extensions/page-jump-to/bootstrap-table-page-jump-to.js +971 -0
  39. data/vendor/assets/javascripts/bootstrap-table/extensions/pipeline/bootstrap-table-pipeline.js +1128 -0
  40. data/vendor/assets/javascripts/bootstrap-table/extensions/print/bootstrap-table-print.js +1960 -0
  41. data/vendor/assets/javascripts/bootstrap-table/extensions/reorder-columns/bootstrap-table-reorder-columns.js +1015 -0
  42. data/vendor/assets/javascripts/bootstrap-table/extensions/reorder-rows/bootstrap-table-reorder-rows.css +14 -0
  43. data/vendor/assets/javascripts/bootstrap-table/extensions/reorder-rows/bootstrap-table-reorder-rows.js +774 -0
  44. data/vendor/assets/javascripts/bootstrap-table/extensions/resizable/bootstrap-table-resizable.js +676 -0
  45. data/vendor/assets/javascripts/bootstrap-table/extensions/select2-filter/bootstrap-table-select2-filter.js +341 -0
  46. data/vendor/assets/javascripts/bootstrap-table/extensions/sticky-header/bootstrap-table-sticky-header.css +22 -0
  47. data/vendor/assets/javascripts/bootstrap-table/extensions/sticky-header/bootstrap-table-sticky-header.js +1019 -0
  48. data/vendor/assets/javascripts/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.js +2297 -0
  49. data/vendor/assets/{stylesheets/extensions → javascripts/bootstrap-table/extensions/tree-column}/bootstrap-table-tree-column.css +0 -0
  50. data/vendor/assets/javascripts/bootstrap-table/extensions/tree-column/bootstrap-table-tree-column.js +142 -0
  51. data/vendor/assets/javascripts/bootstrap-table/extensions/treegrid/bootstrap-table-treegrid.js +1817 -0
  52. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-af-ZA.js +721 -0
  53. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ar-SA.js +722 -0
  54. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ca-ES.js +722 -0
  55. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-cs-CZ.js +722 -0
  56. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-da-DK.js +721 -0
  57. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-de-DE.js +721 -0
  58. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-el-GR.js +721 -0
  59. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-en-US.js +721 -0
  60. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-AR.js +721 -0
  61. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-CL.js +722 -0
  62. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-CR.js +721 -0
  63. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-ES.js +721 -0
  64. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-MX.js +723 -0
  65. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-NI.js +721 -0
  66. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-SP.js +721 -0
  67. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-et-EE.js +721 -0
  68. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-eu-EU.js +721 -0
  69. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fa-IR.js +721 -0
  70. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fi-FI.js +721 -0
  71. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-BE.js +722 -0
  72. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-CH.js +721 -0
  73. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-FR.js +723 -0
  74. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-LU.js +721 -0
  75. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-he-IL.js +721 -0
  76. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-hr-HR.js +722 -0
  77. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-hu-HU.js +721 -0
  78. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-id-ID.js +721 -0
  79. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-it-IT.js +723 -0
  80. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ja-JP.js +721 -0
  81. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ka-GE.js +721 -0
  82. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ko-KR.js +721 -0
  83. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ms-MY.js +721 -0
  84. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nb-NO.js +721 -0
  85. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nl-BE.js +721 -0
  86. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nl-NL.js +722 -0
  87. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pl-PL.js +721 -0
  88. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pt-BR.js +723 -0
  89. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pt-PT.js +721 -0
  90. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ro-RO.js +721 -0
  91. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ru-RU.js +721 -0
  92. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sk-SK.js +721 -0
  93. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sv-SE.js +721 -0
  94. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-th-TH.js +721 -0
  95. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-tr-TR.js +722 -0
  96. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-uk-UA.js +721 -0
  97. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ur-PK.js +721 -0
  98. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-uz-Latn-UZ.js +721 -0
  99. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-vi-VN.js +721 -0
  100. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-zh-CN.js +721 -0
  101. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-zh-TW.js +721 -0
  102. data/vendor/assets/javascripts/bootstrap-table/themes/bulma/bootstrap-table-bulma.css +352 -0
  103. data/vendor/assets/javascripts/bootstrap-table/themes/bulma/bootstrap-table-bulma.js +943 -0
  104. data/vendor/assets/javascripts/bootstrap-table/themes/foundation/bootstrap-table-foundation.css +329 -0
  105. data/vendor/assets/javascripts/bootstrap-table/themes/foundation/bootstrap-table-foundation.js +950 -0
  106. data/vendor/assets/javascripts/bootstrap-table/themes/materialize/bootstrap-table-materialize.css +326 -0
  107. data/vendor/assets/javascripts/bootstrap-table/themes/materialize/bootstrap-table-materialize.js +946 -0
  108. data/vendor/assets/javascripts/bootstrap-table/themes/semantic/bootstrap-table-semantic.css +336 -0
  109. data/vendor/assets/javascripts/bootstrap-table/themes/semantic/bootstrap-table-semantic.js +920 -0
  110. metadata +112 -96
  111. data/vendor/assets/images/icon.png +0 -0
  112. data/vendor/assets/javascripts/bootstrap-table-locale-all.js +0 -1698
  113. data/vendor/assets/javascripts/bootstrap-table.js +0 -3094
  114. data/vendor/assets/javascripts/extensions/bootstrap-table-accent-neutralise.js +0 -182
  115. data/vendor/assets/javascripts/extensions/bootstrap-table-angular.js +0 -107
  116. data/vendor/assets/javascripts/extensions/bootstrap-table-auto-refresh.js +0 -84
  117. data/vendor/assets/javascripts/extensions/bootstrap-table-click-edit-row.js +0 -142
  118. data/vendor/assets/javascripts/extensions/bootstrap-table-cookie.js +0 -434
  119. data/vendor/assets/javascripts/extensions/bootstrap-table-copy-rows.js +0 -102
  120. data/vendor/assets/javascripts/extensions/bootstrap-table-editable.js +0 -146
  121. data/vendor/assets/javascripts/extensions/bootstrap-table-export.js +0 -131
  122. data/vendor/assets/javascripts/extensions/bootstrap-table-filter-control.js +0 -697
  123. data/vendor/assets/javascripts/extensions/bootstrap-table-filter.js +0 -67
  124. data/vendor/assets/javascripts/extensions/bootstrap-table-flat-json.js +0 -62
  125. data/vendor/assets/javascripts/extensions/bootstrap-table-group-by-v2.js +0 -226
  126. data/vendor/assets/javascripts/extensions/bootstrap-table-group-by.js +0 -243
  127. data/vendor/assets/javascripts/extensions/bootstrap-table-i18n-enhance.js +0 -34
  128. data/vendor/assets/javascripts/extensions/bootstrap-table-key-events.js +0 -80
  129. data/vendor/assets/javascripts/extensions/bootstrap-table-mobile.js +0 -136
  130. data/vendor/assets/javascripts/extensions/bootstrap-table-multi-toggle.js +0 -88
  131. data/vendor/assets/javascripts/extensions/bootstrap-table-multiple-search.js +0 -71
  132. data/vendor/assets/javascripts/extensions/bootstrap-table-multiple-selection-row.js +0 -127
  133. data/vendor/assets/javascripts/extensions/bootstrap-table-multiple-sort.js +0 -393
  134. data/vendor/assets/javascripts/extensions/bootstrap-table-natural-sorting.js +0 -67
  135. data/vendor/assets/javascripts/extensions/bootstrap-table-print.js +0 -133
  136. data/vendor/assets/javascripts/extensions/bootstrap-table-reorder-columns.js +0 -181
  137. data/vendor/assets/javascripts/extensions/bootstrap-table-reorder-rows.js +0 -118
  138. data/vendor/assets/javascripts/extensions/bootstrap-table-resizable.js +0 -74
  139. data/vendor/assets/javascripts/extensions/bootstrap-table-select2-filter.js +0 -303
  140. data/vendor/assets/javascripts/extensions/bootstrap-table-sticky-header.js +0 -111
  141. data/vendor/assets/javascripts/extensions/bootstrap-table-toolbar.js +0 -211
  142. data/vendor/assets/javascripts/extensions/bootstrap-table-tree-column.js +0 -130
  143. data/vendor/assets/javascripts/locale/README.md +0 -179
  144. data/vendor/assets/javascripts/locale/bootstrap-table-af-ZA.js +0 -40
  145. data/vendor/assets/javascripts/locale/bootstrap-table-ar-SA.js +0 -40
  146. data/vendor/assets/javascripts/locale/bootstrap-table-ca-ES.js +0 -44
  147. data/vendor/assets/javascripts/locale/bootstrap-table-cs-CZ.js +0 -44
  148. data/vendor/assets/javascripts/locale/bootstrap-table-da-DK.js +0 -37
  149. data/vendor/assets/javascripts/locale/bootstrap-table-de-DE.js +0 -43
  150. data/vendor/assets/javascripts/locale/bootstrap-table-el-GR.js +0 -28
  151. data/vendor/assets/javascripts/locale/bootstrap-table-en-US.js +0 -49
  152. data/vendor/assets/javascripts/locale/bootstrap-table-en-US.js.template +0 -49
  153. data/vendor/assets/javascripts/locale/bootstrap-table-es-AR.js +0 -31
  154. data/vendor/assets/javascripts/locale/bootstrap-table-es-CL.js +0 -44
  155. data/vendor/assets/javascripts/locale/bootstrap-table-es-CR.js +0 -40
  156. data/vendor/assets/javascripts/locale/bootstrap-table-es-ES.js +0 -43
  157. data/vendor/assets/javascripts/locale/bootstrap-table-es-MX.js +0 -32
  158. data/vendor/assets/javascripts/locale/bootstrap-table-es-NI.js +0 -40
  159. data/vendor/assets/javascripts/locale/bootstrap-table-es-SP.js +0 -40
  160. data/vendor/assets/javascripts/locale/bootstrap-table-et-EE.js +0 -43
  161. data/vendor/assets/javascripts/locale/bootstrap-table-fa-IR.js +0 -43
  162. data/vendor/assets/javascripts/locale/bootstrap-table-fr-BE.js +0 -28
  163. data/vendor/assets/javascripts/locale/bootstrap-table-fr-FR.js +0 -41
  164. data/vendor/assets/javascripts/locale/bootstrap-table-he-IL.js +0 -43
  165. data/vendor/assets/javascripts/locale/bootstrap-table-hr-HR.js +0 -44
  166. data/vendor/assets/javascripts/locale/bootstrap-table-hu-HU.js +0 -43
  167. data/vendor/assets/javascripts/locale/bootstrap-table-id-ID.js +0 -49
  168. data/vendor/assets/javascripts/locale/bootstrap-table-it-IT.js +0 -52
  169. data/vendor/assets/javascripts/locale/bootstrap-table-ja-JP.js +0 -43
  170. data/vendor/assets/javascripts/locale/bootstrap-table-ka-GE.js +0 -40
  171. data/vendor/assets/javascripts/locale/bootstrap-table-ko-KR.js +0 -37
  172. data/vendor/assets/javascripts/locale/bootstrap-table-ms-MY.js +0 -43
  173. data/vendor/assets/javascripts/locale/bootstrap-table-nb-NO.js +0 -37
  174. data/vendor/assets/javascripts/locale/bootstrap-table-nl-NL.js +0 -52
  175. data/vendor/assets/javascripts/locale/bootstrap-table-pl-PL.js +0 -37
  176. data/vendor/assets/javascripts/locale/bootstrap-table-pt-BR.js +0 -41
  177. data/vendor/assets/javascripts/locale/bootstrap-table-pt-PT.js +0 -43
  178. data/vendor/assets/javascripts/locale/bootstrap-table-ro-RO.js +0 -43
  179. data/vendor/assets/javascripts/locale/bootstrap-table-ru-RU.js +0 -72
  180. data/vendor/assets/javascripts/locale/bootstrap-table-sk-SK.js +0 -37
  181. data/vendor/assets/javascripts/locale/bootstrap-table-sv-SE.js +0 -37
  182. data/vendor/assets/javascripts/locale/bootstrap-table-th-TH.js +0 -37
  183. data/vendor/assets/javascripts/locale/bootstrap-table-tr-TR.js +0 -41
  184. data/vendor/assets/javascripts/locale/bootstrap-table-uk-UA.js +0 -73
  185. data/vendor/assets/javascripts/locale/bootstrap-table-ur-PK.js +0 -37
  186. data/vendor/assets/javascripts/locale/bootstrap-table-uz-Latn-UZ.js +0 -49
  187. data/vendor/assets/javascripts/locale/bootstrap-table-vi-VN.js +0 -28
  188. data/vendor/assets/javascripts/locale/bootstrap-table-zh-CN.js +0 -46
  189. data/vendor/assets/javascripts/locale/bootstrap-table-zh-TW.js +0 -40
  190. data/vendor/assets/stylesheets/bootstrap-table.css +0 -313
  191. data/vendor/assets/stylesheets/extensions/bootstrap-table-auto-refresh.css +0 -3
  192. data/vendor/assets/stylesheets/extensions/bootstrap-table-click-edit-row.css +0 -21
  193. data/vendor/assets/stylesheets/extensions/bootstrap-table-group-by-v2.css +0 -7
  194. data/vendor/assets/stylesheets/extensions/bootstrap-table-reorder-rows.css +0 -14
  195. data/vendor/assets/stylesheets/extensions/bootstrap-table-sticky-header.css +0 -22
@@ -1,146 +0,0 @@
1
- /**
2
- * @author zhixin wen <wenzhixin2010@gmail.com>
3
- * extensions: https://github.com/vitalets/x-editable
4
- */
5
-
6
- (function($) {
7
-
8
- 'use strict';
9
-
10
- $.extend($.fn.bootstrapTable.defaults, {
11
- editable: true,
12
- onEditableInit: function() {
13
- return false;
14
- },
15
- onEditableSave: function(field, row, oldValue, $el) {
16
- return false;
17
- },
18
- onEditableShown: function(field, row, $el, editable) {
19
- return false;
20
- },
21
- onEditableHidden: function(field, row, $el, reason) {
22
- return false;
23
- }
24
- });
25
-
26
- $.extend($.fn.bootstrapTable.Constructor.EVENTS, {
27
- 'editable-init.bs.table': 'onEditableInit',
28
- 'editable-save.bs.table': 'onEditableSave',
29
- 'editable-shown.bs.table': 'onEditableShown',
30
- 'editable-hidden.bs.table': 'onEditableHidden'
31
- });
32
-
33
- var BootstrapTable = $.fn.bootstrapTable.Constructor,
34
- _initTable = BootstrapTable.prototype.initTable,
35
- _initBody = BootstrapTable.prototype.initBody;
36
-
37
- BootstrapTable.prototype.initTable = function() {
38
- var that = this;
39
- _initTable.apply(this, Array.prototype.slice.apply(arguments));
40
-
41
- if (!this.options.editable) {
42
- return;
43
- }
44
-
45
- $.each(this.columns, function(i, column) {
46
- if (!column.editable) {
47
- return;
48
- }
49
-
50
- var editableOptions = {},
51
- editableDataMarkup = [],
52
- editableDataPrefix = 'editable-';
53
-
54
- var processDataOptions = function(key, value) {
55
- // Replace camel case with dashes.
56
- var dashKey = key.replace(/([A-Z])/g, function($1) {
57
- return "-" + $1.toLowerCase();
58
- });
59
- if (dashKey.slice(0, editableDataPrefix.length) == editableDataPrefix) {
60
- var dataKey = dashKey.replace(editableDataPrefix, 'data-');
61
- editableOptions[dataKey] = value;
62
- }
63
- };
64
-
65
- $.each(that.options, processDataOptions);
66
-
67
- column.formatter = column.formatter || function(value, row, index) {
68
- return value;
69
- };
70
- column._formatter = column._formatter ? column._formatter : column.formatter;
71
- column.formatter = function(value, row, index) {
72
- var result = column._formatter ? column._formatter(value, row, index) : value;
73
-
74
- $.each(column, processDataOptions);
75
-
76
- $.each(editableOptions, function(key, value) {
77
- editableDataMarkup.push(' ' + key + '="' + value + '"');
78
- });
79
-
80
- var _dont_edit_formatter = false;
81
- if (column.editable.hasOwnProperty('noeditFormatter')) {
82
- _dont_edit_formatter = column.editable.noeditFormatter(value, row, index);
83
- }
84
-
85
- if (_dont_edit_formatter === false) {
86
- return ['<a href="javascript:void(0)"',
87
- ' data-name="' + column.field + '"',
88
- ' data-pk="' + row[that.options.idField] + '"',
89
- ' data-value="' + result + '"',
90
- editableDataMarkup.join(''),
91
- '>' + '</a>'
92
- ].join('');
93
- } else {
94
- return _dont_edit_formatter;
95
- }
96
-
97
- };
98
- });
99
- };
100
-
101
- BootstrapTable.prototype.initBody = function() {
102
- var that = this;
103
- _initBody.apply(this, Array.prototype.slice.apply(arguments));
104
-
105
- if (!this.options.editable) {
106
- return;
107
- }
108
-
109
- $.each(this.columns, function(i, column) {
110
- if (!column.editable) {
111
- return;
112
- }
113
-
114
- that.$body.find('a[data-name="' + column.field + '"]').editable(column.editable)
115
- .off('save').on('save', function(e, params) {
116
- var data = that.getData(),
117
- index = $(this).parents('tr[data-index]').data('index'),
118
- row = data[index],
119
- oldValue = row[column.field];
120
-
121
- $(this).data('value', params.submitValue);
122
- row[column.field] = params.submitValue;
123
- that.trigger('editable-save', column.field, row, oldValue, $(this));
124
- that.resetFooter();
125
- });
126
- that.$body.find('a[data-name="' + column.field + '"]').editable(column.editable)
127
- .off('shown').on('shown', function(e, editable) {
128
- var data = that.getData(),
129
- index = $(this).parents('tr[data-index]').data('index'),
130
- row = data[index];
131
-
132
- that.trigger('editable-shown', column.field, row, $(this), editable);
133
- });
134
- that.$body.find('a[data-name="' + column.field + '"]').editable(column.editable)
135
- .off('hidden').on('hidden', function(e, reason) {
136
- var data = that.getData(),
137
- index = $(this).parents('tr[data-index]').data('index'),
138
- row = data[index];
139
-
140
- that.trigger('editable-hidden', column.field, row, $(this), reason);
141
- });
142
- });
143
- this.trigger('editable-init');
144
- };
145
-
146
- })(jQuery);
@@ -1,131 +0,0 @@
1
- /**
2
- * @author zhixin wen <wenzhixin2010@gmail.com>
3
- * extensions: https://github.com/kayalshri/tableExport.jquery.plugin
4
- */
5
-
6
- (function ($) {
7
- 'use strict';
8
- var sprintf = $.fn.bootstrapTable.utils.sprintf;
9
-
10
- var TYPE_NAME = {
11
- json: 'JSON',
12
- xml: 'XML',
13
- png: 'PNG',
14
- csv: 'CSV',
15
- txt: 'TXT',
16
- sql: 'SQL',
17
- doc: 'MS-Word',
18
- excel: 'MS-Excel',
19
- xlsx: 'MS-Excel (OpenXML)',
20
- powerpoint: 'MS-Powerpoint',
21
- pdf: 'PDF'
22
- };
23
-
24
- $.extend($.fn.bootstrapTable.defaults, {
25
- showExport: false,
26
- exportDataType: 'basic', // basic, all, selected
27
- // 'json', 'xml', 'png', 'csv', 'txt', 'sql', 'doc', 'excel', 'powerpoint', 'pdf'
28
- exportTypes: ['json', 'xml', 'csv', 'txt', 'sql', 'excel'],
29
- exportOptions: {}
30
- });
31
-
32
- $.extend($.fn.bootstrapTable.defaults.icons, {
33
- export: 'glyphicon-export icon-share'
34
- });
35
-
36
- $.extend($.fn.bootstrapTable.locales, {
37
- formatExport: function () {
38
- return 'Export data';
39
- }
40
- });
41
- $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales);
42
-
43
- var BootstrapTable = $.fn.bootstrapTable.Constructor,
44
- _initToolbar = BootstrapTable.prototype.initToolbar;
45
-
46
- BootstrapTable.prototype.initToolbar = function () {
47
- this.showToolbar = this.options.showExport;
48
-
49
- _initToolbar.apply(this, Array.prototype.slice.apply(arguments));
50
-
51
- if (this.options.showExport) {
52
- var that = this,
53
- $btnGroup = this.$toolbar.find('>.btn-group'),
54
- $export = $btnGroup.find('div.export');
55
-
56
- if (!$export.length) {
57
- $export = $([
58
- '<div class="export btn-group">',
59
- '<button class="btn' +
60
- sprintf(' btn-%s', this.options.buttonsClass) +
61
- sprintf(' btn-%s', this.options.iconSize) +
62
- ' dropdown-toggle" aria-label="export type" ' +
63
- 'title="' + this.options.formatExport() + '" ' +
64
- 'data-toggle="dropdown" type="button">',
65
- sprintf('<i class="%s %s"></i> ', this.options.iconsPrefix, this.options.icons.export),
66
- '<span class="caret"></span>',
67
- '</button>',
68
- '<ul class="dropdown-menu" role="menu">',
69
- '</ul>',
70
- '</div>'].join('')).appendTo($btnGroup);
71
-
72
- var $menu = $export.find('.dropdown-menu'),
73
- exportTypes = this.options.exportTypes;
74
-
75
- if (typeof this.options.exportTypes === 'string') {
76
- var types = this.options.exportTypes.slice(1, -1).replace(/ /g, '').split(',');
77
-
78
- exportTypes = [];
79
- $.each(types, function (i, value) {
80
- exportTypes.push(value.slice(1, -1));
81
- });
82
- }
83
- $.each(exportTypes, function (i, type) {
84
- if (TYPE_NAME.hasOwnProperty(type)) {
85
- $menu.append(['<li role="menuitem" data-type="' + type + '">',
86
- '<a href="javascript:void(0)">',
87
- TYPE_NAME[type],
88
- '</a>',
89
- '</li>'].join(''));
90
- }
91
- });
92
-
93
- $menu.find('li').click(function () {
94
- var type = $(this).data('type'),
95
- doExport = function () {
96
- that.$el.tableExport($.extend({}, that.options.exportOptions, {
97
- type: type,
98
- escape: false
99
- }));
100
- };
101
-
102
- if (that.options.exportDataType === 'all' && that.options.pagination) {
103
- that.$el.one(that.options.sidePagination === 'server' ? 'post-body.bs.table' : 'page-change.bs.table', function () {
104
- doExport();
105
- that.togglePagination();
106
- });
107
- that.togglePagination();
108
- } else if (that.options.exportDataType === 'selected') {
109
- var data = that.getData(),
110
- selectedData = that.getAllSelections();
111
-
112
- // Quick fix #2220
113
- if (that.options.sidePagination === 'server') {
114
- data = {total: that.options.totalRows};
115
- data[that.options.dataField] = that.getData();
116
-
117
- selectedData = {total: that.options.totalRows};
118
- selectedData[that.options.dataField] = that.getAllSelections();
119
- }
120
-
121
- that.load(selectedData);
122
- doExport();
123
- that.load(data);
124
- } else {
125
- doExport();
126
- }
127
- });
128
- }
129
- }
130
- };
131
- })(jQuery);
@@ -1,697 +0,0 @@
1
- /**
2
- * @author: Dennis Hernández
3
- * @webSite: http://djhvscf.github.io/Blog
4
- * @version: v2.1.1
5
- */
6
-
7
- (function ($) {
8
-
9
- 'use strict';
10
-
11
- var sprintf = $.fn.bootstrapTable.utils.sprintf,
12
- objectKeys = $.fn.bootstrapTable.utils.objectKeys;
13
-
14
- var getOptionsFromSelectControl = function (selectControl) {
15
- return selectControl.get(selectControl.length - 1).options;
16
- };
17
-
18
- var hideUnusedSelectOptions = function (selectControl, uniqueValues) {
19
- var options = getOptionsFromSelectControl(selectControl);
20
-
21
- for (var i = 0; i < options.length; i++) {
22
- if (options[i].value !== "") {
23
- if (!uniqueValues.hasOwnProperty(options[i].value)) {
24
- selectControl.find(sprintf("option[value='%s']", options[i].value)).hide();
25
- } else {
26
- selectControl.find(sprintf("option[value='%s']", options[i].value)).show();
27
- }
28
- }
29
- }
30
- };
31
-
32
- var addOptionToSelectControl = function (selectControl, value, text) {
33
- value = $.trim(value);
34
- selectControl = $(selectControl.get(selectControl.length - 1));
35
- if (!existOptionInSelectControl(selectControl, value)) {
36
- selectControl.append($("<option></option>")
37
- .attr("value", value)
38
- .text($('<div />').html(text).text()));
39
- }
40
- };
41
-
42
- var sortSelectControl = function (selectControl) {
43
- var $opts = selectControl.find('option:gt(0)');
44
- $opts.sort(function (a, b) {
45
- a = $(a).text().toLowerCase();
46
- b = $(b).text().toLowerCase();
47
- if ($.isNumeric(a) && $.isNumeric(b)) {
48
- // Convert numerical values from string to float.
49
- a = parseFloat(a);
50
- b = parseFloat(b);
51
- }
52
- return a > b ? 1 : a < b ? -1 : 0;
53
- });
54
-
55
- selectControl.find('option:gt(0)').remove();
56
- selectControl.append($opts);
57
- };
58
-
59
- var existOptionInSelectControl = function (selectControl, value) {
60
- var options = getOptionsFromSelectControl(selectControl);
61
- for (var i = 0; i < options.length; i++) {
62
- if (options[i].value === value.toString()) {
63
- //The value is not valid to add
64
- return true;
65
- }
66
- }
67
-
68
- //If we get here, the value is valid to add
69
- return false;
70
- };
71
-
72
- var fixHeaderCSS = function (that) {
73
- that.$tableHeader.css('height', '77px');
74
- };
75
-
76
- var getCurrentHeader = function (that) {
77
- var header = that.$header;
78
- if (that.options.height) {
79
- header = that.$tableHeader;
80
- }
81
-
82
- return header;
83
- };
84
-
85
- var getCurrentSearchControls = function (that) {
86
- var searchControls = 'select, input';
87
- if (that.options.height) {
88
- searchControls = 'table select, table input';
89
- }
90
-
91
- return searchControls;
92
- };
93
-
94
- var getCursorPosition = function(el) {
95
- if ($.fn.bootstrapTable.utils.isIEBrowser()) {
96
- if ($(el).is('input')) {
97
- var pos = 0;
98
- if ('selectionStart' in el) {
99
- pos = el.selectionStart;
100
- } else if ('selection' in document) {
101
- el.focus();
102
- var Sel = document.selection.createRange();
103
- var SelLength = document.selection.createRange().text.length;
104
- Sel.moveStart('character', -el.value.length);
105
- pos = Sel.text.length - SelLength;
106
- }
107
- return pos;
108
- } else {
109
- return -1;
110
- }
111
- } else {
112
- return -1;
113
- }
114
- };
115
-
116
- var setCursorPosition = function (el, index) {
117
- if ($.fn.bootstrapTable.utils.isIEBrowser()) {
118
- if(el.setSelectionRange !== undefined) {
119
- el.setSelectionRange(index, index);
120
- } else {
121
- $(el).val(el.value);
122
- }
123
- }
124
- };
125
-
126
- var copyValues = function (that) {
127
- var header = getCurrentHeader(that),
128
- searchControls = getCurrentSearchControls(that);
129
-
130
- that.options.valuesFilterControl = [];
131
-
132
- header.find(searchControls).each(function () {
133
- that.options.valuesFilterControl.push(
134
- {
135
- field: $(this).closest('[data-field]').data('field'),
136
- value: $(this).val(),
137
- position: getCursorPosition($(this).get(0))
138
- });
139
- });
140
- };
141
-
142
- var setValues = function(that) {
143
- var field = null,
144
- result = [],
145
- header = getCurrentHeader(that),
146
- searchControls = getCurrentSearchControls(that);
147
-
148
- if (that.options.valuesFilterControl.length > 0) {
149
- header.find(searchControls).each(function (index, ele) {
150
- field = $(this).closest('[data-field]').data('field');
151
- result = $.grep(that.options.valuesFilterControl, function (valueObj) {
152
- return valueObj.field === field;
153
- });
154
-
155
- if (result.length > 0) {
156
- $(this).val(result[0].value);
157
- setCursorPosition($(this).get(0), result[0].position);
158
- }
159
- });
160
- }
161
- };
162
-
163
- var collectBootstrapCookies = function cookiesRegex() {
164
- var cookies = [],
165
- foundCookies = document.cookie.match(/(?:bs.table.)(\w*)/g);
166
-
167
- if (foundCookies) {
168
- $.each(foundCookies, function (i, cookie) {
169
- if (/./.test(cookie)) {
170
- cookie = cookie.split(".").pop();
171
- }
172
-
173
- if ($.inArray(cookie, cookies) === -1) {
174
- cookies.push(cookie);
175
- }
176
- });
177
- return cookies;
178
- }
179
- };
180
-
181
- var initFilterSelectControls = function (that) {
182
- var data = that.data,
183
- itemsPerPage = that.pageTo < that.options.data.length ? that.options.data.length : that.pageTo,
184
-
185
- isColumnSearchableViaSelect = function (column) {
186
- return column.filterControl && column.filterControl.toLowerCase() === 'select' && column.searchable;
187
- },
188
-
189
- isFilterDataNotGiven = function (column) {
190
- return column.filterData === undefined || column.filterData.toLowerCase() === 'column';
191
- },
192
-
193
- hasSelectControlElement = function (selectControl) {
194
- return selectControl && selectControl.length > 0;
195
- };
196
-
197
- var z = that.options.pagination ?
198
- (that.options.sidePagination === 'server' ? that.pageTo : that.options.totalRows) :
199
- that.pageTo;
200
-
201
- $.each(that.header.fields, function (j, field) {
202
- var column = that.columns[$.fn.bootstrapTable.utils.getFieldIndex(that.columns, field)],
203
- selectControl = $('.bootstrap-table-filter-control-' + escapeID(column.field));
204
-
205
- if (isColumnSearchableViaSelect(column) && isFilterDataNotGiven(column) && hasSelectControlElement(selectControl)) {
206
- if (selectControl.get(selectControl.length - 1).options.length === 0) {
207
- //Added the default option
208
- addOptionToSelectControl(selectControl, '', '');
209
- }
210
-
211
- var uniqueValues = {};
212
- for (var i = 0; i < z; i++) {
213
- //Added a new value
214
- var fieldValue = data[i][field],
215
- formattedValue = $.fn.bootstrapTable.utils.calculateObjectValue(that.header, that.header.formatters[j], [fieldValue, data[i], i], fieldValue);
216
-
217
- uniqueValues[formattedValue] = fieldValue;
218
- }
219
-
220
- for (var key in uniqueValues) {
221
- addOptionToSelectControl(selectControl, uniqueValues[key], key);
222
- }
223
-
224
- sortSelectControl(selectControl);
225
-
226
- if (that.options.hideUnusedSelectOptions) {
227
- hideUnusedSelectOptions(selectControl, uniqueValues);
228
- }
229
- }
230
- });
231
- };
232
-
233
- var escapeID = function(id) {
234
- return String(id).replace( /(:|\.|\[|\]|,)/g, "\\$1" );
235
- };
236
-
237
- var createControls = function (that, header) {
238
- var addedFilterControl = false,
239
- isVisible,
240
- html,
241
- timeoutId = 0;
242
-
243
- $.each(that.columns, function (i, column) {
244
- isVisible = 'hidden';
245
- html = [];
246
-
247
- if (!column.visible) {
248
- return;
249
- }
250
-
251
- if (!column.filterControl) {
252
- html.push('<div class="no-filter-control"></div>');
253
- } else {
254
- html.push('<div class="filter-control">');
255
-
256
- var nameControl = column.filterControl.toLowerCase();
257
- if (column.searchable && that.options.filterTemplate[nameControl]) {
258
- addedFilterControl = true;
259
- isVisible = 'visible';
260
- html.push(that.options.filterTemplate[nameControl](that, column.field, isVisible, column.filterControlPlaceholder));
261
- }
262
- }
263
-
264
- $.each(header.children().children(), function (i, tr) {
265
- tr = $(tr);
266
- if (tr.data('field') === column.field) {
267
- tr.find('.fht-cell').append(html.join(''));
268
- return false;
269
- }
270
- });
271
-
272
- if (column.filterData !== undefined && column.filterData.toLowerCase() !== 'column') {
273
- var filterDataType = getFilterDataMethod(filterDataMethods, column.filterData.substring(0, column.filterData.indexOf(':')));
274
- var filterDataSource, selectControl;
275
-
276
- if (filterDataType !== null) {
277
- filterDataSource = column.filterData.substring(column.filterData.indexOf(':') + 1, column.filterData.length);
278
- selectControl = $('.bootstrap-table-filter-control-' + escapeID(column.field));
279
-
280
- addOptionToSelectControl(selectControl, '', '');
281
- filterDataType(filterDataSource, selectControl);
282
- } else {
283
- throw new SyntaxError('Error. You should use any of these allowed filter data methods: var, json, url.' + ' Use like this: var: {key: "value"}');
284
- }
285
-
286
- var variableValues, key;
287
- switch (filterDataType) {
288
- case 'url':
289
- $.ajax({
290
- url: filterDataSource,
291
- dataType: 'json',
292
- success: function (data) {
293
- for (var key in data) {
294
- addOptionToSelectControl(selectControl, key, data[key]);
295
- }
296
- sortSelectControl(selectControl);
297
- }
298
- });
299
- break;
300
- case 'var':
301
- variableValues = window[filterDataSource];
302
- for (key in variableValues) {
303
- addOptionToSelectControl(selectControl, key, variableValues[key]);
304
- }
305
- sortSelectControl(selectControl);
306
- break;
307
- case 'jso':
308
- variableValues = JSON.parse(filterDataSource);
309
- for (key in variableValues) {
310
- addOptionToSelectControl(selectControl, key, variableValues[key]);
311
- }
312
- sortSelectControl(selectControl);
313
- break;
314
- }
315
- }
316
- });
317
-
318
- if (addedFilterControl) {
319
- header.off('keyup', 'input').on('keyup', 'input', function (event) {
320
- clearTimeout(timeoutId);
321
- timeoutId = setTimeout(function () {
322
- that.onColumnSearch(event);
323
- }, that.options.searchTimeOut);
324
- });
325
-
326
- header.off('change', 'select').on('change', 'select', function (event) {
327
- clearTimeout(timeoutId);
328
- timeoutId = setTimeout(function () {
329
- that.onColumnSearch(event);
330
- }, that.options.searchTimeOut);
331
- });
332
-
333
- header.off('mouseup', 'input').on('mouseup', 'input', function (event) {
334
- var $input = $(this),
335
- oldValue = $input.val();
336
-
337
- if (oldValue === "") {
338
- return;
339
- }
340
-
341
- setTimeout(function(){
342
- var newValue = $input.val();
343
-
344
- if (newValue === "") {
345
- clearTimeout(timeoutId);
346
- timeoutId = setTimeout(function () {
347
- that.onColumnSearch(event);
348
- }, that.options.searchTimeOut);
349
- }
350
- }, 1);
351
- });
352
-
353
- if (header.find('.date-filter-control').length > 0) {
354
- $.each(that.columns, function (i, column) {
355
- if (column.filterControl !== undefined && column.filterControl.toLowerCase() === 'datepicker') {
356
- header.find('.date-filter-control.bootstrap-table-filter-control-' + column.field).datepicker(column.filterDatepickerOptions)
357
- .on('changeDate', function (e) {
358
- $(sprintf(".%s", e.currentTarget.classList.toString().split(" ").join("."))).val(e.currentTarget.value);
359
- //Fired the keyup event
360
- $(e.currentTarget).keyup();
361
- });
362
- }
363
- });
364
- }
365
- } else {
366
- header.find('.filterControl').hide();
367
- }
368
- };
369
-
370
- var getDirectionOfSelectOptions = function (alignment) {
371
- alignment = alignment === undefined ? 'left' : alignment.toLowerCase();
372
-
373
- switch (alignment) {
374
- case 'left':
375
- return 'ltr';
376
- case 'right':
377
- return 'rtl';
378
- case 'auto':
379
- return 'auto';
380
- default:
381
- return 'ltr';
382
- }
383
- };
384
-
385
- var filterDataMethods =
386
- {
387
- 'var': function (filterDataSource, selectControl) {
388
- var variableValues = window[filterDataSource];
389
- for (var key in variableValues) {
390
- addOptionToSelectControl(selectControl, key, variableValues[key]);
391
- }
392
- sortSelectControl(selectControl);
393
- },
394
- 'url': function (filterDataSource, selectControl) {
395
- $.ajax({
396
- url: filterDataSource,
397
- dataType: 'json',
398
- success: function (data) {
399
- for (var key in data) {
400
- addOptionToSelectControl(selectControl, key, data[key]);
401
- }
402
- sortSelectControl(selectControl);
403
- }
404
- });
405
- },
406
- 'json':function (filterDataSource, selectControl) {
407
- var variableValues = JSON.parse(filterDataSource);
408
- for (var key in variableValues) {
409
- addOptionToSelectControl(selectControl, key, variableValues[key]);
410
- }
411
- sortSelectControl(selectControl);
412
- }
413
- };
414
-
415
- var getFilterDataMethod = function (objFilterDataMethod, searchTerm) {
416
- var keys = Object.keys(objFilterDataMethod);
417
- for (var i = 0; i < keys.length; i++) {
418
- if (keys[i] === searchTerm) {
419
- return objFilterDataMethod[searchTerm];
420
- }
421
- }
422
- return null;
423
- };
424
-
425
- $.extend($.fn.bootstrapTable.defaults, {
426
- filterControl: false,
427
- onColumnSearch: function (field, text) {
428
- return false;
429
- },
430
- filterShowClear: false,
431
- alignmentSelectControlOptions: undefined,
432
- filterTemplate: {
433
- input: function (that, field, isVisible, placeholder) {
434
- return sprintf('<input type="text" class="form-control bootstrap-table-filter-control-%s" style="width: 100%; visibility: %s" placeholder="%s">', field, isVisible, placeholder);
435
- },
436
- select: function (that, field, isVisible) {
437
- return sprintf('<select class="form-control bootstrap-table-filter-control-%s" style="width: 100%; visibility: %s" dir="%s"></select>',
438
- field, isVisible, getDirectionOfSelectOptions(that.options.alignmentSelectControlOptions));
439
- },
440
- datepicker: function (that, field, isVisible) {
441
- return sprintf('<input type="text" class="form-control date-filter-control bootstrap-table-filter-control-%s" style="width: 100%; visibility: %s">', field, isVisible);
442
- }
443
- },
444
- //internal variables
445
- valuesFilterControl: []
446
- });
447
-
448
- $.extend($.fn.bootstrapTable.COLUMN_DEFAULTS, {
449
- filterControl: undefined,
450
- filterData: undefined,
451
- filterDatepickerOptions: undefined,
452
- filterStrictSearch: false,
453
- filterStartsWithSearch: false,
454
- filterControlPlaceholder: ""
455
- });
456
-
457
- $.extend($.fn.bootstrapTable.Constructor.EVENTS, {
458
- 'column-search.bs.table': 'onColumnSearch'
459
- });
460
-
461
- $.extend($.fn.bootstrapTable.defaults.icons, {
462
- clear: 'glyphicon-trash icon-clear'
463
- });
464
-
465
- $.extend($.fn.bootstrapTable.locales, {
466
- formatClearFilters: function () {
467
- return 'Clear Filters';
468
- }
469
- });
470
- $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales);
471
-
472
- var BootstrapTable = $.fn.bootstrapTable.Constructor,
473
- _init = BootstrapTable.prototype.init,
474
- _initToolbar = BootstrapTable.prototype.initToolbar,
475
- _initHeader = BootstrapTable.prototype.initHeader,
476
- _initBody = BootstrapTable.prototype.initBody,
477
- _initSearch = BootstrapTable.prototype.initSearch;
478
-
479
- BootstrapTable.prototype.init = function () {
480
- //Make sure that the filterControl option is set
481
- if (this.options.filterControl) {
482
- var that = this;
483
-
484
- // Compatibility: IE < 9 and old browsers
485
- if (!Object.keys) {
486
- objectKeys();
487
- }
488
-
489
- //Make sure that the internal variables are set correctly
490
- this.options.valuesFilterControl = [];
491
-
492
- this.$el.on('reset-view.bs.table', function () {
493
- //Create controls on $tableHeader if the height is set
494
- if (!that.options.height) {
495
- return;
496
- }
497
-
498
- //Avoid recreate the controls
499
- if (that.$tableHeader.find('select').length > 0 || that.$tableHeader.find('input').length > 0) {
500
- return;
501
- }
502
-
503
- createControls(that, that.$tableHeader);
504
- }).on('post-header.bs.table', function () {
505
- setValues(that);
506
- }).on('post-body.bs.table', function () {
507
- if (that.options.height) {
508
- fixHeaderCSS(that);
509
- }
510
- }).on('column-switch.bs.table', function() {
511
- setValues(that);
512
- });
513
- }
514
- _init.apply(this, Array.prototype.slice.apply(arguments));
515
- };
516
-
517
- BootstrapTable.prototype.initToolbar = function () {
518
- this.showToolbar = this.options.filterControl && this.options.filterShowClear;
519
-
520
- _initToolbar.apply(this, Array.prototype.slice.apply(arguments));
521
-
522
- if (this.options.filterControl && this.options.filterShowClear) {
523
- var $btnGroup = this.$toolbar.find('>.btn-group'),
524
- $btnClear = $btnGroup.find('.filter-show-clear');
525
-
526
- if (!$btnClear.length) {
527
- $btnClear = $([
528
- '<button class="btn btn-default filter-show-clear" ',
529
- sprintf('type="button" title="%s">', this.options.formatClearFilters()),
530
- sprintf('<i class="%s %s"></i> ', this.options.iconsPrefix, this.options.icons.clear),
531
- '</button>'
532
- ].join('')).appendTo($btnGroup);
533
-
534
- $btnClear.off('click').on('click', $.proxy(this.clearFilterControl, this));
535
- }
536
- }
537
- };
538
-
539
- BootstrapTable.prototype.initHeader = function () {
540
- _initHeader.apply(this, Array.prototype.slice.apply(arguments));
541
-
542
- if (!this.options.filterControl) {
543
- return;
544
- }
545
- createControls(this, this.$header);
546
- };
547
-
548
- BootstrapTable.prototype.initBody = function () {
549
- _initBody.apply(this, Array.prototype.slice.apply(arguments));
550
-
551
- initFilterSelectControls(this);
552
- };
553
-
554
- BootstrapTable.prototype.initSearch = function () {
555
- _initSearch.apply(this, Array.prototype.slice.apply(arguments));
556
-
557
- if (this.options.sidePagination === 'server') {
558
- return;
559
- }
560
-
561
- var that = this;
562
- var fp = $.isEmptyObject(this.filterColumnsPartial) ? null : this.filterColumnsPartial;
563
-
564
- //Check partial column filter
565
- this.data = fp ? $.grep(this.data, function (item, i) {
566
- for (var key in fp) {
567
- var thisColumn = that.columns[$.fn.bootstrapTable.utils.getFieldIndex(that.columns, key)];
568
- var fval = fp[key].toLowerCase();
569
- var value = item[key];
570
-
571
- // Fix #142: search use formated data
572
- if (thisColumn && thisColumn.searchFormatter) {
573
- value = $.fn.bootstrapTable.utils.calculateObjectValue(that.header,
574
- that.header.formatters[$.inArray(key, that.header.fields)],
575
- [value, item, i], value);
576
- }
577
-
578
- if (thisColumn.filterStrictSearch) {
579
- if (!($.inArray(key, that.header.fields) !== -1 &&
580
- (typeof value === 'string' || typeof value === 'number') &&
581
- value.toString().toLowerCase() === fval.toString().toLowerCase())) {
582
- return false;
583
- }
584
- } else if (thisColumn.filterStartsWithSearch) {
585
- if (!($.inArray(key, that.header.fields) !== -1 &&
586
- (typeof value === 'string' || typeof value === 'number') &&
587
- (value + '').toLowerCase().indexOf(fval) === 0)) {
588
- return false;
589
- }
590
- } else {
591
- if (!($.inArray(key, that.header.fields) !== -1 &&
592
- (typeof value === 'string' || typeof value === 'number') &&
593
- (value + '').toLowerCase().indexOf(fval) !== -1)) {
594
- return false;
595
- }
596
- }
597
- }
598
- return true;
599
- }) : this.data;
600
- };
601
-
602
- BootstrapTable.prototype.initColumnSearch = function(filterColumnsDefaults) {
603
- copyValues(this);
604
-
605
- if (filterColumnsDefaults) {
606
- this.filterColumnsPartial = filterColumnsDefaults;
607
- this.updatePagination();
608
-
609
- for (var filter in filterColumnsDefaults) {
610
- this.trigger('column-search', filter, filterColumnsDefaults[filter]);
611
- }
612
- }
613
- };
614
-
615
- BootstrapTable.prototype.onColumnSearch = function (event) {
616
- if ($.inArray(event.keyCode, [37, 38, 39, 40]) > -1) {
617
- return;
618
- }
619
-
620
- copyValues(this);
621
- var text = $.trim($(event.currentTarget).val());
622
- var $field = $(event.currentTarget).closest('[data-field]').data('field');
623
-
624
- if ($.isEmptyObject(this.filterColumnsPartial)) {
625
- this.filterColumnsPartial = {};
626
- }
627
- if (text) {
628
- this.filterColumnsPartial[$field] = text;
629
- } else {
630
- delete this.filterColumnsPartial[$field];
631
- }
632
-
633
- // if the searchText is the same as the previously selected column value,
634
- // bootstrapTable will not try searching again (even though the selected column
635
- // may be different from the previous search). As a work around
636
- // we're manually appending some text to bootrap's searchText field
637
- // to guarantee that it will perform a search again when we call this.onSearch(event)
638
- this.searchText += "randomText";
639
-
640
- this.options.pageNumber = 1;
641
- this.onSearch(event);
642
- this.trigger('column-search', $field, text);
643
- };
644
-
645
- BootstrapTable.prototype.clearFilterControl = function () {
646
- if (this.options.filterControl && this.options.filterShowClear) {
647
- var that = this,
648
- cookies = collectBootstrapCookies(),
649
- header = getCurrentHeader(that),
650
- table = header.closest('table'),
651
- controls = header.find(getCurrentSearchControls(that)),
652
- search = that.$toolbar.find('.search input'),
653
- timeoutId = 0;
654
-
655
- $.each(that.options.valuesFilterControl, function (i, item) {
656
- item.value = '';
657
- });
658
-
659
- setValues(that);
660
-
661
- // Clear each type of filter if it exists.
662
- // Requires the body to reload each time a type of filter is found because we never know
663
- // which ones are going to be present.
664
- if (controls.length > 0) {
665
- this.filterColumnsPartial = {};
666
- $(controls[0]).trigger(controls[0].tagName === 'INPUT' ? 'keyup' : 'change');
667
- } else {
668
- return;
669
- }
670
-
671
- if (search.length > 0) {
672
- that.resetSearch();
673
- }
674
-
675
- // use the default sort order if it exists. do nothing if it does not
676
- if (that.options.sortName !== table.data('sortName') || that.options.sortOrder !== table.data('sortOrder')) {
677
- var sorter = header.find(sprintf('[data-field="%s"]', $(controls[0]).closest('table').data('sortName')));
678
- if (sorter.length > 0) {
679
- that.onSort(table.data('sortName'), table.data('sortName'));
680
- $(sorter).find('.sortable').trigger('click');
681
- }
682
- }
683
-
684
- // clear cookies once the filters are clean
685
- clearTimeout(timeoutId);
686
- timeoutId = setTimeout(function () {
687
- if (cookies && cookies.length > 0) {
688
- $.each(cookies, function (i, item) {
689
- if (that.deleteCookie !== undefined) {
690
- that.deleteCookie(item);
691
- }
692
- });
693
- }
694
- }, that.options.searchTimeOut);
695
- }
696
- };
697
- })(jQuery);