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.
- checksums.yaml +4 -4
- data/README.md +25 -4
- data/lib/bootstrap-table-rails/version.rb +1 -1
- data/vendor/assets/images/icon.png +0 -0
- data/vendor/assets/javascripts/bootstrap-table.js +300 -225
- data/vendor/assets/javascripts/extensions/bootstrap-table-accent-neutralise.js +0 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-angular.js +0 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-auto-refresh.js +84 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-click-edit-row.js +142 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-cookie.js +78 -36
- data/vendor/assets/javascripts/extensions/bootstrap-table-copy-rows.js +0 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-editable.js +0 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-export.js +12 -2
- data/vendor/assets/javascripts/extensions/bootstrap-table-filter-control.js +36 -11
- data/vendor/assets/javascripts/extensions/bootstrap-table-filter.js +0 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-flat-json.js +0 -0
- data/vendor/assets/javascripts/extensions/{bootstrap-table-group-by 2.js → bootstrap-table-group-by-v2.js} +0 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-group-by.js +0 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-i18n-enhance.js +0 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-key-events.js +0 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-mobile.js +0 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-multi-toggle.js +0 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-multiple-search.js +0 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-multiple-selection-row.js +127 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-multiple-sort.js +1 -1
- data/vendor/assets/javascripts/extensions/bootstrap-table-natural-sorting.js +0 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-print.js +133 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-reorder-columns.js +4 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-reorder-rows.js +6 -4
- data/vendor/assets/javascripts/extensions/bootstrap-table-resizable.js +0 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-select2-filter.js +0 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-sticky-header.js +0 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-toolbar.js +2 -2
- data/vendor/assets/javascripts/extensions/bootstrap-table-tree-column.js +130 -0
- data/vendor/assets/javascripts/locale/README.md +179 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-af-ZA.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-ar-SA.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-ca-ES.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-cs-CZ.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-da-DK.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-de-DE.js +10 -4
- data/vendor/assets/javascripts/locale/bootstrap-table-el-GR.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-en-US.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-en-US.js.template +49 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-es-AR.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-es-CL.js +44 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-es-CR.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-es-ES.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-es-MX.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-es-NI.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-es-SP.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-et-EE.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-fa-IR.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-fr-BE.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-fr-FR.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-he-IL.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-hr-HR.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-hu-HU.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-id-ID.js +49 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-it-IT.js +12 -2
- data/vendor/assets/javascripts/locale/bootstrap-table-ja-JP.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-ka-GE.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-ko-KR.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-ms-MY.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-nb-NO.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-nl-NL.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-pl-PL.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-pt-BR.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-pt-PT.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-ro-RO.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-ru-RU.js +33 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-sk-SK.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-sv-SE.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-th-TH.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-tr-TR.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-uk-UA.js +36 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-ur-PK.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-uz-Latn-UZ.js +49 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-vi-VN.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-zh-CN.js +0 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-zh-TW.js +0 -0
- data/vendor/assets/stylesheets/bootstrap-table.css +9 -5
- data/vendor/assets/stylesheets/extensions/bootstrap-table-auto-refresh.css +3 -0
- data/vendor/assets/stylesheets/extensions/bootstrap-table-click-edit-row.css +21 -0
- data/vendor/assets/stylesheets/extensions/bootstrap-table-filter-control.css +13 -0
- data/vendor/assets/stylesheets/extensions/{bootstrap-table-group-by 2.css → bootstrap-table-group-by-v2.css} +0 -0
- data/vendor/assets/stylesheets/extensions/bootstrap-table-group-by.css +0 -0
- data/vendor/assets/stylesheets/extensions/bootstrap-table-multiple-selection-row.css +17 -0
- data/vendor/assets/stylesheets/extensions/bootstrap-table-reorder-rows.css +0 -0
- data/vendor/assets/stylesheets/extensions/bootstrap-table-sticky-header.css +0 -0
- data/vendor/assets/stylesheets/extensions/bootstrap-table-tree-column.css +1 -0
- metadata +20 -4
File without changes
|
File without changes
|
@@ -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.
|
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
|
-
|
68
|
-
|
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
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
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
|
114
|
+
var deleteCookie = function (that, tableName, cookieName) {
|
97
115
|
cookieName = tableName + '.' + cookieName;
|
98
|
-
|
99
|
-
|
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: [
|
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(']', '')
|
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
|
-
|
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(
|
376
|
-
var
|
377
|
-
|
378
|
-
|
379
|
-
cookies.
|
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]
|
432
|
+
deleteCookie(this, this.options.cookieIdTable, cookieIds[cookieName]);
|
391
433
|
};
|
392
434
|
})(jQuery);
|
File without changes
|