bootstrap-table-rails 1.10.1 → 1.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/bootstrap-table-rails/version.rb +1 -1
- data/vendor/assets/javascripts/bootstrap-table-locale-all.js +60 -19
- data/vendor/assets/javascripts/bootstrap-table.js +305 -94
- data/vendor/assets/javascripts/extensions/bootstrap-table-angular.js +5 -3
- data/vendor/assets/javascripts/extensions/bootstrap-table-cookie.js +85 -28
- data/vendor/assets/javascripts/extensions/bootstrap-table-copy-rows.js +102 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-editable.js +51 -33
- data/vendor/assets/javascripts/extensions/bootstrap-table-export.js +11 -2
- data/vendor/assets/javascripts/extensions/bootstrap-table-filter-control.js +216 -71
- data/vendor/assets/javascripts/extensions/bootstrap-table-group-by.js +1 -1
- data/vendor/assets/javascripts/extensions/bootstrap-table-i18n-enhance.js +34 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-multi-toggle.js +88 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-multiple-search.js +6 -2
- data/vendor/assets/javascripts/extensions/bootstrap-table-multiple-sort.js +39 -24
- data/vendor/assets/javascripts/extensions/bootstrap-table-natural-sorting.js +12 -2
- data/vendor/assets/javascripts/extensions/bootstrap-table-reorder-columns.js +57 -1
- data/vendor/assets/javascripts/extensions/bootstrap-table-select2-filter.js +303 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-sticky-header.js +16 -9
- data/vendor/assets/javascripts/locale/bootstrap-table-en-US.js +6 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-it-IT.js +5 -1
- data/vendor/assets/javascripts/locale/bootstrap-table-nl-NL.js +24 -15
- data/vendor/assets/javascripts/locale/bootstrap-table-pt-PT.js +18 -3
- data/vendor/assets/javascripts/locale/bootstrap-table-zh-CN.js +7 -1
- data/vendor/assets/stylesheets/bootstrap-table.css +9 -2
- metadata +7 -3
@@ -1,24 +1,27 @@
|
|
1
1
|
/**
|
2
2
|
* @author: Dennis Hernández
|
3
3
|
* @webSite: http://djhvscf.github.io/Blog
|
4
|
-
* @version:
|
4
|
+
* @version: v2.1.0
|
5
5
|
*/
|
6
6
|
|
7
|
-
|
7
|
+
(function ($) {
|
8
8
|
|
9
9
|
'use strict';
|
10
10
|
|
11
|
-
var sprintf = $.fn.bootstrapTable.utils.sprintf
|
11
|
+
var sprintf = $.fn.bootstrapTable.utils.sprintf,
|
12
|
+
objectKeys = $.fn.bootstrapTable.utils.objectKeys;
|
12
13
|
|
13
14
|
var addOptionToSelectControl = function (selectControl, value, text) {
|
14
15
|
value = $.trim(value);
|
15
16
|
selectControl = $(selectControl.get(selectControl.length - 1));
|
16
|
-
if (existOptionInSelectControl(selectControl, value)) {
|
17
|
+
if (!existOptionInSelectControl(selectControl, value)) {
|
17
18
|
selectControl.append($("<option></option>")
|
18
19
|
.attr("value", value)
|
19
20
|
.text($('<div />').html(text).text()));
|
21
|
+
}
|
22
|
+
};
|
20
23
|
|
21
|
-
|
24
|
+
var sortSelectControl = function (selectControl) {
|
22
25
|
var $opts = selectControl.find('option:gt(0)');
|
23
26
|
$opts.sort(function (a, b) {
|
24
27
|
a = $(a).text().toLowerCase();
|
@@ -33,7 +36,6 @@
|
|
33
36
|
|
34
37
|
selectControl.find('option:gt(0)').remove();
|
35
38
|
selectControl.append($opts);
|
36
|
-
}
|
37
39
|
};
|
38
40
|
|
39
41
|
var existOptionInSelectControl = function (selectControl, value) {
|
@@ -41,12 +43,12 @@
|
|
41
43
|
for (var i = 0; i < options.length; i++) {
|
42
44
|
if (options[i].value === value.toString()) {
|
43
45
|
//The value is not valid to add
|
44
|
-
return
|
46
|
+
return true;
|
45
47
|
}
|
46
48
|
}
|
47
49
|
|
48
50
|
//If we get here, the value is valid to add
|
49
|
-
return
|
51
|
+
return false;
|
50
52
|
};
|
51
53
|
|
52
54
|
var fixHeaderCSS = function (that) {
|
@@ -71,6 +73,38 @@
|
|
71
73
|
return searchControls;
|
72
74
|
};
|
73
75
|
|
76
|
+
var getCursorPosition = function(el) {
|
77
|
+
if ($.fn.bootstrapTable.utils.isIEBrowser()) {
|
78
|
+
if ($(el).is('input')) {
|
79
|
+
var pos = 0;
|
80
|
+
if ('selectionStart' in el) {
|
81
|
+
pos = el.selectionStart;
|
82
|
+
} else if ('selection' in document) {
|
83
|
+
el.focus();
|
84
|
+
var Sel = document.selection.createRange();
|
85
|
+
var SelLength = document.selection.createRange().text.length;
|
86
|
+
Sel.moveStart('character', -el.value.length);
|
87
|
+
pos = Sel.text.length - SelLength;
|
88
|
+
}
|
89
|
+
return pos;
|
90
|
+
} else {
|
91
|
+
return -1;
|
92
|
+
}
|
93
|
+
} else {
|
94
|
+
return -1;
|
95
|
+
}
|
96
|
+
};
|
97
|
+
|
98
|
+
var setCursorPosition = function (el, index) {
|
99
|
+
if ($.fn.bootstrapTable.utils.isIEBrowser()) {
|
100
|
+
if(el.setSelectionRange !== undefined) {
|
101
|
+
el.setSelectionRange(index, index);
|
102
|
+
} else {
|
103
|
+
$(el).val(el.value);
|
104
|
+
}
|
105
|
+
}
|
106
|
+
};
|
107
|
+
|
74
108
|
var copyValues = function (that) {
|
75
109
|
var header = getCurrentHeader(that),
|
76
110
|
searchControls = getCurrentSearchControls(that);
|
@@ -81,7 +115,8 @@
|
|
81
115
|
that.options.valuesFilterControl.push(
|
82
116
|
{
|
83
117
|
field: $(this).closest('[data-field]').data('field'),
|
84
|
-
value: $(this).val()
|
118
|
+
value: $(this).val(),
|
119
|
+
position: getCursorPosition($(this).get(0))
|
85
120
|
});
|
86
121
|
});
|
87
122
|
};
|
@@ -101,6 +136,7 @@
|
|
101
136
|
|
102
137
|
if (result.length > 0) {
|
103
138
|
$(this).val(result[0].value);
|
139
|
+
setCursorPosition($(this).get(0), result[0].position);
|
104
140
|
}
|
105
141
|
});
|
106
142
|
}
|
@@ -124,9 +160,9 @@
|
|
124
160
|
}
|
125
161
|
};
|
126
162
|
|
127
|
-
var initFilterSelectControls = function (
|
128
|
-
var data =
|
129
|
-
itemsPerPage =
|
163
|
+
var initFilterSelectControls = function (that) {
|
164
|
+
var data = that.options.data,
|
165
|
+
itemsPerPage = that.pageTo < that.options.data.length ? that.options.data.length : that.pageTo,
|
130
166
|
|
131
167
|
isColumnSearchableViaSelect = function (column) {
|
132
168
|
return column.filterControl && column.filterControl.toLowerCase() === 'select' && column.searchable;
|
@@ -140,29 +176,40 @@
|
|
140
176
|
return selectControl && selectControl.length > 0;
|
141
177
|
};
|
142
178
|
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
var column = bootstrapTable.columns[$.fn.bootstrapTable.utils.getFieldIndex(bootstrapTable.columns, field)],
|
147
|
-
selectControl = $('.' + column.field);
|
179
|
+
var z = that.options.pagination ?
|
180
|
+
(that.options.sidePagination === 'server' ? that.pageTo : that.options.totalRows) :
|
181
|
+
that.pageTo;
|
148
182
|
|
183
|
+
$.each(that.header.fields, function (j, field) {
|
184
|
+
var column = that.columns[$.fn.bootstrapTable.utils.getFieldIndex(that.columns, field)],
|
185
|
+
selectControl = $('.bootstrap-table-filter-control-' + escapeID(column.field));
|
149
186
|
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
187
|
+
if (isColumnSearchableViaSelect(column) && isFilterDataNotGiven(column) && hasSelectControlElement(selectControl)) {
|
188
|
+
if (selectControl.get(selectControl.length - 1).options.length === 0) {
|
189
|
+
//Added the default option
|
190
|
+
addOptionToSelectControl(selectControl, '', '');
|
191
|
+
}
|
155
192
|
|
193
|
+
var uniqueValues = {};
|
194
|
+
for (var i = 0; i < z; i++) {
|
156
195
|
//Added a new value
|
157
196
|
var fieldValue = data[i][field],
|
158
|
-
formattedValue = $.fn.bootstrapTable.utils.calculateObjectValue(
|
197
|
+
formattedValue = $.fn.bootstrapTable.utils.calculateObjectValue(that.header, that.header.formatters[j], [fieldValue, data[i], i], fieldValue);
|
159
198
|
|
160
|
-
|
199
|
+
uniqueValues[formattedValue] = fieldValue;
|
200
|
+
}
|
201
|
+
for (var key in uniqueValues) {
|
202
|
+
addOptionToSelectControl(selectControl, uniqueValues[key], key);
|
161
203
|
}
|
162
|
-
});
|
163
|
-
}
|
164
204
|
|
165
|
-
|
205
|
+
sortSelectControl(selectControl);
|
206
|
+
}
|
207
|
+
});
|
208
|
+
};
|
209
|
+
|
210
|
+
var escapeID = function( id ) {
|
211
|
+
return String(id).replace( /(:|\.|\[|\]|,)/g, "\\$1" );
|
212
|
+
};
|
166
213
|
|
167
214
|
var createControls = function (that, header) {
|
168
215
|
var addedFilterControl = false,
|
@@ -198,29 +245,48 @@
|
|
198
245
|
return false;
|
199
246
|
}
|
200
247
|
});
|
248
|
+
|
201
249
|
if (column.filterData !== undefined && column.filterData.toLowerCase() !== 'column') {
|
202
|
-
var filterDataType = column.filterData.substring(0,
|
203
|
-
var filterDataSource
|
204
|
-
|
205
|
-
|
250
|
+
var filterDataType = getFilterDataMethod(filterDataMethods, column.filterData.substring(0, column.filterData.indexOf(':')));
|
251
|
+
var filterDataSource, selectControl;
|
252
|
+
|
253
|
+
if (filterDataType !== null) {
|
254
|
+
filterDataSource = column.filterData.substring(column.filterData.indexOf(':') + 1, column.filterData.length);
|
255
|
+
selectControl = $('.bootstrap-table-filter-control-' + escapeID(column.field));
|
206
256
|
|
257
|
+
addOptionToSelectControl(selectControl, '', '');
|
258
|
+
filterDataType(filterDataSource, selectControl);
|
259
|
+
} else {
|
260
|
+
throw new SyntaxError('Error. You should use any of these allowed filter data methods: var, json, url.' + ' Use like this: var: {key: "value"}');
|
261
|
+
}
|
262
|
+
|
263
|
+
var variableValues, key;
|
207
264
|
switch (filterDataType) {
|
208
265
|
case 'url':
|
209
266
|
$.ajax({
|
210
267
|
url: filterDataSource,
|
211
268
|
dataType: 'json',
|
212
269
|
success: function (data) {
|
213
|
-
|
214
|
-
addOptionToSelectControl(selectControl, key,
|
215
|
-
}
|
270
|
+
for (var key in data) {
|
271
|
+
addOptionToSelectControl(selectControl, key, data[key]);
|
272
|
+
}
|
273
|
+
sortSelectControl(selectControl);
|
216
274
|
}
|
217
275
|
});
|
218
276
|
break;
|
219
277
|
case 'var':
|
220
|
-
|
221
|
-
for (
|
278
|
+
variableValues = window[filterDataSource];
|
279
|
+
for (key in variableValues) {
|
222
280
|
addOptionToSelectControl(selectControl, key, variableValues[key]);
|
223
281
|
}
|
282
|
+
sortSelectControl(selectControl);
|
283
|
+
break;
|
284
|
+
case 'jso':
|
285
|
+
variableValues = JSON.parse(filterDataSource);
|
286
|
+
for (key in variableValues) {
|
287
|
+
addOptionToSelectControl(selectControl, key, variableValues[key]);
|
288
|
+
}
|
289
|
+
sortSelectControl(selectControl);
|
224
290
|
break;
|
225
291
|
}
|
226
292
|
}
|
@@ -264,7 +330,7 @@
|
|
264
330
|
if (header.find('.date-filter-control').length > 0) {
|
265
331
|
$.each(that.columns, function (i, column) {
|
266
332
|
if (column.filterControl !== undefined && column.filterControl.toLowerCase() === 'datepicker') {
|
267
|
-
header.find('.date-filter-control.' + column.field).datepicker(column.filterDatepickerOptions)
|
333
|
+
header.find('.date-filter-control.bootstrap-table-filter-control-' + column.field).datepicker(column.filterDatepickerOptions)
|
268
334
|
.on('changeDate', function (e) {
|
269
335
|
//Fired the keyup event
|
270
336
|
$(e.currentTarget).keyup();
|
@@ -288,10 +354,50 @@
|
|
288
354
|
case 'auto':
|
289
355
|
return 'auto';
|
290
356
|
default:
|
291
|
-
return 'ltr'
|
357
|
+
return 'ltr';
|
292
358
|
}
|
293
359
|
};
|
294
360
|
|
361
|
+
var filterDataMethods =
|
362
|
+
{
|
363
|
+
'var': function (filterDataSource, selectControl) {
|
364
|
+
var variableValues = window[filterDataSource];
|
365
|
+
for (var key in variableValues) {
|
366
|
+
addOptionToSelectControl(selectControl, key, variableValues[key]);
|
367
|
+
}
|
368
|
+
sortSelectControl(selectControl);
|
369
|
+
},
|
370
|
+
'url': function (filterDataSource, selectControl) {
|
371
|
+
$.ajax({
|
372
|
+
url: filterDataSource,
|
373
|
+
dataType: 'json',
|
374
|
+
success: function (data) {
|
375
|
+
for (var key in data) {
|
376
|
+
addOptionToSelectControl(selectControl, key, data[key]);
|
377
|
+
}
|
378
|
+
sortSelectControl(selectControl);
|
379
|
+
}
|
380
|
+
});
|
381
|
+
},
|
382
|
+
'json':function (filterDataSource, selectControl) {
|
383
|
+
var variableValues = JSON.parse(filterDataSource);
|
384
|
+
for (var key in variableValues) {
|
385
|
+
addOptionToSelectControl(selectControl, key, variableValues[key]);
|
386
|
+
}
|
387
|
+
sortSelectControl(selectControl);
|
388
|
+
}
|
389
|
+
};
|
390
|
+
|
391
|
+
var getFilterDataMethod = function (objFilterDataMethod, searchTerm) {
|
392
|
+
var keys = Object.keys(objFilterDataMethod);
|
393
|
+
for (var i = 0; i < keys.length; i++) {
|
394
|
+
if (keys[i] === searchTerm) {
|
395
|
+
return objFilterDataMethod[searchTerm];
|
396
|
+
}
|
397
|
+
}
|
398
|
+
return null;
|
399
|
+
};
|
400
|
+
|
295
401
|
$.extend($.fn.bootstrapTable.defaults, {
|
296
402
|
filterControl: false,
|
297
403
|
onColumnSearch: function (field, text) {
|
@@ -299,27 +405,28 @@
|
|
299
405
|
},
|
300
406
|
filterShowClear: false,
|
301
407
|
alignmentSelectControlOptions: undefined,
|
302
|
-
//internal variables
|
303
|
-
valuesFilterControl: [],
|
304
408
|
filterTemplate: {
|
305
409
|
input: function (that, field, isVisible) {
|
306
|
-
return sprintf('<input type="text" class="form-control
|
410
|
+
return sprintf('<input type="text" class="form-control bootstrap-table-filter-control-%s" style="width: 100%; visibility: %s">', field, isVisible);
|
307
411
|
},
|
308
412
|
select: function (that, field, isVisible) {
|
309
|
-
return sprintf('<select class="
|
310
|
-
field, isVisible, getDirectionOfSelectOptions(that.options.alignmentSelectControlOptions))
|
413
|
+
return sprintf('<select class="form-control bootstrap-table-filter-control-%s" style="width: 100%; visibility: %s" dir="%s"></select>',
|
414
|
+
field, isVisible, getDirectionOfSelectOptions(that.options.alignmentSelectControlOptions));
|
311
415
|
},
|
312
416
|
datepicker: function (that, field, isVisible) {
|
313
|
-
return sprintf('<input type="text" class="date-filter-control
|
417
|
+
return sprintf('<input type="text" class="form-control date-filter-control bootstrap-table-filter-control-%s" style="width: 100%; visibility: %s">', field, isVisible);
|
314
418
|
}
|
315
|
-
}
|
419
|
+
},
|
420
|
+
//internal variables
|
421
|
+
valuesFilterControl: []
|
316
422
|
});
|
317
423
|
|
318
424
|
$.extend($.fn.bootstrapTable.COLUMN_DEFAULTS, {
|
319
425
|
filterControl: undefined,
|
320
426
|
filterData: undefined,
|
321
427
|
filterDatepickerOptions: undefined,
|
322
|
-
filterStrictSearch: false
|
428
|
+
filterStrictSearch: false,
|
429
|
+
filterStartsWithSearch: false
|
323
430
|
});
|
324
431
|
|
325
432
|
$.extend($.fn.bootstrapTable.Constructor.EVENTS, {
|
@@ -330,6 +437,13 @@
|
|
330
437
|
clear: 'glyphicon-trash icon-clear'
|
331
438
|
});
|
332
439
|
|
440
|
+
$.extend($.fn.bootstrapTable.locales, {
|
441
|
+
formatClearFilters: function () {
|
442
|
+
return 'Clear Filters';
|
443
|
+
}
|
444
|
+
});
|
445
|
+
$.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales);
|
446
|
+
|
333
447
|
var BootstrapTable = $.fn.bootstrapTable.Constructor,
|
334
448
|
_init = BootstrapTable.prototype.init,
|
335
449
|
_initToolbar = BootstrapTable.prototype.initToolbar,
|
@@ -341,6 +455,12 @@
|
|
341
455
|
//Make sure that the filterControl option is set
|
342
456
|
if (this.options.filterControl) {
|
343
457
|
var that = this;
|
458
|
+
|
459
|
+
// Compatibility: IE < 9 and old browsers
|
460
|
+
if (!Object.keys) {
|
461
|
+
objectKeys();
|
462
|
+
}
|
463
|
+
|
344
464
|
//Make sure that the internal variables are set correctly
|
345
465
|
this.options.valuesFilterControl = [];
|
346
466
|
|
@@ -369,31 +489,22 @@
|
|
369
489
|
_init.apply(this, Array.prototype.slice.apply(arguments));
|
370
490
|
};
|
371
491
|
|
372
|
-
$.extend($.fn.bootstrapTable.locales, {
|
373
|
-
formatClearFilters: function () {
|
374
|
-
return 'Clear Filters';
|
375
|
-
}
|
376
|
-
});
|
377
|
-
$.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales);
|
378
|
-
|
379
492
|
BootstrapTable.prototype.initToolbar = function () {
|
380
|
-
|
381
|
-
this.showToolbar = this.options.filterControl;
|
382
|
-
}
|
493
|
+
this.showToolbar = this.options.filterControl && this.options.filterShowClear;
|
383
494
|
|
384
495
|
_initToolbar.apply(this, Array.prototype.slice.apply(arguments));
|
385
496
|
|
386
497
|
if (this.options.filterControl && this.options.filterShowClear) {
|
387
498
|
var $btnGroup = this.$toolbar.find('>.btn-group'),
|
388
|
-
$btnClear = $btnGroup.find('
|
499
|
+
$btnClear = $btnGroup.find('.filter-show-clear');
|
389
500
|
|
390
501
|
if (!$btnClear.length) {
|
391
|
-
|
392
|
-
'<button class="btn btn-default" ',
|
502
|
+
$btnClear = $([
|
503
|
+
'<button class="btn btn-default filter-show-clear" ',
|
393
504
|
sprintf('type="button" title="%s">', this.options.formatClearFilters()),
|
394
505
|
sprintf('<i class="%s %s"></i> ', this.options.iconsPrefix, this.options.icons.clear),
|
395
|
-
'</button>'
|
396
|
-
|
506
|
+
'</button>'
|
507
|
+
].join('')).appendTo($btnGroup);
|
397
508
|
|
398
509
|
$btnClear.off('click').on('click', $.proxy(this.clearFilterControl, this));
|
399
510
|
}
|
@@ -418,7 +529,7 @@
|
|
418
529
|
BootstrapTable.prototype.initSearch = function () {
|
419
530
|
_initSearch.apply(this, Array.prototype.slice.apply(arguments));
|
420
531
|
|
421
|
-
if (
|
532
|
+
if (this.options.sidePagination === 'server') {
|
422
533
|
return;
|
423
534
|
}
|
424
535
|
|
@@ -431,7 +542,7 @@
|
|
431
542
|
var thisColumn = that.columns[$.fn.bootstrapTable.utils.getFieldIndex(that.columns, key)];
|
432
543
|
var fval = fp[key].toLowerCase();
|
433
544
|
var value = item[key];
|
434
|
-
|
545
|
+
|
435
546
|
// Fix #142: search use formated data
|
436
547
|
if (thisColumn && thisColumn.searchFormatter) {
|
437
548
|
value = $.fn.bootstrapTable.utils.calculateObjectValue(that.header,
|
@@ -445,8 +556,13 @@
|
|
445
556
|
value.toString().toLowerCase() === fval.toString().toLowerCase())) {
|
446
557
|
return false;
|
447
558
|
}
|
448
|
-
}
|
449
|
-
|
559
|
+
} else if (thisColumn.filterStartsWithSearch) {
|
560
|
+
if (!($.inArray(key, that.header.fields) !== -1 &&
|
561
|
+
(typeof value === 'string' || typeof value === 'number') &&
|
562
|
+
(value + '').toLowerCase().indexOf(fval) === 0)) {
|
563
|
+
return false;
|
564
|
+
}
|
565
|
+
} else {
|
450
566
|
if (!($.inArray(key, that.header.fields) !== -1 &&
|
451
567
|
(typeof value === 'string' || typeof value === 'number') &&
|
452
568
|
(value + '').toLowerCase().indexOf(fval) !== -1)) {
|
@@ -458,7 +574,24 @@
|
|
458
574
|
}) : this.data;
|
459
575
|
};
|
460
576
|
|
577
|
+
BootstrapTable.prototype.initColumnSearch = function(filterColumnsDefaults) {
|
578
|
+
copyValues(this);
|
579
|
+
|
580
|
+
if (filterColumnsDefaults) {
|
581
|
+
this.filterColumnsPartial = filterColumnsDefaults;
|
582
|
+
this.updatePagination();
|
583
|
+
|
584
|
+
for (var filter in filterColumnsDefaults) {
|
585
|
+
this.trigger('column-search', filter, filterColumnsDefaults[filter]);
|
586
|
+
}
|
587
|
+
}
|
588
|
+
};
|
589
|
+
|
461
590
|
BootstrapTable.prototype.onColumnSearch = function (event) {
|
591
|
+
if ($.inArray(event.keyCode, [37, 38, 39, 40]) > -1) {
|
592
|
+
return;
|
593
|
+
}
|
594
|
+
|
462
595
|
copyValues(this);
|
463
596
|
var text = $.trim($(event.currentTarget).val());
|
464
597
|
var $field = $(event.currentTarget).closest('[data-field]').data('field');
|
@@ -472,9 +605,15 @@
|
|
472
605
|
delete this.filterColumnsPartial[$field];
|
473
606
|
}
|
474
607
|
|
608
|
+
// if the searchText is the same as the previously selected column value,
|
609
|
+
// bootstrapTable will not try searching again (even though the selected column
|
610
|
+
// may be different from the previous search). As a work around
|
611
|
+
// we're manually appending some text to bootrap's searchText field
|
612
|
+
// to guarantee that it will perform a search again when we call this.onSearch(event)
|
613
|
+
this.searchText += "randomText";
|
614
|
+
|
475
615
|
this.options.pageNumber = 1;
|
476
616
|
this.onSearch(event);
|
477
|
-
this.updatePagination();
|
478
617
|
this.trigger('column-search', $field, text);
|
479
618
|
};
|
480
619
|
|
@@ -500,6 +639,8 @@
|
|
500
639
|
if (controls.length > 0) {
|
501
640
|
this.filterColumnsPartial = {};
|
502
641
|
$(controls[0]).trigger(controls[0].tagName === 'INPUT' ? 'keyup' : 'change');
|
642
|
+
} else {
|
643
|
+
return;
|
503
644
|
}
|
504
645
|
|
505
646
|
if (search.length > 0) {
|
@@ -508,9 +649,11 @@
|
|
508
649
|
|
509
650
|
// use the default sort order if it exists. do nothing if it does not
|
510
651
|
if (that.options.sortName !== table.data('sortName') || that.options.sortOrder !== table.data('sortOrder')) {
|
511
|
-
var sorter =
|
512
|
-
|
513
|
-
|
652
|
+
var sorter = header.find(sprintf('[data-field="%s"]', $(controls[0]).closest('table').data('sortName')));
|
653
|
+
if (sorter.length > 0) {
|
654
|
+
that.onSort(table.data('sortName'), table.data('sortName'));
|
655
|
+
$(sorter).find('.sortable').trigger('click');
|
656
|
+
}
|
514
657
|
}
|
515
658
|
|
516
659
|
// clear cookies once the filters are clean
|
@@ -518,10 +661,12 @@
|
|
518
661
|
timeoutId = setTimeout(function () {
|
519
662
|
if (cookies && cookies.length > 0) {
|
520
663
|
$.each(cookies, function (i, item) {
|
521
|
-
that.deleteCookie
|
664
|
+
if (that.deleteCookie !== undefined) {
|
665
|
+
that.deleteCookie(item);
|
666
|
+
}
|
522
667
|
});
|
523
668
|
}
|
524
669
|
}, that.options.searchTimeOut);
|
525
670
|
}
|
526
671
|
};
|
527
|
-
}(jQuery);
|
672
|
+
})(jQuery);
|