bootstrap-table-rails 1.9.1 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +5 -1
- data/lib/bootstrap-table-rails/version.rb +1 -1
- data/vendor/assets/javascripts/bootstrap-table-locale-all.js +30 -10
- data/vendor/assets/javascripts/bootstrap-table.js +157 -53
- data/vendor/assets/javascripts/extensions/bootstrap-table-cookie.js +8 -4
- data/vendor/assets/javascripts/extensions/bootstrap-table-editable.js +21 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-export.js +9 -2
- data/vendor/assets/javascripts/extensions/bootstrap-table-filter-control.js +127 -46
- data/vendor/assets/javascripts/extensions/bootstrap-table-group-by 2.js +226 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-mobile.js +5 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-natural-sorting.js +12 -2
- data/vendor/assets/javascripts/extensions/bootstrap-table-reorder-rows.js +1 -0
- data/vendor/assets/javascripts/extensions/bootstrap-table-sticky-header.js +104 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-ca-ES.js +7 -6
- data/vendor/assets/javascripts/locale/bootstrap-table-en-US.js +2 -2
- data/vendor/assets/javascripts/locale/bootstrap-table-nl-NL.js +16 -1
- data/vendor/assets/javascripts/locale/bootstrap-table-ru-RU.js +3 -0
- data/vendor/assets/javascripts/locale/bootstrap-table-zh-TW.js +2 -2
- data/vendor/assets/stylesheets/bootstrap-table.css +7 -2
- data/vendor/assets/stylesheets/extensions/bootstrap-table-group-by 2.css +7 -0
- data/vendor/assets/stylesheets/extensions/bootstrap-table-sticky-header.css +22 -0
- metadata +6 -2
@@ -98,6 +98,11 @@
|
|
98
98
|
return;
|
99
99
|
}
|
100
100
|
|
101
|
+
if (this.options.minWidth < 100 && this.options.resizable) {
|
102
|
+
console.log("The minWidth when the resizable extension is active should be greater or equal than 100");
|
103
|
+
this.options.minWidth = 100;
|
104
|
+
}
|
105
|
+
|
101
106
|
var that = this,
|
102
107
|
old = {
|
103
108
|
width: $(window).width(),
|
@@ -2,10 +2,11 @@
|
|
2
2
|
* @author: Brian Huisman
|
3
3
|
* @webSite: http://www.greywyvern.com
|
4
4
|
* @version: v1.0.0
|
5
|
-
* JS
|
6
|
-
*
|
5
|
+
* JS functions to allow natural sorting on bootstrap-table columns
|
6
|
+
* add data-sorter="alphanum" or data-sorter="numericOnly" to any th
|
7
7
|
*
|
8
8
|
* @update Dennis Hernández <http://djhvscf.github.io/Blog>
|
9
|
+
* @update Duane May
|
9
10
|
*/
|
10
11
|
|
11
12
|
function alphanum(a, b) {
|
@@ -44,4 +45,13 @@ function alphanum(a, b) {
|
|
44
45
|
}
|
45
46
|
}
|
46
47
|
return aa.length - bb.length;
|
48
|
+
}
|
49
|
+
|
50
|
+
function numericOnly(a, b) {
|
51
|
+
function stripNonNumber(s) {
|
52
|
+
s = s.replace(new RegExp(/[^0-9]/g), "");
|
53
|
+
return parseInt(s, 10);
|
54
|
+
}
|
55
|
+
|
56
|
+
return stripNonNumber(a) - stripNonNumber(b);
|
47
57
|
}
|
@@ -0,0 +1,104 @@
|
|
1
|
+
/**
|
2
|
+
* @author vincent loh <vincent.ml@gmail.com>
|
3
|
+
* @version: v1.0.0
|
4
|
+
* https://github.com/vinzloh/bootstrap-table/
|
5
|
+
* Sticky header for bootstrap-table
|
6
|
+
*/
|
7
|
+
|
8
|
+
(function ($) {
|
9
|
+
'use strict';
|
10
|
+
|
11
|
+
var sprintf = $.fn.bootstrapTable.utils.sprintf;
|
12
|
+
$.extend($.fn.bootstrapTable.defaults, {
|
13
|
+
stickyHeader: false
|
14
|
+
});
|
15
|
+
|
16
|
+
var BootstrapTable = $.fn.bootstrapTable.Constructor,
|
17
|
+
_initHeader = BootstrapTable.prototype.initHeader;
|
18
|
+
|
19
|
+
BootstrapTable.prototype.initHeader = function () {
|
20
|
+
var that = this;
|
21
|
+
_initHeader.apply(this, Array.prototype.slice.apply(arguments));
|
22
|
+
|
23
|
+
if (!this.options.stickyHeader) return;
|
24
|
+
|
25
|
+
var table = this.$tableBody.find('table');
|
26
|
+
var table_id = table.attr('id');
|
27
|
+
var header_id = table.attr('id') + '-sticky-header';
|
28
|
+
var sticky_header_container_id = header_id +'-sticky-header-container';
|
29
|
+
var anchor_begin_id = header_id +'_sticky_anchor_begin';
|
30
|
+
var anchor_end_id = header_id +'_sticky_anchor_end';
|
31
|
+
// add begin and end anchors to track table position
|
32
|
+
|
33
|
+
table.before(sprintf('<div id="%s" class="hidden"></div>', sticky_header_container_id));
|
34
|
+
table.before(sprintf('<div id="%s"></div>', anchor_begin_id));
|
35
|
+
table.after(sprintf('<div id="%s"></div>', anchor_end_id));
|
36
|
+
|
37
|
+
table.find('thead').attr('id', header_id);
|
38
|
+
|
39
|
+
// clone header just once, to be used as sticky header
|
40
|
+
// deep clone header. using source header affects tbody>td width
|
41
|
+
this.$stickyHeader = $($('#'+header_id).clone());
|
42
|
+
// avoid id conflict
|
43
|
+
this.$stickyHeader.removeAttr('id');
|
44
|
+
|
45
|
+
// render sticky on window scroll or resize
|
46
|
+
$(window).on('resize.'+table_id, table, render_sticky_header);
|
47
|
+
$(window).on('scroll.'+table_id, table, render_sticky_header);
|
48
|
+
// render sticky when table scroll left-right
|
49
|
+
table.closest('.fixed-table-container').find('.fixed-table-body').on('scroll.'+table_id, table, match_position_x);
|
50
|
+
|
51
|
+
function render_sticky_header(event){
|
52
|
+
var table = event.data;
|
53
|
+
var table_header_id = table.find('thead').attr('id');
|
54
|
+
// console.log('render_sticky_header for > '+table_header_id);
|
55
|
+
if (table.length < 1 || $('#'+table_id).length < 1){
|
56
|
+
// turn off window listeners
|
57
|
+
$(window).off('resize.'+table_id);
|
58
|
+
$(window).off('scroll.'+table_id);
|
59
|
+
table.closest('.fixed-table-container').find('.fixed-table-body').off('scroll.'+table_id);
|
60
|
+
return;
|
61
|
+
}
|
62
|
+
// get header height
|
63
|
+
var header_height = '0';
|
64
|
+
if (that.options.stickyHeaderOffsetY) header_height = that.options.stickyHeaderOffsetY.replace('px','');
|
65
|
+
// window scroll top
|
66
|
+
var t = $(window).scrollTop();
|
67
|
+
// top anchor scroll position, minus header height
|
68
|
+
var e = $("#"+anchor_begin_id).offset().top - header_height;
|
69
|
+
// bottom anchor scroll position, minus header height, minus sticky height
|
70
|
+
var e_end = $("#"+anchor_end_id).offset().top - header_height - $('#'+table_header_id).css('height').replace('px','');
|
71
|
+
// show sticky when top anchor touches header, and when bottom anchor not exceeded
|
72
|
+
if (t > e && t <= e_end) {
|
73
|
+
// ensure clone and source column widths are the same
|
74
|
+
$.each( that.$stickyHeader.find('tr').eq(0).find('th'), function (index, item) {
|
75
|
+
$(item).css('min-width', $('#'+table_header_id+' tr').eq(0).find('th').eq(index).css('width'));
|
76
|
+
});
|
77
|
+
// match bootstrap table style
|
78
|
+
$("#"+sticky_header_container_id).removeClass('hidden').addClass("fix-sticky fixed-table-container") ;
|
79
|
+
// stick it in position
|
80
|
+
$("#"+sticky_header_container_id).css('top', header_height + 'px');
|
81
|
+
// create scrollable container for header
|
82
|
+
var scrollable_div = $('<div style="position:absolute;width:100%;overflow-x:hidden;" />');
|
83
|
+
// append cloned header to dom
|
84
|
+
$("#"+sticky_header_container_id).html(scrollable_div.append(that.$stickyHeader));
|
85
|
+
// match clone and source header positions when left-right scroll
|
86
|
+
match_position_x(event);
|
87
|
+
} else {
|
88
|
+
// hide sticky
|
89
|
+
$("#"+sticky_header_container_id).removeClass("fix-sticky").addClass('hidden');
|
90
|
+
}
|
91
|
+
|
92
|
+
}
|
93
|
+
function match_position_x(event){
|
94
|
+
var table = event.data;
|
95
|
+
var table_header_id = table.find('thead').attr('id');
|
96
|
+
// match clone and source header positions when left-right scroll
|
97
|
+
$("#"+sticky_header_container_id).css(
|
98
|
+
'width', +table.closest('.fixed-table-body').css('width').replace('px', '') + 1
|
99
|
+
);
|
100
|
+
$("#"+sticky_header_container_id+" thead").parent().scrollLeft(Math.abs($('#'+table_header_id).position().left));
|
101
|
+
}
|
102
|
+
};
|
103
|
+
|
104
|
+
})(jQuery);
|
@@ -1,13 +1,14 @@
|
|
1
1
|
/**
|
2
2
|
* Bootstrap Table Catalan translation
|
3
|
-
*
|
3
|
+
* Authors: Marc Pina<iwalkalone69@gmail.com>
|
4
|
+
* Claudi Martinez<claudix.kernel@gmail.com>
|
4
5
|
*/
|
5
6
|
(function ($) {
|
6
7
|
'use strict';
|
7
8
|
|
8
9
|
$.fn.bootstrapTable.locales['ca-ES'] = {
|
9
10
|
formatLoadingMessage: function () {
|
10
|
-
return '
|
11
|
+
return 'Espereu, si us plau...';
|
11
12
|
},
|
12
13
|
formatRecordsPerPage: function (pageNumber) {
|
13
14
|
return pageNumber + ' resultats per pàgina';
|
@@ -16,19 +17,19 @@
|
|
16
17
|
return 'Mostrant de ' + pageFrom + ' fins ' + pageTo + ' - total ' + totalRows + ' resultats';
|
17
18
|
},
|
18
19
|
formatSearch: function () {
|
19
|
-
return '
|
20
|
+
return 'Cerca';
|
20
21
|
},
|
21
22
|
formatNoMatches: function () {
|
22
23
|
return 'No s\'han trobat resultats';
|
23
24
|
},
|
24
25
|
formatPaginationSwitch: function () {
|
25
|
-
return '
|
26
|
+
return 'Amaga/Mostra paginació';
|
26
27
|
},
|
27
28
|
formatRefresh: function () {
|
28
|
-
return '
|
29
|
+
return 'Refresca';
|
29
30
|
},
|
30
31
|
formatToggle: function () {
|
31
|
-
return '
|
32
|
+
return 'Alterna formatació';
|
32
33
|
},
|
33
34
|
formatColumns: function () {
|
34
35
|
return 'Columnes';
|
@@ -10,7 +10,7 @@
|
|
10
10
|
return 'Loading, please wait...';
|
11
11
|
},
|
12
12
|
formatRecordsPerPage: function (pageNumber) {
|
13
|
-
return pageNumber + '
|
13
|
+
return pageNumber + ' rows per page';
|
14
14
|
},
|
15
15
|
formatShowingRows: function (pageFrom, pageTo, totalRows) {
|
16
16
|
return 'Showing ' + pageFrom + ' to ' + pageTo + ' of ' + totalRows + ' rows';
|
@@ -40,4 +40,4 @@
|
|
40
40
|
|
41
41
|
$.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['en-US']);
|
42
42
|
|
43
|
-
})(jQuery);
|
43
|
+
})(jQuery);
|
@@ -13,13 +13,28 @@
|
|
13
13
|
return pageNumber + ' records per pagina';
|
14
14
|
},
|
15
15
|
formatShowingRows: function (pageFrom, pageTo, totalRows) {
|
16
|
-
return 'Toon ' + pageFrom + ' tot ' + pageTo + ' van ' + totalRows + '
|
16
|
+
return 'Toon ' + pageFrom + ' tot ' + pageTo + ' van ' + totalRows + ' record' + ((totalRows > 1) ? 's' : '');
|
17
|
+
},
|
18
|
+
formatDetailPagination: function (totalRows) {
|
19
|
+
return 'Toon ' + totalRows + ' record' + ((totalRows > 1) ? 's' : '');
|
17
20
|
},
|
18
21
|
formatSearch: function () {
|
19
22
|
return 'Zoeken';
|
20
23
|
},
|
21
24
|
formatNoMatches: function () {
|
22
25
|
return 'Geen resultaten gevonden';
|
26
|
+
},
|
27
|
+
formatRefresh: function () {
|
28
|
+
return 'Vernieuwen';
|
29
|
+
},
|
30
|
+
formatToggle: function () {
|
31
|
+
return 'Omschakelen';
|
32
|
+
},
|
33
|
+
formatColumns: function () {
|
34
|
+
return 'Kolommen';
|
35
|
+
},
|
36
|
+
formatAllRows: function () {
|
37
|
+
return 'Alle';
|
23
38
|
}
|
24
39
|
};
|
25
40
|
|
@@ -19,13 +19,13 @@
|
|
19
19
|
return '搜尋';
|
20
20
|
},
|
21
21
|
formatNoMatches: function () {
|
22
|
-
return '
|
22
|
+
return '沒有找到符合的結果';
|
23
23
|
},
|
24
24
|
formatPaginationSwitch: function () {
|
25
25
|
return '隱藏/顯示分頁';
|
26
26
|
},
|
27
27
|
formatRefresh: function () {
|
28
|
-
return '
|
28
|
+
return '重新整理';
|
29
29
|
},
|
30
30
|
formatToggle: function () {
|
31
31
|
return '切換';
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/**
|
2
2
|
* @author zhixin wen <wenzhixin2010@gmail.com>
|
3
|
-
* version: 1.
|
3
|
+
* version: 1.10.0
|
4
4
|
* https://github.com/wenzhixin/bootstrap-table/
|
5
5
|
*/
|
6
6
|
|
@@ -17,7 +17,7 @@
|
|
17
17
|
.bootstrap-table .table:not(.table-condensed) > thead > tr > td,
|
18
18
|
.bootstrap-table .table:not(.table-condensed) > tbody > tr > td,
|
19
19
|
.bootstrap-table .table:not(.table-condensed) > tfoot > tr > td {
|
20
|
-
padding: 8px
|
20
|
+
padding: 8px;
|
21
21
|
}
|
22
22
|
|
23
23
|
.bootstrap-table .table.table-no-bordered > thead > tr > th,
|
@@ -64,6 +64,10 @@
|
|
64
64
|
border-left: 1px solid #dddddd;
|
65
65
|
}
|
66
66
|
|
67
|
+
.fixed-table-container thead th:focus {
|
68
|
+
outline: 0 solid transparent;
|
69
|
+
}
|
70
|
+
|
67
71
|
.fixed-table-container thead th:first-child {
|
68
72
|
border-left: none;
|
69
73
|
border-top-left-radius: 4px;
|
@@ -274,6 +278,7 @@
|
|
274
278
|
.bootstrap-table .fixed-table-footer .table {
|
275
279
|
border-bottom: none;
|
276
280
|
border-radius: 0;
|
281
|
+
padding: 0 !important;
|
277
282
|
}
|
278
283
|
|
279
284
|
.pull-right .dropdown-menu {
|
@@ -0,0 +1,22 @@
|
|
1
|
+
/**
|
2
|
+
* @author vincent loh <vincent.ml@gmail.com>
|
3
|
+
* @version: v1.0.0
|
4
|
+
* https://github.com/vinzloh/bootstrap-table/
|
5
|
+
* Sticky header for bootstrap-table
|
6
|
+
*/
|
7
|
+
|
8
|
+
.fix-sticky {
|
9
|
+
position: fixed;
|
10
|
+
z-index: 100;
|
11
|
+
}
|
12
|
+
.fix-sticky thead {
|
13
|
+
background: #fff;
|
14
|
+
}
|
15
|
+
|
16
|
+
.fix-sticky thead th,
|
17
|
+
.fix-sticky thead th:first-child {
|
18
|
+
border-left: 0;
|
19
|
+
border-right: 0;
|
20
|
+
border-bottom: 1px solid #eee;
|
21
|
+
border-radius: 0;
|
22
|
+
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bootstrap-table-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Evan Chiu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-02-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -67,6 +67,7 @@ files:
|
|
67
67
|
- vendor/assets/javascripts/extensions/bootstrap-table-filter-control.js
|
68
68
|
- vendor/assets/javascripts/extensions/bootstrap-table-filter.js
|
69
69
|
- vendor/assets/javascripts/extensions/bootstrap-table-flat-json.js
|
70
|
+
- vendor/assets/javascripts/extensions/bootstrap-table-group-by 2.js
|
70
71
|
- vendor/assets/javascripts/extensions/bootstrap-table-group-by.js
|
71
72
|
- vendor/assets/javascripts/extensions/bootstrap-table-key-events.js
|
72
73
|
- vendor/assets/javascripts/extensions/bootstrap-table-mobile.js
|
@@ -76,6 +77,7 @@ files:
|
|
76
77
|
- vendor/assets/javascripts/extensions/bootstrap-table-reorder-columns.js
|
77
78
|
- vendor/assets/javascripts/extensions/bootstrap-table-reorder-rows.js
|
78
79
|
- vendor/assets/javascripts/extensions/bootstrap-table-resizable.js
|
80
|
+
- vendor/assets/javascripts/extensions/bootstrap-table-sticky-header.js
|
79
81
|
- vendor/assets/javascripts/extensions/bootstrap-table-toolbar.js
|
80
82
|
- vendor/assets/javascripts/locale/bootstrap-table-af-ZA.js
|
81
83
|
- vendor/assets/javascripts/locale/bootstrap-table-ar-SA.js
|
@@ -119,8 +121,10 @@ files:
|
|
119
121
|
- vendor/assets/javascripts/locale/bootstrap-table-zh-CN.js
|
120
122
|
- vendor/assets/javascripts/locale/bootstrap-table-zh-TW.js
|
121
123
|
- vendor/assets/stylesheets/bootstrap-table.css
|
124
|
+
- vendor/assets/stylesheets/extensions/bootstrap-table-group-by 2.css
|
122
125
|
- vendor/assets/stylesheets/extensions/bootstrap-table-group-by.css
|
123
126
|
- vendor/assets/stylesheets/extensions/bootstrap-table-reorder-rows.css
|
127
|
+
- vendor/assets/stylesheets/extensions/bootstrap-table-sticky-header.css
|
124
128
|
homepage: https://github.com/bjevanchiu/bootstrap-table-rails
|
125
129
|
licenses:
|
126
130
|
- MIT
|