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.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +68 -29
  3. data/bootstrap-table-rails-1.8.2.gem +0 -0
  4. data/lib/bootstrap-table-rails/version.rb +1 -1
  5. data/vendor/assets/javascripts/bootstrap-table-all.js +5177 -9
  6. data/vendor/assets/javascripts/bootstrap-table-locale-all.js +1500 -6
  7. data/vendor/assets/javascripts/bootstrap-table.js +2506 -8
  8. data/vendor/assets/javascripts/extensions/bootstrap-table-angular.js +105 -7
  9. data/vendor/assets/javascripts/extensions/bootstrap-table-cookie.js +318 -7
  10. data/vendor/assets/javascripts/extensions/bootstrap-table-editable.js +107 -7
  11. data/vendor/assets/javascripts/extensions/bootstrap-table-export.js +103 -7
  12. data/vendor/assets/javascripts/extensions/bootstrap-table-filter-control.js +458 -7
  13. data/vendor/assets/javascripts/extensions/bootstrap-table-filter.js +67 -7
  14. data/vendor/assets/javascripts/extensions/bootstrap-table-flat-json.js +62 -7
  15. data/vendor/assets/javascripts/extensions/bootstrap-table-group-by.js +228 -0
  16. data/vendor/assets/javascripts/extensions/bootstrap-table-key-events.js +80 -7
  17. data/vendor/assets/javascripts/extensions/bootstrap-table-mobile.js +142 -7
  18. data/vendor/assets/javascripts/extensions/bootstrap-table-multiple-sort.js +378 -7
  19. data/vendor/assets/javascripts/extensions/bootstrap-table-natural-sorting.js +47 -7
  20. data/vendor/assets/javascripts/extensions/bootstrap-table-reorder-columns.js +130 -7
  21. data/vendor/assets/javascripts/extensions/bootstrap-table-reorder-rows.js +115 -7
  22. data/vendor/assets/javascripts/extensions/bootstrap-table-resizable.js +74 -7
  23. data/vendor/assets/javascripts/extensions/bootstrap-table-toolbar.js +245 -7
  24. data/vendor/assets/javascripts/locale/bootstrap-table-ar-SA.js +40 -0
  25. data/vendor/assets/javascripts/locale/bootstrap-table-ca-ES.js +43 -0
  26. data/vendor/assets/javascripts/locale/bootstrap-table-cs-CZ.js +44 -0
  27. data/vendor/assets/javascripts/locale/bootstrap-table-da-DK.js +37 -0
  28. data/vendor/assets/javascripts/locale/bootstrap-table-de-DE.js +37 -0
  29. data/vendor/assets/javascripts/locale/bootstrap-table-el-GR.js +28 -0
  30. data/vendor/assets/javascripts/locale/bootstrap-table-en-US.js +43 -0
  31. data/vendor/assets/javascripts/locale/bootstrap-table-es-AR.js +31 -0
  32. data/vendor/assets/javascripts/locale/bootstrap-table-es-CR.js +40 -0
  33. data/vendor/assets/javascripts/locale/bootstrap-table-es-ES.js +43 -0
  34. data/vendor/assets/javascripts/locale/bootstrap-table-es-MX.js +32 -0
  35. data/vendor/assets/javascripts/locale/bootstrap-table-es-NI.js +40 -0
  36. data/vendor/assets/javascripts/locale/bootstrap-table-es-SP.js +40 -0
  37. data/vendor/assets/javascripts/locale/bootstrap-table-fa-IR.js +43 -0
  38. data/vendor/assets/javascripts/locale/bootstrap-table-fr-BE.js +28 -0
  39. data/vendor/assets/javascripts/locale/bootstrap-table-fr-FR.js +41 -0
  40. data/vendor/assets/javascripts/locale/bootstrap-table-hr-HR.js +44 -0
  41. data/vendor/assets/javascripts/locale/bootstrap-table-hu-HU.js +43 -0
  42. data/vendor/assets/javascripts/locale/bootstrap-table-it-IT.js +37 -0
  43. data/vendor/assets/javascripts/locale/bootstrap-table-ja-JP.js +40 -0
  44. data/vendor/assets/javascripts/locale/bootstrap-table-ka-GE.js +40 -0
  45. data/vendor/assets/javascripts/locale/bootstrap-table-ko-KR.js +37 -0
  46. data/vendor/assets/javascripts/locale/bootstrap-table-ms-MY.js +40 -0
  47. data/vendor/assets/javascripts/locale/bootstrap-table-nb-NO.js +37 -0
  48. data/vendor/assets/javascripts/locale/bootstrap-table-nl-NL.js +28 -0
  49. data/vendor/assets/javascripts/locale/bootstrap-table-pl-PL.js +37 -0
  50. data/vendor/assets/javascripts/locale/bootstrap-table-pt-BR.js +41 -0
  51. data/vendor/assets/javascripts/locale/bootstrap-table-pt-PT.js +28 -0
  52. data/vendor/assets/javascripts/locale/bootstrap-table-ro-RO.js +43 -0
  53. data/vendor/assets/javascripts/locale/bootstrap-table-ru-RU.js +36 -0
  54. data/vendor/assets/javascripts/locale/bootstrap-table-sk-SK.js +37 -0
  55. data/vendor/assets/javascripts/locale/bootstrap-table-sv-SE.js +37 -0
  56. data/vendor/assets/javascripts/locale/bootstrap-table-th-TH.js +37 -0
  57. data/vendor/assets/javascripts/locale/bootstrap-table-tr-TR.js +41 -0
  58. data/vendor/assets/javascripts/locale/bootstrap-table-uk-UA.js +37 -0
  59. data/vendor/assets/javascripts/locale/bootstrap-table-ur-PK.js +37 -0
  60. data/vendor/assets/javascripts/locale/bootstrap-table-vi-VN.js +28 -0
  61. data/vendor/assets/javascripts/locale/bootstrap-table-zh-CN.js +40 -0
  62. data/vendor/assets/javascripts/locale/bootstrap-table-zh-TW.js +40 -0
  63. data/vendor/assets/stylesheets/bootstrap-table.css +297 -1
  64. data/vendor/assets/stylesheets/extensions/bootstrap-table-group-by.css +53 -0
  65. metadata +44 -2
@@ -1,7 +1,105 @@
1
- /*
2
- * bootstrap-table - v1.8.1 - 2015-07-05
3
- * https://github.com/wenzhixin/bootstrap-table
4
- * Copyright (c) 2015 zhixin wen
5
- * Licensed MIT License
6
- */
7
- !function(){angular.module("bsTable",[]).directive("bsTableControl",function(){function a(a){var b;return $.each(f,function(d,e){return e.$el.closest(c).has(a).length?(b=e,!0):void 0}),b}function b(){var a=this,b=a.$s.bsTableControl.state;a.$s.$applyAsync(function(){b.scroll=a.$el.bootstrapTable("getScrollPosition")})}var c=".bootstrap-table",d=".fixed-table-body",e=".search input",f={};return $(window).resize(function(){$.each(f,function(a,b){b.$el.bootstrapTable("resetView")})}),$(document).on("post-header.bs.table",c+" table",function(e){var f=a(e.target);f&&f.$el.closest(c).find(d).on("scroll",b.bind(f))}).on("sort.bs.table",c+" table",function(b,c,d){var e=a(b.target);if(e){var f=e.$s.bsTableControl.state;e.$s.$applyAsync(function(){f.sortName=c,f.sortOrder=d})}}).on("page-change.bs.table",c+" table",function(b,c,d){var e=a(b.target);if(e){var f=e.$s.bsTableControl.state;e.$s.$applyAsync(function(){f.pageNumber=c,f.pageSize=d})}}).on("search.bs.table",c+" table",function(b,c){var d=a(b.target);if(d){var e=d.$s.bsTableControl.state;d.$s.$applyAsync(function(){e.searchText=c})}}).on("focus blur",c+" "+e,function(b){var c=a(b.target);if(c){var d=c.$s.bsTableControl.state;c.$s.$applyAsync(function(){d.searchHasFocus=$(b.target).is(":focus")})}}),{restrict:"EA",scope:{bsTableControl:"="},link:function(a,b){f[a.$id]={$s:a,$el:b};a.instantiated=!1,a.$watch("bsTableControl.options",function(d){d||(d=a.bsTableControl.options={});var f=a.bsTableControl.state||{};a.instantiated&&b.bootstrapTable("destroy"),b.bootstrapTable(angular.extend(angular.copy(d),f)),a.instantiated=!0,"scroll"in f&&b.bootstrapTable("scrollTo",f.scroll),"searchHasFocus"in f&&b.closest(c).find(e).focus()},!0),a.$watch("bsTableControl.state",function(c){c||(c=a.bsTableControl.state={}),b.trigger("directive-updated.bs.table",[c])},!0),a.$on("$destroy",function(){delete f[a.$id]})}}})}();
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
- * bootstrap-table - v1.8.1 - 2015-05-29
3
- * https://github.com/wenzhixin/bootstrap-table
4
- * Copyright (c) 2015 zhixin wen
5
- * Licensed MIT License
6
- */
7
- !function(a){"use strict";var b={sortOrder:"bs.table.sortOrder",sortName:"bs.table.sortName",pageNumber:"bs.table.pageNumber",pageList:"bs.table.pageList",columns:"bs.table.columns",searchText:"bs.table.searchText"},c=function(){return navigator.cookieEnabled?!0:!1},d=function(a,b,d,e,f,g){if(a.options.stateSave&&c()&&""!==a.options.stateSaveIdTable){var i=a.options.stateSaveIdTable,j=a.options.stateSaveExpire;return b=i+"."+b,!b||/^(?:expires|max\-age|path|domain|secure)$/i.test(b)?!1:(document.cookie=encodeURIComponent(b)+"="+encodeURIComponent(d)+h(j)+(f?"; domain="+f:"")+(e?"; path="+e:"")+(g?"; secure":""),!0)}},e=function(a,b){return b=a+"."+b,b?decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*"+encodeURIComponent(b).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*([^;]*).*$)|^.*$"),"$1"))||null:null},f=function(a){return a?new RegExp("(?:^|;\\s*)"+encodeURIComponent(a).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=").test(document.cookie):!1},g=function(a,b,c,d){return b=a+"."+b,f(b)?(document.cookie=encodeURIComponent(b)+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT"+(d?"; domain="+d:"")+(c?"; path="+c:""),!0):!1},h=function(a){var b=a.replace(/[0-9]/,"");table(a=a.replace(/[A-Za-z]/,""),b.toLowerCase()){case"s":a=+a;break;case"mi":a=60*a;break;case"h":a=60*a*60;break;case"d":a=24*a*60*60;break;case"m":a=30*a*24*60*60;break;case"y":a=365*a*30*24*60*60;break;default:a=void 0}return void 0===a?"":"; max-age="+a};a.extend(a.fn.bootstrapTable.defaults,{stateSave:!1,stateSaveExpire:"2h",stateSaveIdTable:""}),a.fn.bootstrapTable.methods.push("deleteCookie");var i=a.fn.bootstrapTable.Constructor,j=i.prototype.initTable,k=i.prototype.onSort,l=i.prototype.onPageNumber,m=i.prototype.onPageListChange,n=i.prototype.onPageFirst,o=i.prototype.onPagePre,p=i.prototype.onPageNext,q=i.prototype.onPageLast,r=i.prototype.toggleColumn,s=i.prototype.onSearch;i.prototype.initTable=function(){j.apply(this,Array.prototype.slice.apply(arguments)),this.initStateSave()},i.prototype.initStateSave=function(){if(this.options.stateSave&&c()&&""!==this.options.stateSaveIdTable){var d=e(this.options.stateSaveIdTable,b.sortOrder),f=e(this.options.stateSaveIdTable,b.sortName),g=e(this.options.stateSaveIdTable,b.pageNumber),h=e(this.options.stateSaveIdTable,b.pageList),i=JSON.parse(e(this.options.stateSaveIdTable,b.columns)),j=e(this.options.stateSaveIdTable,b.searchText);d&&(this.options.sortOrder=d,this.options.sortName=f),g&&(this.options.pageNumber=+g),h&&(this.options.pageSize=h===this.options.formatAllRows()?h:+h),i&&a.each(this.options.columns,function(a,b){b.visible=-1!==i.indexOf(a)}),j&&(this.options.searchText=j)}},i.prototype.onSort=function(){k.apply(this,Array.prototype.slice.apply(arguments)),d(this,b.sortOrder,this.options.sortOrder),d(this,b.sortName,this.options.sortName)},i.prototype.onPageNumber=function(){l.apply(this,Array.prototype.slice.apply(arguments)),d(this,b.pageNumber,this.options.pageNumber)},i.prototype.onPageListChange=function(){m.apply(this,Array.prototype.slice.apply(arguments)),d(this,b.pageList,this.options.pageSize)},i.prototype.onPageFirst=function(){n.apply(this,Array.prototype.slice.apply(arguments)),d(this,b.pageNumber,this.options.pageNumber)},i.prototype.onPagePre=function(){o.apply(this,Array.prototype.slice.apply(arguments)),d(this,b.pageNumber,this.options.pageNumber)},i.prototype.onPageNext=function(){p.apply(this,Array.prototype.slice.apply(arguments)),d(this,b.pageNumber,this.options.pageNumber)},i.prototype.onPageLast=function(){q.apply(this,Array.prototype.slice.apply(arguments)),d(this,b.pageNumber,this.options.pageNumber)},i.prototype.toggleColumn=function(){r.apply(this,Array.prototype.slice.apply(arguments));var c=[];a.each(this.options.columns,function(a){this.visible&&c.push(a)}),d(this,b.columns,JSON.stringify(c))},i.prototype.onSearch=function(){s.apply(this,Array.prototype.slice.apply(arguments)),d(this,b.searchText,this.searchText)},i.prototype.deleteCookie=function(a){""!==a&&c()&&g(b[a])}}(jQuery);
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
- * bootstrap-table - v1.8.1 - 2015-05-29
3
- * https://github.com/wenzhixin/bootstrap-table
4
- * Copyright (c) 2015 zhixin wen
5
- * Licensed MIT License
6
- */
7
- !function(a){"use strict";a.extend(a.fn.bootstrapTable.defaults,{editable:!0,onEditableInit:function(){return!1},onEditableSave:function(){return!1}}),a.extend(a.fn.bootstrapTable.Constructor.EVENTS,{"editable-init.bs.table":"onEditableInit","editable-save.bs.table":"onEditableSave"});var b=a.fn.bootstrapTable.Constructor,c=b.prototype.initTable,d=b.prototype.initBody;b.prototype.initTable=function(){var b=this;c.apply(this,Array.prototype.slice.apply(arguments)),this.options.editable&&a.each(this.options.columns,function(a,c){if(c.editable){var d=c.formatter;c.formatter=function(a,e,f){var g=d?d(a,e,f):a;return['<a href="javascript:void(0)"',' data-name="'+c.field+'"',' data-pk="'+e[b.options.idField]+'"',' data-value="'+g+'"',"></a>"].join("")}}})},b.prototype.initBody=function(){var b=this;d.apply(this,Array.prototype.slice.apply(arguments)),this.options.editable&&(a.each(this.options.columns,function(c,d){d.editable&&b.$body.find('a[data-name="'+d.field+'"]').editable(d.editable).off("save").on("save",function(c,e){var f=b.getData(),g=a(this).parents("tr[data-index]").data("index"),h=f[g],i=h[d.field];h[d.field]=e.submitValue,b.trigger("editable-save",d.field,h,i,a(this))})}),this.trigger("editable-init"))}}(jQuery);
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);