bootstrap-table-rails 1.12.1 → 1.15.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (193) hide show
  1. checksums.yaml +7 -7
  2. data/README.md +137 -100
  3. data/lib/bootstrap-table-rails/version.rb +1 -1
  4. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table-locale-all.js +5378 -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 +6959 -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.js +1020 -0
  12. data/vendor/assets/javascripts/bootstrap-table/extensions/cell-input/bootstrap-table-cell-input.css +12 -0
  13. data/vendor/assets/javascripts/bootstrap-table/extensions/cell-input/bootstrap-table-cell-input.js +2087 -0
  14. data/vendor/assets/javascripts/bootstrap-table/extensions/cookie/bootstrap-table-cookie.js +1934 -0
  15. data/vendor/assets/javascripts/bootstrap-table/extensions/copy-rows/bootstrap-table-copy-rows.js +1042 -0
  16. data/vendor/assets/javascripts/bootstrap-table/extensions/defer-url/bootstrap-table-defer-url.js +779 -0
  17. data/vendor/assets/javascripts/bootstrap-table/extensions/editable/bootstrap-table-editable.js +1451 -0
  18. data/vendor/assets/javascripts/bootstrap-table/extensions/export/bootstrap-table-export.js +2500 -0
  19. data/vendor/assets/{stylesheets/extensions → javascripts/bootstrap-table/extensions/filter-control}/bootstrap-table-filter-control.css +3 -3
  20. data/vendor/assets/javascripts/bootstrap-table/extensions/filter-control/bootstrap-table-filter-control.js +2502 -0
  21. data/vendor/assets/javascripts/bootstrap-table/extensions/fixed-columns/bootstrap-table-fixed-columns.css +27 -0
  22. data/vendor/assets/javascripts/bootstrap-table/extensions/fixed-columns/bootstrap-table-fixed-columns.js +1378 -0
  23. data/vendor/assets/javascripts/bootstrap-table/extensions/group-by-v2/bootstrap-table-group-by.css +7 -0
  24. data/vendor/assets/javascripts/bootstrap-table/extensions/group-by-v2/bootstrap-table-group-by.js +1478 -0
  25. data/vendor/assets/javascripts/bootstrap-table/extensions/i18n-enhance/bootstrap-table-i18n-enhance.js +125 -0
  26. data/vendor/assets/javascripts/bootstrap-table/extensions/key-events/bootstrap-table-key-events.js +1243 -0
  27. data/vendor/assets/javascripts/bootstrap-table/extensions/mobile/bootstrap-table-mobile.js +1162 -0
  28. data/vendor/assets/javascripts/bootstrap-table/extensions/multiple-sort/bootstrap-table-multiple-sort.js +1905 -0
  29. data/vendor/assets/javascripts/bootstrap-table/extensions/natural-sorting/bootstrap-table-natural-sorting.js +1265 -0
  30. data/vendor/assets/javascripts/bootstrap-table/extensions/page-jump-to/bootstrap-table-page-jump-to.css +11 -0
  31. data/vendor/assets/javascripts/bootstrap-table/extensions/page-jump-to/bootstrap-table-page-jump-to.js +971 -0
  32. data/vendor/assets/javascripts/bootstrap-table/extensions/pipeline/bootstrap-table-pipeline.js +1128 -0
  33. data/vendor/assets/javascripts/bootstrap-table/extensions/print/bootstrap-table-print.js +1960 -0
  34. data/vendor/assets/javascripts/bootstrap-table/extensions/reorder-columns/bootstrap-table-reorder-columns.js +1015 -0
  35. data/vendor/assets/javascripts/bootstrap-table/extensions/reorder-rows/bootstrap-table-reorder-rows.css +14 -0
  36. data/vendor/assets/javascripts/bootstrap-table/extensions/reorder-rows/bootstrap-table-reorder-rows.js +774 -0
  37. data/vendor/assets/javascripts/bootstrap-table/extensions/resizable/bootstrap-table-resizable.js +676 -0
  38. data/vendor/assets/javascripts/bootstrap-table/extensions/sticky-header/bootstrap-table-sticky-header.css +22 -0
  39. data/vendor/assets/javascripts/bootstrap-table/extensions/sticky-header/bootstrap-table-sticky-header.js +1023 -0
  40. data/vendor/assets/javascripts/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.js +2297 -0
  41. data/vendor/assets/javascripts/bootstrap-table/extensions/treegrid/bootstrap-table-treegrid.js +1817 -0
  42. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-af-ZA.js +721 -0
  43. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ar-SA.js +722 -0
  44. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ca-ES.js +722 -0
  45. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-cs-CZ.js +722 -0
  46. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-da-DK.js +721 -0
  47. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-de-DE.js +721 -0
  48. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-el-GR.js +721 -0
  49. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-en-US.js +721 -0
  50. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-AR.js +721 -0
  51. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-CL.js +722 -0
  52. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-CR.js +721 -0
  53. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-ES.js +721 -0
  54. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-MX.js +723 -0
  55. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-NI.js +721 -0
  56. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-SP.js +721 -0
  57. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-et-EE.js +721 -0
  58. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-eu-EU.js +721 -0
  59. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fa-IR.js +721 -0
  60. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fi-FI.js +721 -0
  61. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-BE.js +722 -0
  62. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-CH.js +721 -0
  63. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-FR.js +723 -0
  64. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-LU.js +721 -0
  65. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-he-IL.js +721 -0
  66. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-hr-HR.js +722 -0
  67. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-hu-HU.js +721 -0
  68. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-id-ID.js +721 -0
  69. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-it-IT.js +723 -0
  70. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ja-JP.js +721 -0
  71. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ka-GE.js +721 -0
  72. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ko-KR.js +721 -0
  73. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ms-MY.js +721 -0
  74. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nb-NO.js +721 -0
  75. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nl-BE.js +721 -0
  76. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nl-NL.js +722 -0
  77. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pl-PL.js +721 -0
  78. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pt-BR.js +723 -0
  79. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pt-PT.js +721 -0
  80. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ro-RO.js +721 -0
  81. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ru-RU.js +721 -0
  82. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sk-SK.js +721 -0
  83. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sr-Cyrl-RS.js +721 -0
  84. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sr-Latn-RS.js +721 -0
  85. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sv-SE.js +721 -0
  86. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-th-TH.js +721 -0
  87. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-tr-TR.js +722 -0
  88. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-uk-UA.js +721 -0
  89. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ur-PK.js +721 -0
  90. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-uz-Latn-UZ.js +721 -0
  91. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-vi-VN.js +721 -0
  92. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-zh-CN.js +721 -0
  93. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-zh-TW.js +721 -0
  94. data/vendor/assets/javascripts/bootstrap-table/themes/bulma/bootstrap-table-bulma.css +352 -0
  95. data/vendor/assets/javascripts/bootstrap-table/themes/bulma/bootstrap-table-bulma.js +943 -0
  96. data/vendor/assets/javascripts/bootstrap-table/themes/foundation/bootstrap-table-foundation.css +329 -0
  97. data/vendor/assets/javascripts/bootstrap-table/themes/foundation/bootstrap-table-foundation.js +950 -0
  98. data/vendor/assets/javascripts/bootstrap-table/themes/materialize/bootstrap-table-materialize.css +326 -0
  99. data/vendor/assets/javascripts/bootstrap-table/themes/materialize/bootstrap-table-materialize.js +946 -0
  100. data/vendor/assets/javascripts/bootstrap-table/themes/semantic/bootstrap-table-semantic.css +336 -0
  101. data/vendor/assets/javascripts/bootstrap-table/themes/semantic/bootstrap-table-semantic.js +920 -0
  102. metadata +149 -140
  103. data/vendor/assets/images/icon.png +0 -0
  104. data/vendor/assets/javascripts/bootstrap-table-locale-all.js +0 -2066
  105. data/vendor/assets/javascripts/bootstrap-table.js +0 -3295
  106. data/vendor/assets/javascripts/extensions/bootstrap-table-accent-neutralise.js +0 -182
  107. data/vendor/assets/javascripts/extensions/bootstrap-table-angular.js +0 -107
  108. data/vendor/assets/javascripts/extensions/bootstrap-table-auto-refresh.js +0 -84
  109. data/vendor/assets/javascripts/extensions/bootstrap-table-click-edit-row.js +0 -142
  110. data/vendor/assets/javascripts/extensions/bootstrap-table-cookie.js +0 -413
  111. data/vendor/assets/javascripts/extensions/bootstrap-table-copy-rows.js +0 -102
  112. data/vendor/assets/javascripts/extensions/bootstrap-table-defer-url.js +0 -32
  113. data/vendor/assets/javascripts/extensions/bootstrap-table-editable.js +0 -146
  114. data/vendor/assets/javascripts/extensions/bootstrap-table-export.js +0 -179
  115. data/vendor/assets/javascripts/extensions/bootstrap-table-filter-control.js +0 -744
  116. data/vendor/assets/javascripts/extensions/bootstrap-table-filter.js +0 -67
  117. data/vendor/assets/javascripts/extensions/bootstrap-table-flat-json.js +0 -62
  118. data/vendor/assets/javascripts/extensions/bootstrap-table-group-by-v2.js +0 -226
  119. data/vendor/assets/javascripts/extensions/bootstrap-table-group-by.js +0 -243
  120. data/vendor/assets/javascripts/extensions/bootstrap-table-i18n-enhance.js +0 -35
  121. data/vendor/assets/javascripts/extensions/bootstrap-table-jumpto.js +0 -50
  122. data/vendor/assets/javascripts/extensions/bootstrap-table-key-events.js +0 -80
  123. data/vendor/assets/javascripts/extensions/bootstrap-table-mobile.js +0 -136
  124. data/vendor/assets/javascripts/extensions/bootstrap-table-multi-toggle.js +0 -88
  125. data/vendor/assets/javascripts/extensions/bootstrap-table-multiple-search.js +0 -71
  126. data/vendor/assets/javascripts/extensions/bootstrap-table-multiple-selection-row.js +0 -127
  127. data/vendor/assets/javascripts/extensions/bootstrap-table-multiple-sort.js +0 -412
  128. data/vendor/assets/javascripts/extensions/bootstrap-table-natural-sorting.js +0 -67
  129. data/vendor/assets/javascripts/extensions/bootstrap-table-print.js +0 -149
  130. data/vendor/assets/javascripts/extensions/bootstrap-table-reorder-columns.js +0 -181
  131. data/vendor/assets/javascripts/extensions/bootstrap-table-reorder-rows.js +0 -118
  132. data/vendor/assets/javascripts/extensions/bootstrap-table-resizable.js +0 -75
  133. data/vendor/assets/javascripts/extensions/bootstrap-table-select2-filter.js +0 -332
  134. data/vendor/assets/javascripts/extensions/bootstrap-table-sticky-header.js +0 -118
  135. data/vendor/assets/javascripts/extensions/bootstrap-table-toolbar.js +0 -211
  136. data/vendor/assets/javascripts/extensions/bootstrap-table-tree-column.js +0 -130
  137. data/vendor/assets/javascripts/extensions/bootstrap-table-treegrid.js +0 -95
  138. data/vendor/assets/javascripts/locale/bootstrap-table-af-ZA.js +0 -40
  139. data/vendor/assets/javascripts/locale/bootstrap-table-ar-SA.js +0 -40
  140. data/vendor/assets/javascripts/locale/bootstrap-table-ca-ES.js +0 -44
  141. data/vendor/assets/javascripts/locale/bootstrap-table-cs-CZ.js +0 -44
  142. data/vendor/assets/javascripts/locale/bootstrap-table-da-DK.js +0 -37
  143. data/vendor/assets/javascripts/locale/bootstrap-table-de-DE.js +0 -52
  144. data/vendor/assets/javascripts/locale/bootstrap-table-el-GR.js +0 -28
  145. data/vendor/assets/javascripts/locale/bootstrap-table-en-US.js +0 -49
  146. data/vendor/assets/javascripts/locale/bootstrap-table-es-AR.js +0 -31
  147. data/vendor/assets/javascripts/locale/bootstrap-table-es-CL.js +0 -44
  148. data/vendor/assets/javascripts/locale/bootstrap-table-es-CR.js +0 -40
  149. data/vendor/assets/javascripts/locale/bootstrap-table-es-ES.js +0 -43
  150. data/vendor/assets/javascripts/locale/bootstrap-table-es-MX.js +0 -51
  151. data/vendor/assets/javascripts/locale/bootstrap-table-es-NI.js +0 -40
  152. data/vendor/assets/javascripts/locale/bootstrap-table-es-SP.js +0 -40
  153. data/vendor/assets/javascripts/locale/bootstrap-table-et-EE.js +0 -43
  154. data/vendor/assets/javascripts/locale/bootstrap-table-eu-EU.js +0 -43
  155. data/vendor/assets/javascripts/locale/bootstrap-table-fa-IR.js +0 -43
  156. data/vendor/assets/javascripts/locale/bootstrap-table-fr-BE.js +0 -28
  157. data/vendor/assets/javascripts/locale/bootstrap-table-fr-FR.js +0 -95
  158. data/vendor/assets/javascripts/locale/bootstrap-table-he-IL.js +0 -43
  159. data/vendor/assets/javascripts/locale/bootstrap-table-hr-HR.js +0 -44
  160. data/vendor/assets/javascripts/locale/bootstrap-table-hu-HU.js +0 -43
  161. data/vendor/assets/javascripts/locale/bootstrap-table-id-ID.js +0 -49
  162. data/vendor/assets/javascripts/locale/bootstrap-table-it-IT.js +0 -52
  163. data/vendor/assets/javascripts/locale/bootstrap-table-ja-JP.js +0 -43
  164. data/vendor/assets/javascripts/locale/bootstrap-table-ka-GE.js +0 -40
  165. data/vendor/assets/javascripts/locale/bootstrap-table-ko-KR.js +0 -37
  166. data/vendor/assets/javascripts/locale/bootstrap-table-ms-MY.js +0 -43
  167. data/vendor/assets/javascripts/locale/bootstrap-table-nb-NO.js +0 -37
  168. data/vendor/assets/javascripts/locale/bootstrap-table-nl-NL.js +0 -52
  169. data/vendor/assets/javascripts/locale/bootstrap-table-pl-PL.js +0 -37
  170. data/vendor/assets/javascripts/locale/bootstrap-table-pt-BR.js +0 -41
  171. data/vendor/assets/javascripts/locale/bootstrap-table-pt-PT.js +0 -43
  172. data/vendor/assets/javascripts/locale/bootstrap-table-ro-RO.js +0 -43
  173. data/vendor/assets/javascripts/locale/bootstrap-table-ru-RU.js +0 -72
  174. data/vendor/assets/javascripts/locale/bootstrap-table-sk-SK.js +0 -49
  175. data/vendor/assets/javascripts/locale/bootstrap-table-sv-SE.js +0 -37
  176. data/vendor/assets/javascripts/locale/bootstrap-table-th-TH.js +0 -37
  177. data/vendor/assets/javascripts/locale/bootstrap-table-tr-TR.js +0 -41
  178. data/vendor/assets/javascripts/locale/bootstrap-table-uk-UA.js +0 -73
  179. data/vendor/assets/javascripts/locale/bootstrap-table-ur-PK.js +0 -37
  180. data/vendor/assets/javascripts/locale/bootstrap-table-uz-Latn-UZ.js +0 -49
  181. data/vendor/assets/javascripts/locale/bootstrap-table-vi-VN.js +0 -28
  182. data/vendor/assets/javascripts/locale/bootstrap-table-zh-CN.js +0 -46
  183. data/vendor/assets/javascripts/locale/bootstrap-table-zh-TW.js +0 -40
  184. data/vendor/assets/stylesheets/bootstrap-table.css +0 -318
  185. data/vendor/assets/stylesheets/extensions/bootstrap-table-auto-refresh.css +0 -3
  186. data/vendor/assets/stylesheets/extensions/bootstrap-table-click-edit-row.css +0 -21
  187. data/vendor/assets/stylesheets/extensions/bootstrap-table-group-by-v2.css +0 -7
  188. data/vendor/assets/stylesheets/extensions/bootstrap-table-group-by.css +0 -53
  189. data/vendor/assets/stylesheets/extensions/bootstrap-table-jumpto.css +0 -8
  190. data/vendor/assets/stylesheets/extensions/bootstrap-table-multiple-selection-row.css +0 -17
  191. data/vendor/assets/stylesheets/extensions/bootstrap-table-reorder-rows.css +0 -14
  192. data/vendor/assets/stylesheets/extensions/bootstrap-table-sticky-header.css +0 -22
  193. data/vendor/assets/stylesheets/extensions/bootstrap-table-tree-column.css +0 -1
@@ -1,412 +0,0 @@
1
- /**
2
- * @author Nadim Basalamah <dimbslmh@gmail.com>
3
- * @version: v1.1.0
4
- * https://github.com/dimbslmh/bootstrap-table/tree/master/src/extensions/multiple-sort/bootstrap-table-multiple-sort.js
5
- * Modification: ErwannNevou <https://github.com/ErwannNevou>
6
- */
7
-
8
- (function($) {
9
- 'use strict';
10
-
11
- var isSingleSort = false;
12
-
13
- var showSortModal = function(that) {
14
- var _selector = that.sortModalSelector,
15
- _id = '#' + _selector;
16
-
17
- if (!$(_id).hasClass("modal")) {
18
- var sModal = ' <div class="modal fade" id="' + _selector + '" tabindex="-1" role="dialog" aria-labelledby="' + _selector + 'Label" aria-hidden="true">';
19
- sModal += ' <div class="modal-dialog">';
20
- sModal += ' <div class="modal-content">';
21
- sModal += ' <div class="modal-header">';
22
- sModal += ' <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>';
23
- sModal += ' <h4 class="modal-title" id="' + _selector + 'Label">' + that.options.formatMultipleSort() + '</h4>';
24
- sModal += ' </div>';
25
- sModal += ' <div class="modal-body">';
26
- sModal += ' <div class="bootstrap-table">';
27
- sModal += ' <div class="fixed-table-toolbar">';
28
- sModal += ' <div class="bars">';
29
- sModal += ' <div id="toolbar">';
30
- sModal += ' <button id="add" type="button" class="btn btn-default"><i class="' + that.options.iconsPrefix + ' ' + that.options.icons.plus + '"></i> ' + that.options.formatAddLevel() + '</button>';
31
- sModal += ' <button id="delete" type="button" class="btn btn-default" disabled><i class="' + that.options.iconsPrefix + ' ' + that.options.icons.minus + '"></i> ' + that.options.formatDeleteLevel() + '</button>';
32
- sModal += ' </div>';
33
- sModal += ' </div>';
34
- sModal += ' </div>';
35
- sModal += ' <div class="fixed-table-container">';
36
- sModal += ' <table id="multi-sort" class="table">';
37
- sModal += ' <thead>';
38
- sModal += ' <tr>';
39
- sModal += ' <th></th>';
40
- sModal += ' <th><div class="th-inner">' + that.options.formatColumn() + '</div></th>';
41
- sModal += ' <th><div class="th-inner">' + that.options.formatOrder() + '</div></th>';
42
- sModal += ' </tr>';
43
- sModal += ' </thead>';
44
- sModal += ' <tbody></tbody>';
45
- sModal += ' </table>';
46
- sModal += ' </div>';
47
- sModal += ' </div>';
48
- sModal += ' </div>';
49
- sModal += ' <div class="modal-footer">';
50
- sModal += ' <button type="button" class="btn btn-default" data-dismiss="modal">' + that.options.formatCancel() + '</button>';
51
- sModal += ' <button type="button" class="btn btn-primary">' + that.options.formatSort() + '</button>';
52
- sModal += ' </div>';
53
- sModal += ' </div>';
54
- sModal += ' </div>';
55
- sModal += ' </div>';
56
-
57
- $('body').append($(sModal));
58
-
59
- that.$sortModal = $(_id);
60
- var $rows = that.$sortModal.find('tbody > tr');
61
-
62
- that.$sortModal.off('click', '#add').on('click', '#add', function() {
63
- var total = that.$sortModal.find('.multi-sort-name:first option').length,
64
- current = that.$sortModal.find('tbody tr').length;
65
-
66
- if (current < total) {
67
- current++;
68
- that.addLevel();
69
- that.setButtonStates();
70
- }
71
- });
72
-
73
- that.$sortModal.off('click', '#delete').on('click', '#delete', function() {
74
- var total = that.$sortModal.find('.multi-sort-name:first option').length,
75
- current = that.$sortModal.find('tbody tr').length;
76
-
77
- if (current > 1 && current <= total) {
78
- current--;
79
- that.$sortModal.find('tbody tr:last').remove();
80
- that.setButtonStates();
81
- }
82
- });
83
-
84
- that.$sortModal.off('click', '.btn-primary').on('click', '.btn-primary', function() {
85
- var $rows = that.$sortModal.find('tbody > tr'),
86
- $alert = that.$sortModal.find('div.alert'),
87
- fields = [],
88
- results = [];
89
-
90
-
91
- that.options.sortPriority = $.map($rows, function(row) {
92
- var $row = $(row),
93
- name = $row.find('.multi-sort-name').val(),
94
- order = $row.find('.multi-sort-order').val();
95
-
96
- fields.push(name);
97
-
98
- return {
99
- sortName: name,
100
- sortOrder: order
101
- };
102
- });
103
-
104
- var sorted_fields = fields.sort();
105
-
106
- for (var i = 0; i < fields.length - 1; i++) {
107
- if (sorted_fields[i + 1] == sorted_fields[i]) {
108
- results.push(sorted_fields[i]);
109
- }
110
- }
111
-
112
- if (results.length > 0) {
113
- if ($alert.length === 0) {
114
- $alert = '<div class="alert alert-danger" role="alert"><strong>' + that.options.formatDuplicateAlertTitle() + '</strong> ' + that.options.formatDuplicateAlertDescription() + '</div>';
115
- $($alert).insertBefore(that.$sortModal.find('.bars'));
116
- }
117
- } else {
118
- if ($alert.length === 1) {
119
- $($alert).remove();
120
- }
121
-
122
- that.$sortModal.modal('hide');
123
- that.options.sortName = '';
124
-
125
- if (that.options.sidePagination === 'server') {
126
- var t = that.options.queryParams;
127
- that.options.queryParams = function(params) {
128
- params.multiSort = that.options.sortPriority;
129
- return t(params);
130
- };
131
- isSingleSort=false;
132
- that.initServer(that.options.silentSort);
133
- return;
134
- }
135
- that.onMultipleSort();
136
-
137
- }
138
- });
139
-
140
- if (that.options.sortPriority === null || that.options.sortPriority.length === 0) {
141
- if (that.options.sortName) {
142
- that.options.sortPriority = [{
143
- sortName: that.options.sortName,
144
- sortOrder: that.options.sortOrder
145
- }];
146
- }
147
- }
148
-
149
- if (that.options.sortPriority !== null && that.options.sortPriority.length > 0) {
150
- if ($rows.length < that.options.sortPriority.length && typeof that.options.sortPriority === 'object') {
151
- for (var i = 0; i < that.options.sortPriority.length; i++) {
152
- that.addLevel(i, that.options.sortPriority[i]);
153
- }
154
- }
155
- } else {
156
- that.addLevel(0);
157
- }
158
-
159
- that.setButtonStates();
160
- }
161
- };
162
-
163
- $.fn.bootstrapTable.methods.push('multipleSort');
164
-
165
- $.extend($.fn.bootstrapTable.defaults, {
166
- showMultiSort: false,
167
- showMultiSortButton: true,
168
- sortPriority: null,
169
- onMultipleSort: function() {
170
- return false;
171
- }
172
- });
173
-
174
- $.extend($.fn.bootstrapTable.defaults.icons, {
175
- sort: 'glyphicon-sort',
176
- plus: 'glyphicon-plus',
177
- minus: 'glyphicon-minus'
178
- });
179
-
180
- $.extend($.fn.bootstrapTable.Constructor.EVENTS, {
181
- 'multiple-sort.bs.table': 'onMultipleSort'
182
- });
183
-
184
- $.extend($.fn.bootstrapTable.locales, {
185
- formatMultipleSort: function() {
186
- return 'Multiple Sort';
187
- },
188
- formatAddLevel: function() {
189
- return 'Add Level';
190
- },
191
- formatDeleteLevel: function() {
192
- return 'Delete Level';
193
- },
194
- formatColumn: function() {
195
- return 'Column';
196
- },
197
- formatOrder: function() {
198
- return 'Order';
199
- },
200
- formatSortBy: function() {
201
- return 'Sort by';
202
- },
203
- formatThenBy: function() {
204
- return 'Then by';
205
- },
206
- formatSort: function() {
207
- return 'Sort';
208
- },
209
- formatCancel: function() {
210
- return 'Cancel';
211
- },
212
- formatDuplicateAlertTitle: function() {
213
- return 'Duplicate(s) detected!';
214
- },
215
- formatDuplicateAlertDescription: function() {
216
- return 'Please remove or change any duplicate column.';
217
- },
218
- formatSortOrders: function() {
219
- return {
220
- asc: 'Ascending',
221
- desc: 'Descending'
222
- };
223
- }
224
- });
225
-
226
- $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales);
227
-
228
- var BootstrapTable = $.fn.bootstrapTable.Constructor,
229
- _initToolbar = BootstrapTable.prototype.initToolbar;
230
-
231
- BootstrapTable.prototype.initToolbar = function() {
232
- this.showToolbar = this.showToolbar || this.options.showMultiSort;
233
- var that = this,
234
- sortModalSelector = 'sortModal_' + this.$el.attr('id'),
235
- sortModalId = '#' + sortModalSelector;
236
- this.$sortModal = $(sortModalId);
237
- this.sortModalSelector = sortModalSelector;
238
-
239
- _initToolbar.apply(this, Array.prototype.slice.apply(arguments));
240
-
241
- if (that.options.sidePagination === 'server' && !isSingleSort && that.options.sortPriority !== null){
242
- var t = that.options.queryParams;
243
- that.options.queryParams = function(params) {
244
- params.multiSort = that.options.sortPriority;
245
- return t(params);
246
- };
247
- }
248
-
249
- if (this.options.showMultiSort) {
250
- var $btnGroup = this.$toolbar.find('>.btn-group').first(),
251
- $multiSortBtn = this.$toolbar.find('div.multi-sort');
252
-
253
- if (!$multiSortBtn.length && this.options.showMultiSortButton) {
254
- $multiSortBtn = ' <button class="multi-sort btn btn-default' + (this.options.iconSize === undefined ? '' : ' btn-' + this.options.iconSize) + '" type="button" data-toggle="modal" data-target="' + sortModalId + '" title="' + this.options.formatMultipleSort() + '">';
255
- $multiSortBtn += ' <i class="' + this.options.iconsPrefix + ' ' + this.options.icons.sort + '"></i>';
256
- $multiSortBtn += '</button>';
257
-
258
- $btnGroup.append($multiSortBtn);
259
-
260
- showSortModal(that);
261
- }
262
-
263
- this.$el.on('sort.bs.table', function() {
264
- isSingleSort = true;
265
- });
266
-
267
- this.$el.on('multiple-sort.bs.table', function() {
268
- isSingleSort = false;
269
- });
270
-
271
- this.$el.on('load-success.bs.table', function() {
272
- if (!isSingleSort && that.options.sortPriority !== null && typeof that.options.sortPriority === 'object' && that.options.sidePagination !== 'server') {
273
- that.onMultipleSort();
274
- }
275
- });
276
-
277
- this.$el.on('column-switch.bs.table', function(field, checked) {
278
- for (var i = 0; i < that.options.sortPriority.length; i++) {
279
- if (that.options.sortPriority[i].sortName === checked) {
280
- that.options.sortPriority.splice(i, 1);
281
- }
282
- }
283
-
284
- that.assignSortableArrows();
285
- that.$sortModal.remove();
286
- showSortModal(that);
287
- });
288
-
289
- this.$el.on('reset-view.bs.table', function() {
290
- if (!isSingleSort && that.options.sortPriority !== null && typeof that.options.sortPriority === 'object') {
291
- that.assignSortableArrows();
292
- }
293
- });
294
- }
295
- };
296
-
297
- BootstrapTable.prototype.multipleSort = function() {
298
- var that = this;
299
- if (!isSingleSort && that.options.sortPriority !== null && typeof that.options.sortPriority === 'object' && that.options.sidePagination !== 'server') {
300
- that.onMultipleSort();
301
- }
302
- };
303
-
304
- BootstrapTable.prototype.onMultipleSort = function() {
305
- var that = this;
306
-
307
- var cmp = function(x, y) {
308
- return x > y ? 1 : x < y ? -1 : 0;
309
- };
310
-
311
- var arrayCmp = function(a, b) {
312
- var arr1 = [],
313
- arr2 = [];
314
-
315
- for (var i = 0; i < that.options.sortPriority.length; i++) {
316
- var order = that.options.sortPriority[i].sortOrder === 'desc' ? -1 : 1,
317
- aa = a[that.options.sortPriority[i].sortName],
318
- bb = b[that.options.sortPriority[i].sortName];
319
-
320
- if (aa === undefined || aa === null) {
321
- aa = '';
322
- }
323
- if (bb === undefined || bb === null) {
324
- bb = '';
325
- }
326
- if ($.isNumeric(aa) && $.isNumeric(bb)) {
327
- aa = parseFloat(aa);
328
- bb = parseFloat(bb);
329
- }
330
- if (typeof aa !== 'string') {
331
- aa = aa.toString();
332
- }
333
-
334
- arr1.push(
335
- order * cmp(aa, bb));
336
- arr2.push(
337
- order * cmp(bb, aa));
338
- }
339
-
340
- return cmp(arr1, arr2);
341
- };
342
-
343
- this.data.sort(function(a, b) {
344
- return arrayCmp(a, b);
345
- });
346
-
347
- this.initBody();
348
- this.assignSortableArrows();
349
- this.trigger('multiple-sort');
350
- };
351
-
352
- BootstrapTable.prototype.addLevel = function(index, sortPriority) {
353
- var text = index === 0 ? this.options.formatSortBy() : this.options.formatThenBy();
354
-
355
- this.$sortModal.find('tbody')
356
- .append($('<tr>')
357
- .append($('<td>').text(text))
358
- .append($('<td>').append($('<select class="form-control multi-sort-name">')))
359
- .append($('<td>').append($('<select class="form-control multi-sort-order">')))
360
- );
361
-
362
- var $multiSortName = this.$sortModal.find('.multi-sort-name').last(),
363
- $multiSortOrder = this.$sortModal.find('.multi-sort-order').last();
364
-
365
- $.each(this.columns, function(i, column) {
366
- if (column.sortable === false || column.visible === false) {
367
- return true;
368
- }
369
- $multiSortName.append('<option value="' + column.field + '">' + column.title + '</option>');
370
- });
371
-
372
- $.each(this.options.formatSortOrders(), function(value, order) {
373
- $multiSortOrder.append('<option value="' + value + '">' + order + '</option>');
374
- });
375
-
376
- if (sortPriority !== undefined) {
377
- $multiSortName.find('option[value="' + sortPriority.sortName + '"]').attr("selected", true);
378
- $multiSortOrder.find('option[value="' + sortPriority.sortOrder + '"]').attr("selected", true);
379
- }
380
- };
381
-
382
- BootstrapTable.prototype.assignSortableArrows = function() {
383
- var that = this,
384
- headers = that.$header.find('th');
385
-
386
- for (var i = 0; i < headers.length; i++) {
387
- for (var c = 0; c < that.options.sortPriority.length; c++) {
388
- if ($(headers[i]).data('field') === that.options.sortPriority[c].sortName) {
389
- $(headers[i]).find('.sortable').removeClass('desc asc').addClass(that.options.sortPriority[c].sortOrder);
390
- }
391
- }
392
- }
393
- };
394
-
395
- BootstrapTable.prototype.setButtonStates = function() {
396
- var total = this.$sortModal.find('.multi-sort-name:first option').length,
397
- current = this.$sortModal.find('tbody tr').length;
398
-
399
- if (current == total) {
400
- this.$sortModal.find('#add').attr('disabled', 'disabled');
401
- }
402
- if (current > 1) {
403
- this.$sortModal.find('#delete').removeAttr('disabled');
404
- }
405
- if (current < total) {
406
- this.$sortModal.find('#add').removeAttr('disabled');
407
- }
408
- if (current == 1) {
409
- this.$sortModal.find('#delete').attr('disabled', 'disabled');
410
- }
411
- };
412
- })(jQuery);
@@ -1,67 +0,0 @@
1
- /**
2
- * @author: Brian Huisman
3
- * @webSite: http://www.greywyvern.com
4
- * @version: v1.0.0
5
- * JS functions to allow natural sorting on bootstrap-table columns
6
- * add data-sorter="alphanum" or data-sorter="numericOnly" to any th
7
- *
8
- * @update Dennis Hernández <http://djhvscf.github.io/Blog>
9
- * @update Duane May
10
- */
11
-
12
- function alphanum(a, b) {
13
- function chunkify(t) {
14
- var tz = [],
15
- x = 0,
16
- y = -1,
17
- n = 0,
18
- i,
19
- j;
20
-
21
- while (i = (j = t.charAt(x++)).charCodeAt(0)) {
22
- var m = (i === 46 || (i >= 48 && i <= 57));
23
- if (m !== n) {
24
- tz[++y] = "";
25
- n = m;
26
- }
27
- tz[y] += j;
28
- }
29
- return tz;
30
- }
31
-
32
- function stringfy(v) {
33
- if (typeof(v) === "number") {
34
- v = "" + v;
35
- }
36
- if (!v) {
37
- v = "";
38
- }
39
- return v;
40
- }
41
-
42
- var aa = chunkify(stringfy(a));
43
- var bb = chunkify(stringfy(b));
44
-
45
- for (x = 0; aa[x] && bb[x]; x++) {
46
- if (aa[x] !== bb[x]) {
47
- var c = Number(aa[x]),
48
- d = Number(bb[x]);
49
-
50
- if (c == aa[x] && d == bb[x]) {
51
- return c - d;
52
- } else {
53
- return (aa[x] > bb[x]) ? 1 : -1;
54
- }
55
- }
56
- }
57
- return aa.length - bb.length;
58
- }
59
-
60
- function numericOnly(a, b) {
61
- function stripNonNumber(s) {
62
- s = s.replace(new RegExp(/[^0-9]/g), "");
63
- return parseInt(s, 10);
64
- }
65
-
66
- return stripNonNumber(a) - stripNonNumber(b);
67
- }
@@ -1,149 +0,0 @@
1
- (function ($) {
2
- 'use strict';
3
-
4
- var sprintf = $.fn.bootstrapTable.utils.sprintf;
5
-
6
- function printPageBuilderDefault(table) {
7
- return '<html><head>' +
8
- '<style type="text/css" media="print">' +
9
- ' @page { size: auto; margin: 25px 0 25px 0; }' +
10
- '</style>' +
11
- '<style type="text/css" media="all">' +
12
- 'table{border-collapse: collapse; font-size: 12px; }\n' +
13
- 'table, th, td {border: 1px solid grey}\n' +
14
- 'th, td {text-align: center; vertical-align: middle;}\n' +
15
- 'p {font-weight: bold; margin-left:20px }\n' +
16
- 'table { width:94%; margin-left:3%; margin-right:3%}\n' +
17
- 'div.bs-table-print { text-align:center;}\n' +
18
- '</style></head><title>Print Table</title><body>' +
19
- '<p>Printed on: ' + new Date + ' </p>' +
20
- '<div class="bs-table-print">' + table + "</div></body></html>";
21
- }
22
- $.extend($.fn.bootstrapTable.defaults, {
23
- showPrint: false,
24
- printAsFilteredAndSortedOnUI: true, //boolean, when true - print table as sorted and filtered on UI.
25
- //Please note that if true is set, along with explicit predefined print options for filtering and sorting (printFilter, printSortOrder, printSortColumn)- then they will be applied on data already filtered and sorted by UI controls.
26
- //For printing data as filtered and sorted on UI - do not set these 3 options:printFilter, printSortOrder, printSortColumn
27
-
28
- printSortColumn: undefined , //String, set column field name to be sorted by
29
- printSortOrder: 'asc', //String: 'asc' , 'desc' - relevant only if printSortColumn is set
30
- printPageBuilder: function(table){return printPageBuilderDefault(table)} // function, receive html <table> element as string, returns html string for printing. by default delegates to function printPageBuilderDefault(table). used for styling and adding header or footer
31
- });
32
- $.extend($.fn.bootstrapTable.COLUMN_DEFAULTS, {
33
- printFilter: undefined, //set value to filter by in print page
34
- printIgnore: false, //boolean, set true to ignore this column in the print page
35
- printFormatter:undefined //function(value, row, index), formats the cell value for this column in the printed table. Function behaviour is similar to the 'formatter' column option
36
-
37
- });
38
- $.extend($.fn.bootstrapTable.defaults.icons, {
39
- print: 'glyphicon-print icon-share'
40
- });
41
-
42
- var BootstrapTable = $.fn.bootstrapTable.Constructor,
43
- _initToolbar = BootstrapTable.prototype.initToolbar;
44
-
45
- BootstrapTable.prototype.initToolbar = function () {
46
- this.showToolbar = this.showToolbar || this.options.showPrint;
47
-
48
- _initToolbar.apply(this, Array.prototype.slice.apply(arguments));
49
-
50
- if (this.options.showPrint) {
51
- var that = this,
52
- $btnGroup = this.$toolbar.find('>.btn-group'),
53
- $print = $btnGroup.find('button.bs-print');
54
-
55
- if (!$print.length) {
56
- $print = $([
57
- '<button class="bs-print btn btn-default' + sprintf(' btn-%s"', this.options.iconSize) + ' name="print" title="print" type="button">',
58
- sprintf('<i class="%s %s"></i> ', this.options.iconsPrefix, this.options.icons.print),
59
- '</button>'].join('')).appendTo($btnGroup);
60
-
61
- $print.click(function () {
62
- function formatValue(row, i, column ) {
63
- var value = row[column.field];
64
- if (typeof column.printFormatter === 'function') {
65
- return column.printFormatter.apply(column, [value, row, i]);
66
- }
67
- else {
68
- return typeof value === 'undefined' ? "-" : value;
69
- }
70
- }
71
-
72
- function buildTable(data, columnsArray) {
73
- var html = ['<table><thead>'];
74
- for (var k = 0; k < columnsArray.length; k++) {
75
- var columns = columnsArray[k];
76
- html.push('<tr>');
77
- for (var h = 0; h < columns.length; h++) {
78
- if (!columns[h].printIgnore) {
79
- html.push(
80
- '<th',
81
- sprintf(' rowspan="%s"', columns[h].rowspan),
82
- sprintf(' colspan="%s"', columns[h].colspan),
83
- sprintf('>%s</th>', columns[h].title)
84
- );
85
- }
86
- }
87
- html.push('</tr>');
88
- }
89
- html.push('</thead><tbody>');
90
- for (var i = 0; i < data.length; i++) {
91
- html.push('<tr>');
92
- for(var l = 0; l < columnsArray.length; l++) {
93
- var columns = columnsArray[l];
94
- for(var j = 0; j < columns.length; j++) {
95
- if (!columns[j].printIgnore && columns[j].field) {
96
- html.push('<td>', formatValue(data[i], i, columns[j]), '</td>');
97
- }
98
- }
99
- }
100
- html.push('</tr>');
101
- }
102
- html.push('</tbody></table>');
103
- return html.join('');
104
- }
105
- function sortRows(data,colName,sortOrder) {
106
- if(!colName){
107
- return data;
108
- }
109
- var reverse = sortOrder != 'asc';
110
- reverse = -((+reverse) || -1);
111
- return data.sort(function (a, b) {
112
- return reverse * (a[colName].localeCompare(b[colName]));
113
- });
114
- }
115
- function filterRow(row,filters) {
116
- for (var index = 0; index < filters.length; ++index) {
117
- if(row[filters[index].colName]!=filters[index].value) {
118
- return false;
119
- }
120
- }
121
- return true;
122
- }
123
- function filterRows(data,filters) {
124
- return data.filter(function (row) {
125
- return filterRow(row,filters)
126
- });
127
- }
128
- function getColumnFilters(columns) {
129
- return !columns || !columns[0] ? [] : columns[0].filter(function (col) {
130
- return col.printFilter;
131
- }).map(function (col) {
132
- return {colName:col.field, value:col.printFilter};
133
- });
134
- }
135
- var doPrint = function (data) {
136
- data=filterRows(data,getColumnFilters(that.options.columns));
137
- data=sortRows(data,that.options.printSortColumn,that.options.printSortOrder);
138
- var table=buildTable(data,that.options.columns);
139
- var newWin = window.open("");
140
- newWin.document.write(that.options.printPageBuilder.call(this, table));
141
- newWin.print();
142
- newWin.close();
143
- };
144
- doPrint(that.options.printAsFilteredAndSortedOnUI? that.getData() : that.options.data.slice(0));
145
- });
146
- }
147
- }
148
- };
149
- })(jQuery);