bootstrap-table-rails 1.11.0 → 1.11.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +25 -4
  3. data/lib/bootstrap-table-rails/version.rb +1 -1
  4. data/vendor/assets/images/icon.png +0 -0
  5. data/vendor/assets/javascripts/bootstrap-table.js +300 -225
  6. data/vendor/assets/javascripts/extensions/bootstrap-table-accent-neutralise.js +0 -0
  7. data/vendor/assets/javascripts/extensions/bootstrap-table-angular.js +0 -0
  8. data/vendor/assets/javascripts/extensions/bootstrap-table-auto-refresh.js +84 -0
  9. data/vendor/assets/javascripts/extensions/bootstrap-table-click-edit-row.js +142 -0
  10. data/vendor/assets/javascripts/extensions/bootstrap-table-cookie.js +78 -36
  11. data/vendor/assets/javascripts/extensions/bootstrap-table-copy-rows.js +0 -0
  12. data/vendor/assets/javascripts/extensions/bootstrap-table-editable.js +0 -0
  13. data/vendor/assets/javascripts/extensions/bootstrap-table-export.js +12 -2
  14. data/vendor/assets/javascripts/extensions/bootstrap-table-filter-control.js +36 -11
  15. data/vendor/assets/javascripts/extensions/bootstrap-table-filter.js +0 -0
  16. data/vendor/assets/javascripts/extensions/bootstrap-table-flat-json.js +0 -0
  17. data/vendor/assets/javascripts/extensions/{bootstrap-table-group-by 2.js → bootstrap-table-group-by-v2.js} +0 -0
  18. data/vendor/assets/javascripts/extensions/bootstrap-table-group-by.js +0 -0
  19. data/vendor/assets/javascripts/extensions/bootstrap-table-i18n-enhance.js +0 -0
  20. data/vendor/assets/javascripts/extensions/bootstrap-table-key-events.js +0 -0
  21. data/vendor/assets/javascripts/extensions/bootstrap-table-mobile.js +0 -0
  22. data/vendor/assets/javascripts/extensions/bootstrap-table-multi-toggle.js +0 -0
  23. data/vendor/assets/javascripts/extensions/bootstrap-table-multiple-search.js +0 -0
  24. data/vendor/assets/javascripts/extensions/bootstrap-table-multiple-selection-row.js +127 -0
  25. data/vendor/assets/javascripts/extensions/bootstrap-table-multiple-sort.js +1 -1
  26. data/vendor/assets/javascripts/extensions/bootstrap-table-natural-sorting.js +0 -0
  27. data/vendor/assets/javascripts/extensions/bootstrap-table-print.js +133 -0
  28. data/vendor/assets/javascripts/extensions/bootstrap-table-reorder-columns.js +4 -0
  29. data/vendor/assets/javascripts/extensions/bootstrap-table-reorder-rows.js +6 -4
  30. data/vendor/assets/javascripts/extensions/bootstrap-table-resizable.js +0 -0
  31. data/vendor/assets/javascripts/extensions/bootstrap-table-select2-filter.js +0 -0
  32. data/vendor/assets/javascripts/extensions/bootstrap-table-sticky-header.js +0 -0
  33. data/vendor/assets/javascripts/extensions/bootstrap-table-toolbar.js +2 -2
  34. data/vendor/assets/javascripts/extensions/bootstrap-table-tree-column.js +130 -0
  35. data/vendor/assets/javascripts/locale/README.md +179 -0
  36. data/vendor/assets/javascripts/locale/bootstrap-table-af-ZA.js +0 -0
  37. data/vendor/assets/javascripts/locale/bootstrap-table-ar-SA.js +0 -0
  38. data/vendor/assets/javascripts/locale/bootstrap-table-ca-ES.js +0 -0
  39. data/vendor/assets/javascripts/locale/bootstrap-table-cs-CZ.js +0 -0
  40. data/vendor/assets/javascripts/locale/bootstrap-table-da-DK.js +0 -0
  41. data/vendor/assets/javascripts/locale/bootstrap-table-de-DE.js +10 -4
  42. data/vendor/assets/javascripts/locale/bootstrap-table-el-GR.js +0 -0
  43. data/vendor/assets/javascripts/locale/bootstrap-table-en-US.js +0 -0
  44. data/vendor/assets/javascripts/locale/bootstrap-table-en-US.js.template +49 -0
  45. data/vendor/assets/javascripts/locale/bootstrap-table-es-AR.js +0 -0
  46. data/vendor/assets/javascripts/locale/bootstrap-table-es-CL.js +44 -0
  47. data/vendor/assets/javascripts/locale/bootstrap-table-es-CR.js +0 -0
  48. data/vendor/assets/javascripts/locale/bootstrap-table-es-ES.js +0 -0
  49. data/vendor/assets/javascripts/locale/bootstrap-table-es-MX.js +0 -0
  50. data/vendor/assets/javascripts/locale/bootstrap-table-es-NI.js +0 -0
  51. data/vendor/assets/javascripts/locale/bootstrap-table-es-SP.js +0 -0
  52. data/vendor/assets/javascripts/locale/bootstrap-table-et-EE.js +0 -0
  53. data/vendor/assets/javascripts/locale/bootstrap-table-fa-IR.js +0 -0
  54. data/vendor/assets/javascripts/locale/bootstrap-table-fr-BE.js +0 -0
  55. data/vendor/assets/javascripts/locale/bootstrap-table-fr-FR.js +0 -0
  56. data/vendor/assets/javascripts/locale/bootstrap-table-he-IL.js +0 -0
  57. data/vendor/assets/javascripts/locale/bootstrap-table-hr-HR.js +0 -0
  58. data/vendor/assets/javascripts/locale/bootstrap-table-hu-HU.js +0 -0
  59. data/vendor/assets/javascripts/locale/bootstrap-table-id-ID.js +49 -0
  60. data/vendor/assets/javascripts/locale/bootstrap-table-it-IT.js +12 -2
  61. data/vendor/assets/javascripts/locale/bootstrap-table-ja-JP.js +0 -0
  62. data/vendor/assets/javascripts/locale/bootstrap-table-ka-GE.js +0 -0
  63. data/vendor/assets/javascripts/locale/bootstrap-table-ko-KR.js +0 -0
  64. data/vendor/assets/javascripts/locale/bootstrap-table-ms-MY.js +0 -0
  65. data/vendor/assets/javascripts/locale/bootstrap-table-nb-NO.js +0 -0
  66. data/vendor/assets/javascripts/locale/bootstrap-table-nl-NL.js +0 -0
  67. data/vendor/assets/javascripts/locale/bootstrap-table-pl-PL.js +0 -0
  68. data/vendor/assets/javascripts/locale/bootstrap-table-pt-BR.js +0 -0
  69. data/vendor/assets/javascripts/locale/bootstrap-table-pt-PT.js +0 -0
  70. data/vendor/assets/javascripts/locale/bootstrap-table-ro-RO.js +0 -0
  71. data/vendor/assets/javascripts/locale/bootstrap-table-ru-RU.js +33 -0
  72. data/vendor/assets/javascripts/locale/bootstrap-table-sk-SK.js +0 -0
  73. data/vendor/assets/javascripts/locale/bootstrap-table-sv-SE.js +0 -0
  74. data/vendor/assets/javascripts/locale/bootstrap-table-th-TH.js +0 -0
  75. data/vendor/assets/javascripts/locale/bootstrap-table-tr-TR.js +0 -0
  76. data/vendor/assets/javascripts/locale/bootstrap-table-uk-UA.js +36 -0
  77. data/vendor/assets/javascripts/locale/bootstrap-table-ur-PK.js +0 -0
  78. data/vendor/assets/javascripts/locale/bootstrap-table-uz-Latn-UZ.js +49 -0
  79. data/vendor/assets/javascripts/locale/bootstrap-table-vi-VN.js +0 -0
  80. data/vendor/assets/javascripts/locale/bootstrap-table-zh-CN.js +0 -0
  81. data/vendor/assets/javascripts/locale/bootstrap-table-zh-TW.js +0 -0
  82. data/vendor/assets/stylesheets/bootstrap-table.css +9 -5
  83. data/vendor/assets/stylesheets/extensions/bootstrap-table-auto-refresh.css +3 -0
  84. data/vendor/assets/stylesheets/extensions/bootstrap-table-click-edit-row.css +21 -0
  85. data/vendor/assets/stylesheets/extensions/bootstrap-table-filter-control.css +13 -0
  86. data/vendor/assets/stylesheets/extensions/{bootstrap-table-group-by 2.css → bootstrap-table-group-by-v2.css} +0 -0
  87. data/vendor/assets/stylesheets/extensions/bootstrap-table-group-by.css +0 -0
  88. data/vendor/assets/stylesheets/extensions/bootstrap-table-multiple-selection-row.css +17 -0
  89. data/vendor/assets/stylesheets/extensions/bootstrap-table-reorder-rows.css +0 -0
  90. data/vendor/assets/stylesheets/extensions/bootstrap-table-sticky-header.css +0 -0
  91. data/vendor/assets/stylesheets/extensions/bootstrap-table-tree-column.css +1 -0
  92. metadata +20 -4
@@ -0,0 +1,84 @@
1
+ /**
2
+ * @author: Alec Fenichel
3
+ * @webSite: https://fenichelar.com
4
+ * @version: v1.0.0
5
+ */
6
+
7
+ (function ($) {
8
+
9
+ 'use strict';
10
+
11
+ $.extend($.fn.bootstrapTable.defaults, {
12
+ autoRefresh: false,
13
+ autoRefreshInterval: 60,
14
+ autoRefreshSilent: true,
15
+ autoRefreshStatus: true,
16
+ autoRefreshFunction: null
17
+ });
18
+
19
+ $.extend($.fn.bootstrapTable.defaults.icons, {
20
+ autoRefresh: 'glyphicon-time icon-time'
21
+ });
22
+
23
+ $.extend($.fn.bootstrapTable.locales, {
24
+ formatAutoRefresh: function() {
25
+ return 'Auto Refresh';
26
+ }
27
+ });
28
+
29
+ $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales);
30
+
31
+ var BootstrapTable = $.fn.bootstrapTable.Constructor;
32
+ var _init = BootstrapTable.prototype.init;
33
+ var _initToolbar = BootstrapTable.prototype.initToolbar;
34
+ var sprintf = $.fn.bootstrapTable.utils.sprintf;
35
+
36
+ BootstrapTable.prototype.init = function () {
37
+ _init.apply(this, Array.prototype.slice.apply(arguments));
38
+
39
+ if (this.options.autoRefresh && this.options.autoRefreshStatus) {
40
+ var that = this;
41
+ this.options.autoRefreshFunction = setInterval(function () {
42
+ that.refresh({silent: that.options.autoRefreshSilent});
43
+ }, this.options.autoRefreshInterval*1000);
44
+ }
45
+ };
46
+
47
+ BootstrapTable.prototype.initToolbar = function() {
48
+ _initToolbar.apply(this, Array.prototype.slice.apply(arguments));
49
+
50
+ if (this.options.autoRefresh) {
51
+ var $btnGroup = this.$toolbar.find('>.btn-group');
52
+ var $btnAutoRefresh = $btnGroup.find('.auto-refresh');
53
+
54
+ if (!$btnAutoRefresh.length) {
55
+ $btnAutoRefresh = $([
56
+ sprintf('<button class="btn btn-default auto-refresh %s" ', this.options.autoRefreshStatus ? 'enabled' : ''),
57
+ 'type="button" ',
58
+ sprintf('title="%s">', this.options.formatAutoRefresh()),
59
+ sprintf('<i class="%s %s"></i>', this.options.iconsPrefix, this.options.icons.autoRefresh),
60
+ '</button>'
61
+ ].join('')).appendTo($btnGroup);
62
+
63
+ $btnAutoRefresh.on('click', $.proxy(this.toggleAutoRefresh, this));
64
+ }
65
+ }
66
+ };
67
+
68
+ BootstrapTable.prototype.toggleAutoRefresh = function() {
69
+ if (this.options.autoRefresh) {
70
+ if (this.options.autoRefreshStatus) {
71
+ clearInterval(this.options.autoRefreshFunction);
72
+ this.$toolbar.find('>.btn-group').find('.auto-refresh').removeClass('enabled');
73
+ } else {
74
+ var that = this;
75
+ this.options.autoRefreshFunction = setInterval(function () {
76
+ that.refresh({silent: that.options.autoRefreshSilent});
77
+ }, this.options.autoRefreshInterval*1000);
78
+ this.$toolbar.find('>.btn-group').find('.auto-refresh').addClass('enabled');
79
+ }
80
+ this.options.autoRefreshStatus = !this.options.autoRefreshStatus;
81
+ }
82
+ };
83
+
84
+ })(jQuery);
@@ -0,0 +1,142 @@
1
+ /**
2
+ * @author horken wong <horken.wong@gmail.com>
3
+ * @version: v1.0.0
4
+ * https://github.com/horkenw/bootstrap-table
5
+ * Click to edit row for bootstrap-table
6
+ */
7
+
8
+ (function ($) {
9
+ 'use strict';
10
+
11
+ $.extend($.fn.bootstrapTable.defaults, {
12
+ clickEdit: false
13
+ });
14
+
15
+ function setDivision(node, options){
16
+ var $option = $('<option />');
17
+ if(options){
18
+ $(options).each(function(i, v){
19
+ $option.clone().text(v.idxNum + ' ' +v.name).val(v.idxNum).appendTo(node);
20
+ })
21
+ }
22
+ else{
23
+ console.log('Please setup options first!!')
24
+ }
25
+ }
26
+
27
+ function clikcToEdit(evt, tarNode){
28
+ var txt = [], table = evt,
29
+ submit = '<button type="button" class="btn btn-primary btn-sm editable-submit"><i class="glyphicon glyphicon-ok"></i></button>',
30
+ cancel = '<button type="button" class="btn btn-default btn-sm editable-cancel"><i class="glyphicon glyphicon-remove"></i></button>';
31
+
32
+ var replaceData = function(){
33
+ txt = [];
34
+ tarNode.find('td').find('input[type="text"]').each(function(i, td){
35
+ txt.push($(td).eq(0).val());
36
+ });
37
+ tarNode.find('select').each(function(i, td){
38
+ txt.push($('#'+td.id+' option:selected').val());
39
+ });
40
+ $('#table').bootstrapTable('updateRow', {
41
+ index: table.$data.thId,
42
+ row: {
43
+ noOld: txt[0],
44
+ area: tarNode.find('select').eq(0).children(':selected').text(),
45
+ town: tarNode.find('select').eq(1).children(':selected').text(),
46
+ address: txt[1]
47
+ }
48
+ });
49
+ $('#tooling').remove();
50
+ table.editing = true;
51
+ // updateToServerSide(table.$data.itemid, txt);
52
+ return false;
53
+ };
54
+
55
+ var recoveryData = function(){
56
+ $('#table').bootstrapTable('updateRow', {
57
+ index: table.$data.thId,
58
+ row: {},
59
+ });
60
+ $('#tooling').remove();
61
+ table.editing = true;
62
+ return false;
63
+ };
64
+
65
+ if(table.editing){
66
+ var rootid = 0;
67
+ table.editing = false;
68
+ table.columns.forEach(function(column, i){
69
+ if (!column.editable) return;
70
+
71
+ switch(column.editable){
72
+ case 'input':
73
+ var div=$('<div class="editable-input col-md-12 col-sm-12 col-xs-12" style="position: relative;"/>');
74
+ txt.push(tarNode.find('td').eq(column.fieldIndex).text());
75
+ div.append($('<input type="text" class="form-control input-sm"/>'));
76
+ div.append($('<span class="clear"><i class="fa fa-times-circle-o" aria-hidden="true"></i></span>'));
77
+ tarNode.find('td').eq(column.fieldIndex).text('').append(div);
78
+ break;
79
+ case 'select':
80
+ var select=$('<select id="'+column.field+'">'), options = $.selectArray[column.field];
81
+ tarNode.find('td').eq(column.fieldIndex).text('').append(select);
82
+ setDivision($('#'+column.field), options);
83
+ break;
84
+ case 'textarea':
85
+ break;
86
+ default:
87
+ console.log(column.fieldIndex+' '+column.editable);
88
+ }
89
+
90
+ }, evt);
91
+ for(var i=0, l=txt.length; i<l; i++){
92
+ tarNode.find('input[type="text"]').eq(i).val(txt[i]);
93
+ }
94
+ tarNode.find('td').last().append('<div id="tooling" class="editable-buttons"/>');
95
+ $('.clear').on('click', function(){ $(this).parent().find('input').val('');});
96
+ $(submit).on('click', replaceData).appendTo('#tooling');
97
+ $(cancel).on('click', recoveryData).appendTo('#tooling');
98
+ }
99
+ }
100
+
101
+ function updateToServerSide(item, data){
102
+ var itemid = $(item).find('a').attr('href').match(/\d+/g)[0];
103
+ var datas = {'treeId': itemid, 'oldTreeSerialNo': data[0], 'adminDivision': data[2], 'adminUnit': data[3], 'treeAddr': data[1]}; //傳送至伺服器端的Data產生處,需手動修改對應表格
104
+ store( 'data/update', datas)
105
+ }
106
+
107
+ var BootstrapTable = $.fn.bootstrapTable.Constructor,
108
+ _initTable = BootstrapTable.prototype.initTable,
109
+ _initBody = BootstrapTable.prototype.initBody;
110
+
111
+ BootstrapTable.prototype.initTable = function(){
112
+ var that = this;
113
+ this.$data = {};
114
+ _initTable.apply(this, Array.prototype.slice.apply(arguments));
115
+
116
+ if (!this.options.clickEdit) {
117
+ return;
118
+ }
119
+
120
+ };
121
+
122
+ BootstrapTable.prototype.initBody = function () {
123
+ var that = this;
124
+ _initBody.apply(this, Array.prototype.slice.apply(arguments));
125
+
126
+ if (!this.options.clickEdit) {
127
+ return;
128
+ }
129
+
130
+ var table = this.$tableBody.find('table');
131
+ that.editing=true;
132
+
133
+ table.on('click-row.bs.table', function (e, row, $element, field) {
134
+ if(field ==='no') return; //|| field ==='noOld'
135
+ this.$data.thId = $element.data().index;
136
+ this.$data.itemid = $element.data().uniqueid;
137
+ this.$data.divi = parseInt(row.area);
138
+ this.$data.town=parseInt(row.town);
139
+ clikcToEdit(this, $element);
140
+ }.bind(this));
141
+ };
142
+ })(jQuery);
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @author: Dennis Hernández
3
3
  * @webSite: http://djhvscf.github.io/Blog
4
- * @version: v1.2.1
4
+ * @version: v1.2.2
5
5
  *
6
6
  * @update zhixin wen <wenzhixin2010@gmail.com>
7
7
  */
@@ -64,11 +64,27 @@
64
64
  }
65
65
 
66
66
  cookieName = that.options.cookieIdTable + '.' + cookieName;
67
- if (!cookieName || /^(?:expires|max\-age|path|domain|secure)$/i.test(cookieName)) {
68
- return false;
67
+
68
+ switch(that.options.cookieStorage) {
69
+ case 'cookieStorage':
70
+ document.cookie = [
71
+ cookieName, '=', cookieValue,
72
+ '; expires=' + that.options.cookieExpire,
73
+ that.options.cookiePath ? '; path=' + that.options.cookiePath : '',
74
+ that.options.cookieDomain ? '; domain=' + that.options.cookieDomain : '',
75
+ that.options.cookieSecure ? '; secure' : ''
76
+ ].join('');
77
+ break;
78
+ case 'localStorage':
79
+ localStorage.setItem(cookieName, cookieValue);
80
+ break;
81
+ case 'sessionStorage':
82
+ sessionStorage.setItem(cookieName, cookieValue);
83
+ break;
84
+ default:
85
+ return false;
69
86
  }
70
87
 
71
- document.cookie = encodeURIComponent(cookieName) + '=' + encodeURIComponent(cookieValue) + calculateExpiration(that.options.cookieExpire) + (that.options.cookieDomain ? '; domain=' + that.options.cookieDomain : '') + (that.options.cookiePath ? '; path=' + that.options.cookiePath : '') + (that.cookieSecure ? '; secure' : '');
72
88
  return true;
73
89
  };
74
90
 
@@ -83,28 +99,44 @@
83
99
 
84
100
  cookieName = tableName + '.' + cookieName;
85
101
 
86
- return decodeURIComponent(document.cookie.replace(new RegExp('(?:(?:^|.*;)\\s*' + encodeURIComponent(cookieName).replace(/[\-\.\+\*]/g, '\\$&') + '\\s*\\=\\s*([^;]*).*$)|^.*$'), '$1')) || null;
87
- };
88
-
89
- var hasCookie = function (cookieName) {
90
- if (!cookieName) {
91
- return false;
102
+ switch(that.options.cookieStorage) {
103
+ case 'cookieStorage':
104
+ return decodeURIComponent(document.cookie.replace(new RegExp('(?:(?:^|.*;)\\s*' + encodeURIComponent(cookieName).replace(/[\-\.\+\*]/g, '\\$&') + '\\s*\\=\\s*([^;]*).*$)|^.*$'), '$1')) || null;
105
+ case 'localStorage':
106
+ return localStorage.getItem(cookieName);
107
+ case 'sessionStorage':
108
+ return sessionStorage.getItem(cookieName);
109
+ default:
110
+ return null;
92
111
  }
93
- return (new RegExp('(?:^|;\\s*)' + encodeURIComponent(cookieName).replace(/[\-\.\+\*]/g, '\\$&') + '\\s*\\=')).test(document.cookie);
94
112
  };
95
113
 
96
- var deleteCookie = function (tableName, cookieName, sPath, sDomain) {
114
+ var deleteCookie = function (that, tableName, cookieName) {
97
115
  cookieName = tableName + '.' + cookieName;
98
- if (!hasCookie(cookieName)) {
99
- return false;
116
+
117
+ switch(that.options.cookieStorage) {
118
+ case 'cookieStorage':
119
+ document.cookie = [
120
+ encodeURIComponent(cookieName), '=',
121
+ '; expires=Thu, 01 Jan 1970 00:00:00 GMT',
122
+ that.options.cookiePath ? '; path=' + that.options.cookiePath : '',
123
+ that.options.cookieDomain ? '; domain=' + that.options.cookieDomain : '',
124
+ ].join('');
125
+ break;
126
+ case 'localStorage':
127
+ localStorage.removeItem(cookieName);
128
+ break;
129
+ case 'sessionStorage':
130
+ sessionStorage.removeItem(cookieName);
131
+ break;
132
+
100
133
  }
101
- document.cookie = encodeURIComponent(cookieName) + '=; expires=Thu, 01 Jan 1970 00:00:00 GMT' + (sDomain ? '; domain=' + sDomain : '') + (sPath ? '; path=' + sPath : '');
102
134
  return true;
103
135
  };
104
136
 
105
137
  var calculateExpiration = function(cookieExpire) {
106
138
  var time = cookieExpire.replace(/[0-9]*/, ''); //s,mi,h,d,m,y
107
- cookieExpire = cookieExpire.replace(/[A-Za-z]/, ''); //number
139
+ cookieExpire = cookieExpire.replace(/[A-Za-z]{1,2}}/, ''); //number
108
140
 
109
141
  switch (time.toLowerCase()) {
110
142
  case 's':
@@ -163,7 +195,7 @@
163
195
  bootstrapTable.initColumnSearch(cachedFilters);
164
196
  }
165
197
  }, 250);
166
- }
198
+ };
167
199
 
168
200
  $.extend($.fn.bootstrapTable.defaults, {
169
201
  cookie: false,
@@ -172,14 +204,26 @@
172
204
  cookieDomain: null,
173
205
  cookieSecure: null,
174
206
  cookieIdTable: '',
175
- cookiesEnabled: ['bs.table.sortOrder', 'bs.table.sortName', 'bs.table.pageNumber', 'bs.table.pageList', 'bs.table.columns', 'bs.table.searchText', 'bs.table.filterControl'],
207
+ cookiesEnabled: [
208
+ 'bs.table.sortOrder', 'bs.table.sortName',
209
+ 'bs.table.pageNumber', 'bs.table.pageList',
210
+ 'bs.table.columns', 'bs.table.searchText',
211
+ 'bs.table.filterControl'
212
+ ],
213
+ cookieStorage: 'cookieStorage', //localStorage, sessionStorage
176
214
  //internal variable
177
215
  filterControls: [],
178
216
  filterControlValuesLoaded: false
179
217
  });
180
218
 
219
+ $.fn.bootstrapTable.methods.push('getCookies');
181
220
  $.fn.bootstrapTable.methods.push('deleteCookie');
182
221
 
222
+ $.extend($.fn.bootstrapTable.utils, {
223
+ setCookie: setCookie,
224
+ getCookie: getCookie
225
+ });
226
+
183
227
  var BootstrapTable = $.fn.bootstrapTable.Constructor,
184
228
  _init = BootstrapTable.prototype.init,
185
229
  _initTable = BootstrapTable.prototype.initTable,
@@ -200,9 +244,10 @@
200
244
  this.options.filterControls = [];
201
245
  this.options.filterControlValuesLoaded = false;
202
246
 
203
-
204
247
  this.options.cookiesEnabled = typeof this.options.cookiesEnabled === 'string' ?
205
- this.options.cookiesEnabled.replace('[', '').replace(']', '').replace(/ /g, '').toLowerCase().split(',') : this.options.cookiesEnabled;
248
+ this.options.cookiesEnabled.replace('[', '').replace(']', '')
249
+ .replace(/ /g, '').toLowerCase().split(',') :
250
+ this.options.cookiesEnabled;
206
251
 
207
252
  if (this.options.filterControl) {
208
253
  var that = this;
@@ -227,11 +272,6 @@
227
272
  }).on('post-body.bs.table', initCookieFilters(that));
228
273
  }
229
274
  _init.apply(this, Array.prototype.slice.apply(arguments));
230
-
231
- $.extend($.fn.bootstrapTable.utils, {
232
- setCookie: setCookie,
233
- getCookie: getCookie
234
- });
235
275
  };
236
276
 
237
277
  BootstrapTable.prototype.initServer = function () {
@@ -247,7 +287,8 @@
247
287
  },
248
288
 
249
289
  cookiesPresent = function() {
250
- return bootstrapTable.options.cookie && bootstrapTable.getCookies(bootstrapTable);
290
+ var cookie = JSON.parse(getCookie(bootstrapTable, bootstrapTable.options.cookieIdTable, cookieIds.filterControl));
291
+ return bootstrapTable.options.cookie && cookie;
251
292
  };
252
293
 
253
294
  selectsWithoutDefaults = $.grep(bootstrapTable.columns, function(column) {
@@ -259,13 +300,13 @@
259
300
  BootstrapTable.prototype.initServer = _initServer;
260
301
 
261
302
  // early return if we don't need to populate any select values with cookie values
262
- if (cookiesPresent() && selectsWithoutDefaults.length === 0) {
303
+ if (this.options.filterControl && cookiesPresent() && selectsWithoutDefaults.length === 0) {
263
304
  return;
264
305
  }
265
306
 
266
307
  // call BootstrapTable.prototype.initServer
267
308
  _initServer.apply(this, Array.prototype.slice.apply(arguments));
268
- }
309
+ };
269
310
 
270
311
 
271
312
  BootstrapTable.prototype.initTable = function () {
@@ -280,7 +321,6 @@
280
321
 
281
322
  if ((this.options.cookieIdTable === '') || (this.options.cookieExpire === '') || (!cookieEnabled())) {
282
323
  throw new Error("Configuration error. Please review the cookieIdTable, cookieExpire properties, if those properties are ok, then this browser does not support the cookies");
283
- return;
284
324
  }
285
325
 
286
326
  var sortOrderCookie = getCookie(this, this.options.cookieIdTable, cookieIds.sortOrder),
@@ -372,13 +412,15 @@
372
412
  }
373
413
  };
374
414
 
375
- BootstrapTable.prototype.getCookies = function(bootstrapTable) {
376
- var cookies = [];
377
- $.each( cookieIds, function( key, value ) {
378
- var cookie = JSON.parse(getCookie(bootstrapTable, bootstrapTable.options.cookieIdTable, cookieIds.filterControl));
379
- cookies.concat(cookie);
415
+ BootstrapTable.prototype.getCookies = function () {
416
+ var bootstrapTable = this;
417
+ var cookies = {};
418
+ $.each(cookieIds, function(key, value) {
419
+ cookies[key] = getCookie(bootstrapTable, bootstrapTable.options.cookieIdTable, value);
420
+ if (key === 'columns') {
421
+ cookies[key] = JSON.parse(cookies[key]);
422
+ }
380
423
  });
381
-
382
424
  return cookies;
383
425
  };
384
426
 
@@ -387,6 +429,6 @@
387
429
  return;
388
430
  }
389
431
 
390
- deleteCookie(this.options.cookieIdTable, cookieIds[cookieName], this.options.cookiePath, this.options.cookieDomain);
432
+ deleteCookie(this, this.options.cookieIdTable, cookieIds[cookieName]);
391
433
  };
392
434
  })(jQuery);