bootstrap-table-rails 1.11.0 → 1.11.1.1

Sign up to get free protection for your applications and to get access to all the features.
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);