bootstrap-table-rails 1.8.2 → 1.8.2.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 +68 -29
- data/bootstrap-table-rails-1.8.2.gem +0 -0
- data/lib/bootstrap-table-rails/version.rb +1 -1
- data/vendor/assets/javascripts/bootstrap-table-all.js +5177 -9
- data/vendor/assets/javascripts/bootstrap-table-locale-all.js +1500 -6
- data/vendor/assets/javascripts/bootstrap-table.js +2506 -8
- data/vendor/assets/javascripts/extensions/bootstrap-table-angular.js +105 -7
- data/vendor/assets/javascripts/extensions/bootstrap-table-cookie.js +318 -7
- data/vendor/assets/javascripts/extensions/bootstrap-table-editable.js +107 -7
- data/vendor/assets/javascripts/extensions/bootstrap-table-export.js +103 -7
- data/vendor/assets/javascripts/extensions/bootstrap-table-filter-control.js +458 -7
- data/vendor/assets/javascripts/extensions/bootstrap-table-filter.js +67 -7
- data/vendor/assets/javascripts/extensions/bootstrap-table-flat-json.js +62 -7
- data/vendor/assets/javascripts/extensions/bootstrap-table-group-by.js +228 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-key-events.js +80 -7
- data/vendor/assets/javascripts/extensions/bootstrap-table-mobile.js +142 -7
- data/vendor/assets/javascripts/extensions/bootstrap-table-multiple-sort.js +378 -7
- data/vendor/assets/javascripts/extensions/bootstrap-table-natural-sorting.js +47 -7
- data/vendor/assets/javascripts/extensions/bootstrap-table-reorder-columns.js +130 -7
- data/vendor/assets/javascripts/extensions/bootstrap-table-reorder-rows.js +115 -7
- data/vendor/assets/javascripts/extensions/bootstrap-table-resizable.js +74 -7
- data/vendor/assets/javascripts/extensions/bootstrap-table-toolbar.js +245 -7
- data/vendor/assets/javascripts/locale/bootstrap-table-ar-SA.js +40 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-ca-ES.js +43 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-cs-CZ.js +44 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-da-DK.js +37 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-de-DE.js +37 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-el-GR.js +28 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-en-US.js +43 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-es-AR.js +31 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-es-CR.js +40 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-es-ES.js +43 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-es-MX.js +32 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-es-NI.js +40 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-es-SP.js +40 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-fa-IR.js +43 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-fr-BE.js +28 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-fr-FR.js +41 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-hr-HR.js +44 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-hu-HU.js +43 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-it-IT.js +37 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-ja-JP.js +40 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-ka-GE.js +40 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-ko-KR.js +37 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-ms-MY.js +40 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-nb-NO.js +37 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-nl-NL.js +28 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-pl-PL.js +37 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-pt-BR.js +41 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-pt-PT.js +28 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-ro-RO.js +43 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-ru-RU.js +36 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-sk-SK.js +37 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-sv-SE.js +37 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-th-TH.js +37 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-tr-TR.js +41 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-uk-UA.js +37 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-ur-PK.js +37 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-vi-VN.js +28 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-zh-CN.js +40 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-zh-TW.js +40 -0
- data/vendor/assets/stylesheets/bootstrap-table.css +297 -1
- data/vendor/assets/stylesheets/extensions/bootstrap-table-group-by.css +53 -0
- metadata +44 -2
@@ -1,7 +1,105 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
1
|
+
// JavaScript source code
|
2
|
+
(function () {
|
3
|
+
if (typeof angular === 'undefined') {
|
4
|
+
return;
|
5
|
+
}
|
6
|
+
angular.module('bsTable', []).directive('bsTableControl', function () {
|
7
|
+
var CONTAINER_SELECTOR = '.bootstrap-table';
|
8
|
+
var SCROLLABLE_SELECTOR = '.fixed-table-body';
|
9
|
+
var SEARCH_SELECTOR = '.search input';
|
10
|
+
var bsTables = {};
|
11
|
+
function getBsTable (el) {
|
12
|
+
var result;
|
13
|
+
$.each(bsTables, function (id, bsTable) {
|
14
|
+
if (!bsTable.$el.closest(CONTAINER_SELECTOR).has(el).length) return;
|
15
|
+
result = bsTable;
|
16
|
+
return true;
|
17
|
+
});
|
18
|
+
return result;
|
19
|
+
}
|
20
|
+
|
21
|
+
$(window).resize(function () {
|
22
|
+
$.each(bsTables, function (id, bsTable) {
|
23
|
+
bsTable.$el.bootstrapTable('resetView');
|
24
|
+
});
|
25
|
+
});
|
26
|
+
function onScroll () {
|
27
|
+
var bsTable = this;
|
28
|
+
var state = bsTable.$s.bsTableControl.state;
|
29
|
+
bsTable.$s.$applyAsync(function () {
|
30
|
+
state.scroll = bsTable.$el.bootstrapTable('getScrollPosition');
|
31
|
+
});
|
32
|
+
}
|
33
|
+
$(document)
|
34
|
+
.on('post-header.bs.table', CONTAINER_SELECTOR+' table', function (evt) { // bootstrap-table calls .off('scroll') in initHeader so reattach here
|
35
|
+
var bsTable = getBsTable(evt.target);
|
36
|
+
if (!bsTable) return;
|
37
|
+
bsTable.$el
|
38
|
+
.closest(CONTAINER_SELECTOR)
|
39
|
+
.find(SCROLLABLE_SELECTOR)
|
40
|
+
.on('scroll', onScroll.bind(bsTable));
|
41
|
+
})
|
42
|
+
.on('sort.bs.table', CONTAINER_SELECTOR+' table', function (evt, sortName, sortOrder) {
|
43
|
+
var bsTable = getBsTable(evt.target);
|
44
|
+
if (!bsTable) return;
|
45
|
+
var state = bsTable.$s.bsTableControl.state;
|
46
|
+
bsTable.$s.$applyAsync(function () {
|
47
|
+
state.sortName = sortName;
|
48
|
+
state.sortOrder = sortOrder;
|
49
|
+
});
|
50
|
+
})
|
51
|
+
.on('page-change.bs.table', CONTAINER_SELECTOR+' table', function (evt, pageNumber, pageSize) {
|
52
|
+
var bsTable = getBsTable(evt.target);
|
53
|
+
if (!bsTable) return;
|
54
|
+
var state = bsTable.$s.bsTableControl.state;
|
55
|
+
bsTable.$s.$applyAsync(function () {
|
56
|
+
state.pageNumber = pageNumber;
|
57
|
+
state.pageSize = pageSize;
|
58
|
+
});
|
59
|
+
})
|
60
|
+
.on('search.bs.table', CONTAINER_SELECTOR+' table', function (evt, searchText) {
|
61
|
+
var bsTable = getBsTable(evt.target);
|
62
|
+
if (!bsTable) return;
|
63
|
+
var state = bsTable.$s.bsTableControl.state;
|
64
|
+
bsTable.$s.$applyAsync(function () {
|
65
|
+
state.searchText = searchText;
|
66
|
+
});
|
67
|
+
})
|
68
|
+
.on('focus blur', CONTAINER_SELECTOR+' '+SEARCH_SELECTOR, function (evt) {
|
69
|
+
var bsTable = getBsTable(evt.target);
|
70
|
+
if (!bsTable) return;
|
71
|
+
var state = bsTable.$s.bsTableControl.state;
|
72
|
+
bsTable.$s.$applyAsync(function () {
|
73
|
+
state.searchHasFocus = $(evt.target).is(':focus');
|
74
|
+
});
|
75
|
+
});
|
76
|
+
|
77
|
+
return {
|
78
|
+
restrict: 'EA',
|
79
|
+
scope: {bsTableControl: '='},
|
80
|
+
link: function ($s, $el) {
|
81
|
+
var bsTable = bsTables[$s.$id] = {$s: $s, $el: $el};
|
82
|
+
$s.instantiated = false;
|
83
|
+
$s.$watch('bsTableControl.options', function (options) {
|
84
|
+
if (!options) options = $s.bsTableControl.options = {};
|
85
|
+
var state = $s.bsTableControl.state || {};
|
86
|
+
|
87
|
+
if ($s.instantiated) $el.bootstrapTable('destroy');
|
88
|
+
$el.bootstrapTable(angular.extend(angular.copy(options), state));
|
89
|
+
$s.instantiated = true;
|
90
|
+
|
91
|
+
// Update the UI for state that isn't settable via options
|
92
|
+
if ('scroll' in state) $el.bootstrapTable('scrollTo', state.scroll);
|
93
|
+
if ('searchHasFocus' in state) $el.closest(CONTAINER_SELECTOR).find(SEARCH_SELECTOR).focus(); // $el gets detached so have to recompute whole chain
|
94
|
+
}, true);
|
95
|
+
$s.$watch('bsTableControl.state', function (state) {
|
96
|
+
if (!state) state = $s.bsTableControl.state = {};
|
97
|
+
$el.trigger('directive-updated.bs.table', [state]);
|
98
|
+
}, true);
|
99
|
+
$s.$on('$destroy', function () {
|
100
|
+
delete bsTables[$s.$id];
|
101
|
+
});
|
102
|
+
}
|
103
|
+
};
|
104
|
+
})
|
105
|
+
})();
|
@@ -1,7 +1,318 @@
|
|
1
|
-
|
2
|
-
*
|
3
|
-
*
|
4
|
-
*
|
5
|
-
*
|
6
|
-
|
7
|
-
|
1
|
+
/**
|
2
|
+
* @author: Dennis Hernández
|
3
|
+
* @webSite: http://djhvscf.github.io/Blog
|
4
|
+
* @version: v1.2.0
|
5
|
+
*
|
6
|
+
* @update zhixin wen <wenzhixin2010@gmail.com>
|
7
|
+
*/
|
8
|
+
|
9
|
+
(function ($) {
|
10
|
+
'use strict';
|
11
|
+
|
12
|
+
var cookieIds = {
|
13
|
+
sortOrder: 'bs.table.sortOrder',
|
14
|
+
sortName: 'bs.table.sortName',
|
15
|
+
pageNumber: 'bs.table.pageNumber',
|
16
|
+
pageList: 'bs.table.pageList',
|
17
|
+
columns: 'bs.table.columns',
|
18
|
+
searchText: 'bs.table.searchText',
|
19
|
+
filterControl: 'bs.table.filterControl'
|
20
|
+
};
|
21
|
+
|
22
|
+
var getCurrentHeader = function (that) {
|
23
|
+
var header = that.$header;
|
24
|
+
if (that.options.height) {
|
25
|
+
header = that.$tableHeader;
|
26
|
+
}
|
27
|
+
|
28
|
+
return header;
|
29
|
+
};
|
30
|
+
|
31
|
+
var getCurrentSearchControls = function (that) {
|
32
|
+
var searchControls = 'select, input';
|
33
|
+
if (that.options.height) {
|
34
|
+
searchControls = 'table select, table input';
|
35
|
+
}
|
36
|
+
|
37
|
+
return searchControls;
|
38
|
+
};
|
39
|
+
|
40
|
+
var cookieEnabled = function () {
|
41
|
+
return !!(navigator.cookieEnabled);
|
42
|
+
};
|
43
|
+
|
44
|
+
var setCookie = function (that, cookieName, cookieValue) {
|
45
|
+
if ((!that.options.cookie) || (!cookieEnabled()) || (that.options.cookieIdTable === '')) {
|
46
|
+
return;
|
47
|
+
}
|
48
|
+
|
49
|
+
if ($.inArray(cookieName.toLowerCase(), that.options.cookiesEnabled) === -1) {
|
50
|
+
return;
|
51
|
+
}
|
52
|
+
|
53
|
+
cookieName = that.options.cookieIdTable + '.' + cookieName;
|
54
|
+
if (!cookieName || /^(?:expires|max\-age|path|domain|secure)$/i.test(cookieName)) {
|
55
|
+
return false;
|
56
|
+
}
|
57
|
+
|
58
|
+
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' : '');
|
59
|
+
return true;
|
60
|
+
};
|
61
|
+
|
62
|
+
var getCookie = function (that, tableName, cookieName) {
|
63
|
+
if (!cookieName) {
|
64
|
+
return null;
|
65
|
+
}
|
66
|
+
|
67
|
+
if ($.inArray(cookieName.toLowerCase(), that.options.cookiesEnabled) === -1) {
|
68
|
+
return null;
|
69
|
+
}
|
70
|
+
|
71
|
+
cookieName = tableName + '.' + cookieName;
|
72
|
+
|
73
|
+
return decodeURIComponent(document.cookie.replace(new RegExp('(?:(?:^|.*;)\\s*' + encodeURIComponent(cookieName).replace(/[\-\.\+\*]/g, '\\$&') + '\\s*\\=\\s*([^;]*).*$)|^.*$'), '$1')) || null;
|
74
|
+
};
|
75
|
+
|
76
|
+
var hasCookie = function (cookieName) {
|
77
|
+
if (!cookieName) {
|
78
|
+
return false;
|
79
|
+
}
|
80
|
+
return (new RegExp('(?:^|;\\s*)' + encodeURIComponent(cookieName).replace(/[\-\.\+\*]/g, '\\$&') + '\\s*\\=')).test(document.cookie);
|
81
|
+
};
|
82
|
+
|
83
|
+
var deleteCookie = function (tableName, cookieName, sPath, sDomain) {
|
84
|
+
cookieName = tableName + '.' + cookieName;
|
85
|
+
if (!hasCookie(cookieName)) {
|
86
|
+
return false;
|
87
|
+
}
|
88
|
+
document.cookie = encodeURIComponent(cookieName) + '=; expires=Thu, 01 Jan 1970 00:00:00 GMT' + (sDomain ? '; domain=' + sDomain : '') + (sPath ? '; path=' + sPath : '');
|
89
|
+
return true;
|
90
|
+
};
|
91
|
+
|
92
|
+
var calculateExpiration = function(cookieExpire) {
|
93
|
+
var time = cookieExpire.replace(/[0-9]*/, ''); //s,mi,h,d,m,y
|
94
|
+
cookieExpire = cookieExpire.replace(/[A-Za-z]/, ''); //number
|
95
|
+
|
96
|
+
switch (time.toLowerCase()) {
|
97
|
+
case 's':
|
98
|
+
cookieExpire = +cookieExpire;
|
99
|
+
break;
|
100
|
+
case 'mi':
|
101
|
+
cookieExpire = cookieExpire * 60;
|
102
|
+
break;
|
103
|
+
case 'h':
|
104
|
+
cookieExpire = cookieExpire * 60 * 60;
|
105
|
+
break;
|
106
|
+
case 'd':
|
107
|
+
cookieExpire = cookieExpire * 24 * 60 * 60;
|
108
|
+
break;
|
109
|
+
case 'm':
|
110
|
+
cookieExpire = cookieExpire * 30 * 24 * 60 * 60;
|
111
|
+
break;
|
112
|
+
case 'y':
|
113
|
+
cookieExpire = cookieExpire * 365 * 30 * 24 * 60 * 60;
|
114
|
+
break;
|
115
|
+
default:
|
116
|
+
cookieExpire = undefined;
|
117
|
+
break;
|
118
|
+
}
|
119
|
+
|
120
|
+
return cookieExpire === undefined ? '' : '; max-age=' + cookieExpire;
|
121
|
+
};
|
122
|
+
|
123
|
+
$.extend($.fn.bootstrapTable.defaults, {
|
124
|
+
cookie: false,
|
125
|
+
cookieExpire: '2h',
|
126
|
+
cookiePath: null,
|
127
|
+
cookieDomain: null,
|
128
|
+
cookieSecure: null,
|
129
|
+
cookieIdTable: '',
|
130
|
+
cookiesEnabled: ['bs.table.sortOrder', 'bs.table.sortName', 'bs.table.pageNumber', 'bs.table.pageList', 'bs.table.columns', 'bs.table.searchText', 'bs.table.filterControl'],
|
131
|
+
//internal variable
|
132
|
+
filterControls: [],
|
133
|
+
filterControlValuesLoaded: false
|
134
|
+
});
|
135
|
+
|
136
|
+
$.fn.bootstrapTable.methods.push('deleteCookie');
|
137
|
+
|
138
|
+
var BootstrapTable = $.fn.bootstrapTable.Constructor,
|
139
|
+
_init = BootstrapTable.prototype.init,
|
140
|
+
_initTable = BootstrapTable.prototype.initTable,
|
141
|
+
_onSort = BootstrapTable.prototype.onSort,
|
142
|
+
_onPageNumber = BootstrapTable.prototype.onPageNumber,
|
143
|
+
_onPageListChange = BootstrapTable.prototype.onPageListChange,
|
144
|
+
_onPageFirst = BootstrapTable.prototype.onPageFirst,
|
145
|
+
_onPagePre = BootstrapTable.prototype.onPagePre,
|
146
|
+
_onPageNext = BootstrapTable.prototype.onPageNext,
|
147
|
+
_onPageLast = BootstrapTable.prototype.onPageLast,
|
148
|
+
_toggleColumn = BootstrapTable.prototype.toggleColumn,
|
149
|
+
_selectPage = BootstrapTable.prototype.selectPage,
|
150
|
+
_onSearch = BootstrapTable.prototype.onSearch;
|
151
|
+
|
152
|
+
BootstrapTable.prototype.init = function () {
|
153
|
+
var timeoutId = 0;
|
154
|
+
this.options.filterControls = [];
|
155
|
+
this.options.filterControlValuesLoaded = false;
|
156
|
+
|
157
|
+
|
158
|
+
this.options.cookiesEnabled = typeof this.options.cookiesEnabled === 'string' ?
|
159
|
+
this.options.cookiesEnabled.replace('[', '').replace(']', '').replace(/ /g, '').toLowerCase().split(',') : this.options.cookiesEnabled;
|
160
|
+
|
161
|
+
if (this.options.filterControl) {
|
162
|
+
var that = this;
|
163
|
+
this.$el.on('column-search.bs.table', function (e, field, text) {
|
164
|
+
var isNewField = true;
|
165
|
+
|
166
|
+
for (var i = 0; i < that.options.filterControls.length; i++) {
|
167
|
+
if (that.options.filterControls[i].field === field) {
|
168
|
+
that.options.filterControls[i].text = text;
|
169
|
+
isNewField = false;
|
170
|
+
break;
|
171
|
+
}
|
172
|
+
}
|
173
|
+
if (isNewField) {
|
174
|
+
that.options.filterControls.push({
|
175
|
+
field: field,
|
176
|
+
text: text
|
177
|
+
});
|
178
|
+
}
|
179
|
+
|
180
|
+
setCookie(that, cookieIds.filterControl, JSON.stringify(that.options.filterControls));
|
181
|
+
}).on('post-body.bs.table', function () {
|
182
|
+
setTimeout(function () {
|
183
|
+
if (!that.options.filterControlValuesLoaded) {
|
184
|
+
that.options.filterControlValuesLoaded = true;
|
185
|
+
var filterControl = JSON.parse(getCookie(that, that.options.cookieIdTable, cookieIds.filterControl));
|
186
|
+
if (filterControl) {
|
187
|
+
var field = null,
|
188
|
+
result = [],
|
189
|
+
header = getCurrentHeader(that),
|
190
|
+
searchControls = getCurrentSearchControls(that);
|
191
|
+
|
192
|
+
header.find(searchControls).each(function (index, ele) {
|
193
|
+
field = $(this).parent().parent().parent().data('field');
|
194
|
+
result = $.grep(filterControl, function (valueObj) {
|
195
|
+
return valueObj.field === field;
|
196
|
+
});
|
197
|
+
|
198
|
+
if (result.length > 0) {
|
199
|
+
$(this).val(result[0].text);
|
200
|
+
that.onColumnSearch({currentTarget: $(this)});
|
201
|
+
}
|
202
|
+
});
|
203
|
+
}
|
204
|
+
}
|
205
|
+
}, 250);
|
206
|
+
});
|
207
|
+
}
|
208
|
+
_init.apply(this, Array.prototype.slice.apply(arguments));
|
209
|
+
};
|
210
|
+
|
211
|
+
BootstrapTable.prototype.initTable = function () {
|
212
|
+
_initTable.apply(this, Array.prototype.slice.apply(arguments));
|
213
|
+
this.initCookie();
|
214
|
+
};
|
215
|
+
|
216
|
+
BootstrapTable.prototype.initCookie = function () {
|
217
|
+
if (!this.options.cookie) {
|
218
|
+
return;
|
219
|
+
}
|
220
|
+
|
221
|
+
if ((this.options.cookieIdTable === '') || (this.options.cookieExpire === '') || (!cookieEnabled())) {
|
222
|
+
throw new Error("Configuration error. Please review the cookieIdTable, cookieExpire properties, if those properties are ok, then this browser does not support the cookies");
|
223
|
+
return;
|
224
|
+
}
|
225
|
+
|
226
|
+
var sortOrderCookie = getCookie(this, this.options.cookieIdTable, cookieIds.sortOrder),
|
227
|
+
sortOrderNameCookie = getCookie(this, this.options.cookieIdTable, cookieIds.sortName),
|
228
|
+
pageNumberCookie = getCookie(this, this.options.cookieIdTable, cookieIds.pageNumber),
|
229
|
+
pageListCookie = getCookie(this, this.options.cookieIdTable, cookieIds.pageList),
|
230
|
+
columnsCookie = JSON.parse(getCookie(this, this.options.cookieIdTable, cookieIds.columns)),
|
231
|
+
searchTextCookie = getCookie(this, this.options.cookieIdTable, cookieIds.searchText);
|
232
|
+
|
233
|
+
//sortOrder
|
234
|
+
this.options.sortOrder = sortOrderCookie ? sortOrderCookie : 'asc';
|
235
|
+
//sortName
|
236
|
+
this.options.sortName = sortOrderNameCookie ? sortOrderNameCookie : undefined;
|
237
|
+
//pageNumber
|
238
|
+
this.options.pageNumber = pageNumberCookie ? +pageNumberCookie : this.options.pageNumber;
|
239
|
+
//pageSize
|
240
|
+
this.options.pageSize = pageListCookie ? pageListCookie === this.options.formatAllRows() ? pageListCookie : +pageListCookie : this.options.pageSize;
|
241
|
+
//searchText
|
242
|
+
this.options.searchText = searchTextCookie ? searchTextCookie : '';
|
243
|
+
|
244
|
+
if (columnsCookie) {
|
245
|
+
$.each(this.columns, function (i, column) {
|
246
|
+
column.visible = columnsCookie.indexOf(column.field) !== -1;
|
247
|
+
});
|
248
|
+
}
|
249
|
+
};
|
250
|
+
|
251
|
+
BootstrapTable.prototype.onSort = function () {
|
252
|
+
_onSort.apply(this, Array.prototype.slice.apply(arguments));
|
253
|
+
setCookie(this, cookieIds.sortOrder, this.options.sortOrder);
|
254
|
+
setCookie(this, cookieIds.sortName, this.options.sortName);
|
255
|
+
};
|
256
|
+
|
257
|
+
BootstrapTable.prototype.onPageNumber = function () {
|
258
|
+
_onPageNumber.apply(this, Array.prototype.slice.apply(arguments));
|
259
|
+
setCookie(this, cookieIds.pageNumber, this.options.pageNumber);
|
260
|
+
};
|
261
|
+
|
262
|
+
BootstrapTable.prototype.onPageListChange = function () {
|
263
|
+
_onPageListChange.apply(this, Array.prototype.slice.apply(arguments));
|
264
|
+
setCookie(this, cookieIds.pageList, this.options.pageSize);
|
265
|
+
};
|
266
|
+
|
267
|
+
BootstrapTable.prototype.onPageFirst = function () {
|
268
|
+
_onPageFirst.apply(this, Array.prototype.slice.apply(arguments));
|
269
|
+
setCookie(this, cookieIds.pageNumber, this.options.pageNumber);
|
270
|
+
};
|
271
|
+
|
272
|
+
BootstrapTable.prototype.onPagePre = function () {
|
273
|
+
_onPagePre.apply(this, Array.prototype.slice.apply(arguments));
|
274
|
+
setCookie(this, cookieIds.pageNumber, this.options.pageNumber);
|
275
|
+
};
|
276
|
+
|
277
|
+
BootstrapTable.prototype.onPageNext = function () {
|
278
|
+
_onPageNext.apply(this, Array.prototype.slice.apply(arguments));
|
279
|
+
setCookie(this, cookieIds.pageNumber, this.options.pageNumber);
|
280
|
+
};
|
281
|
+
|
282
|
+
BootstrapTable.prototype.onPageLast = function () {
|
283
|
+
_onPageLast.apply(this, Array.prototype.slice.apply(arguments));
|
284
|
+
setCookie(this, cookieIds.pageNumber, this.options.pageNumber);
|
285
|
+
};
|
286
|
+
|
287
|
+
BootstrapTable.prototype.toggleColumn = function () {
|
288
|
+
_toggleColumn.apply(this, Array.prototype.slice.apply(arguments));
|
289
|
+
|
290
|
+
var visibleColumns = [];
|
291
|
+
|
292
|
+
$.each(this.columns, function (i, column) {
|
293
|
+
if (column.visible) {
|
294
|
+
visibleColumns.push(column.field);
|
295
|
+
}
|
296
|
+
});
|
297
|
+
|
298
|
+
setCookie(this, cookieIds.columns, JSON.stringify(visibleColumns));
|
299
|
+
};
|
300
|
+
|
301
|
+
BootstrapTable.prototype.selectPage = function (page) {
|
302
|
+
_selectPage.apply(this, Array.prototype.slice.apply(arguments));
|
303
|
+
setCookie(this, idsStateSaveList.pageNumber, page);
|
304
|
+
};
|
305
|
+
|
306
|
+
BootstrapTable.prototype.onSearch = function () {
|
307
|
+
_onSearch.apply(this, Array.prototype.slice.apply(arguments));
|
308
|
+
setCookie(this, cookieIds.searchText, this.searchText);
|
309
|
+
};
|
310
|
+
|
311
|
+
BootstrapTable.prototype.deleteCookie = function (cookieName) {
|
312
|
+
if ((cookieName === '') || (!cookieEnabled())) {
|
313
|
+
return;
|
314
|
+
}
|
315
|
+
|
316
|
+
deleteCookie(this.options.cookieIdTable, cookieIds[cookieName], this.options.cookiePath, this.options.cookieDomain);
|
317
|
+
};
|
318
|
+
})(jQuery);
|
@@ -1,7 +1,107 @@
|
|
1
|
-
|
2
|
-
*
|
3
|
-
* https://github.com/
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
1
|
+
/**
|
2
|
+
* @author zhixin wen <wenzhixin2010@gmail.com>
|
3
|
+
* extensions: https://github.com/vitalets/x-editable
|
4
|
+
*/
|
5
|
+
|
6
|
+
!function ($) {
|
7
|
+
|
8
|
+
'use strict';
|
9
|
+
|
10
|
+
$.extend($.fn.bootstrapTable.defaults, {
|
11
|
+
editable: true,
|
12
|
+
onEditableInit: function () {
|
13
|
+
return false;
|
14
|
+
},
|
15
|
+
onEditableSave: function (field, row, oldValue, $el) {
|
16
|
+
return false;
|
17
|
+
},
|
18
|
+
onEditableShown: function (field, row, $el, editable) {
|
19
|
+
return false;
|
20
|
+
},
|
21
|
+
onEditableHidden: function (field, row, $el) {
|
22
|
+
return false;
|
23
|
+
}
|
24
|
+
});
|
25
|
+
|
26
|
+
$.extend($.fn.bootstrapTable.Constructor.EVENTS, {
|
27
|
+
'editable-init.bs.table': 'onEditableInit',
|
28
|
+
'editable-save.bs.table': 'onEditableSave',
|
29
|
+
'editable-shown.bs.table': 'onEditableShown',
|
30
|
+
'editable-hidden.bs.table': 'onEditableHidden'
|
31
|
+
});
|
32
|
+
|
33
|
+
var BootstrapTable = $.fn.bootstrapTable.Constructor,
|
34
|
+
_initTable = BootstrapTable.prototype.initTable,
|
35
|
+
_initBody = BootstrapTable.prototype.initBody;
|
36
|
+
|
37
|
+
BootstrapTable.prototype.initTable = function () {
|
38
|
+
var that = this;
|
39
|
+
_initTable.apply(this, Array.prototype.slice.apply(arguments));
|
40
|
+
|
41
|
+
if (!this.options.editable) {
|
42
|
+
return;
|
43
|
+
}
|
44
|
+
|
45
|
+
$.each(this.columns, function (i, column) {
|
46
|
+
if (!column.editable) {
|
47
|
+
return;
|
48
|
+
}
|
49
|
+
|
50
|
+
var _formatter = column.formatter;
|
51
|
+
column.formatter = function (value, row, index) {
|
52
|
+
var result = _formatter ? _formatter(value, row, index) : value;
|
53
|
+
|
54
|
+
return ['<a href="javascript:void(0)"',
|
55
|
+
' data-name="' + column.field + '"',
|
56
|
+
' data-pk="' + row[that.options.idField] + '"',
|
57
|
+
' data-value="' + result + '"',
|
58
|
+
'>' + '</a>'
|
59
|
+
].join('');
|
60
|
+
};
|
61
|
+
});
|
62
|
+
};
|
63
|
+
|
64
|
+
BootstrapTable.prototype.initBody = function () {
|
65
|
+
var that = this;
|
66
|
+
_initBody.apply(this, Array.prototype.slice.apply(arguments));
|
67
|
+
|
68
|
+
if (!this.options.editable) {
|
69
|
+
return;
|
70
|
+
}
|
71
|
+
|
72
|
+
$.each(this.columns, function (i, column) {
|
73
|
+
if (!column.editable) {
|
74
|
+
return;
|
75
|
+
}
|
76
|
+
|
77
|
+
that.$body.find('a[data-name="' + column.field + '"]').editable(column.editable)
|
78
|
+
.off('save').on('save', function (e, params) {
|
79
|
+
var data = that.getData(),
|
80
|
+
index = $(this).parents('tr[data-index]').data('index'),
|
81
|
+
row = data[index],
|
82
|
+
oldValue = row[column.field];
|
83
|
+
|
84
|
+
row[column.field] = params.submitValue;
|
85
|
+
that.trigger('editable-save', column.field, row, oldValue, $(this));
|
86
|
+
});
|
87
|
+
that.$body.find('a[data-name="' + column.field + '"]').editable(column.editable)
|
88
|
+
.off('shown').on('shown', function (e) {
|
89
|
+
var data = that.getData(),
|
90
|
+
index = $(this).parents('tr[data-index]').data('index'),
|
91
|
+
row = data[index];
|
92
|
+
|
93
|
+
that.trigger('editable-shown', column.field, row, $(this));
|
94
|
+
});
|
95
|
+
that.$body.find('a[data-name="' + column.field + '"]').editable(column.editable)
|
96
|
+
.off('hidden').on('hidden', function (e, editable) {
|
97
|
+
var data = that.getData(),
|
98
|
+
index = $(this).parents('tr[data-index]').data('index'),
|
99
|
+
row = data[index];
|
100
|
+
|
101
|
+
that.trigger('editable-hidden', column.field, row, $(this), editable);
|
102
|
+
});
|
103
|
+
});
|
104
|
+
this.trigger('editable-init');
|
105
|
+
};
|
106
|
+
|
107
|
+
}(jQuery);
|