ソースを参照

Merge pull request #7 from wenzhixin/master

Update my repo
Dennis Hernández 11 年 前
コミット
29179e6ec8

+ 5 - 2
CHANGELOG.md

@@ -1,9 +1,9 @@
 ## ChangeLog
 
-### 1.5.1
+### 1.6.0
 
 - [bug] Fix queryParams bug when use `sidePagination='server'`.
-- [enh] Add uk-UA, sv-SE, pt-PT locales.
+- [enh] Add uk-UA, sv-SE, pt-PT, ms-MY, ja-JP locales.
 - [enh] Add `searchTimeOut` option.
 - [bug] Fix #220: state column hideColumn bug.
 - [enh] Add `iconsPrefix` and `icons` options to support custom icons.
@@ -14,6 +14,9 @@
 - [bug] Fix #188: Export Button is not shown only use `showExport=true`.
 - [enh] Add limit and offset params only if pagination is activated.
 - [enh] Add `ajaxOptions` option to custom $.ajax options.
+- [enh] Add a toggle pagination toolbar button.
+- [enh] Add `iconSize` option.
+- [enh] Add `buttonsAlign` option and update `toolbarAlign` option.
 
 ### 1.5.0
 

ファイルの差分が大きいため隠しています
+ 7 - 0
dist/locale/bootstrap-table-ja-JP.min.js


ファイルの差分が大きいため隠しています
+ 7 - 0
dist/locale/bootstrap-table-ms-MY.min.js


+ 2 - 1
docs/_i18n/en/documentation/methods.md

@@ -43,7 +43,8 @@ The calling method syntax: `$('#table').bootstrapTable('method', parameter);`.
         <td>
         Remove data from table, the params contains two properties: <br>
         field: the field name of remove rows. <br>
-        values: the values of remove rows.
+        values: the array of values for rows which should be removed. <br>
+        Example: $('#myTable').bootstrapTable('remove', {field: 'id', values: ["73", "74"]})
         </td>
     </tr>
     <tr>

+ 13 - 3
docs/_i18n/en/documentation/table-options.md

@@ -149,7 +149,10 @@ The table options is defined in `jQuery.fn.bootstrapTable.defaults`.
         <td>Function</td>
         <td>function(params) {<br>return params;<br>}</td>
         <td>
-        When request remote data, sending additional parameters by format the queryParams, the parameters object contains: <br>
+        When requesting remote data, you can send additional parameters by modifying queryParams. 
+        If queryParamsType = 'limit', the params object contains: <br>
+        limit, offset, search, sort, order
+        Else, it contains: <br>
         pageSize, pageNumber, searchText, sortName, sortOrder. <br>
         Return false to stop request.
         </td>
@@ -293,13 +296,20 @@ The table options is defined in `jQuery.fn.bootstrapTable.defaults`.
         <td>Indicate how to align the search input. 'left', 'right' can be used.</td>
     </tr>
     <tr>
-        <td>toolbarAlign</td>
-        <td>data-toolbar-align</td>
+        <td>buttonsAlign</td>
+        <td>data-buttons-align</td>
         <td>String</td>
         <td>'right'</td>
         <td>Indicate how to align the toolbar buttons. 'left', 'right' can be used.</td>
     </tr>
     <tr>
+        <td>toolbarAlign</td>
+        <td>data-toolbar-align</td>
+        <td>String</td>
+        <td>'left'</td>
+        <td>Indicate how to align the custom toolbar. 'left', 'right' can be used.</td>
+    </tr>
+    <tr>
         <td>clickToSelect</td>
         <td>data-click-to-select</td>
         <td>Boolean</td>

+ 7 - 1
docs/_i18n/en/examples/format.md

@@ -2,4 +2,10 @@
 
 Use `formatter` column option to format the display of bootstrap table column. _by [@wenzhixin](https://github.com/wenzhixin)_
 
-<iframe width="100%" height="300" data-src="http://jsfiddle.net/wenyi/e3nk137y/21/embedded/html,js,result" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
+<iframe width="100%" height="300" data-src="http://jsfiddle.net/wenyi/e3nk137y/21/embedded/html,js,result" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
+
+# Show current row count using Formatter []({{ site.repo }}/blob/master/docs/_i18n/{{ site.lang }}/examples/format.md)
+
+Use `formatter` column option to display the index of the current row. _by [@DominikAngerer](https://github.com/DominikAngerer)_
+
+<iframe width="100%" height="300" data-src="http://jsfiddle.net/DominikAngerer/yx275pyd/2/embedded/" allowfullscreen="allowfullscreen" frameborder="0"></iframe>

+ 5 - 0
docs/_i18n/fr/documentation/methods.md

@@ -141,5 +141,10 @@ The calling method syntax: `$('#table').bootstrapTable('method', parameter);`.
         <td>none</td>
         <td>Go to next page.</td>
     </tr>
+    <tr>
+        <td>togglePagination</td>
+        <td>none</td>
+        <td>Toggle the pagination option.</td>
+    </tr>
     </tbody>
 </table>

+ 20 - 3
docs/_i18n/fr/documentation/table-options.md

@@ -149,7 +149,10 @@ The table options is defined in `jQuery.fn.bootstrapTable.defaults`.
         <td>Function</td>
         <td>function(params) {<br>return params;<br>}</td>
         <td>
-        When request remote data, sending additional parameters by format the queryParams, the parameters object contains: <br>
+        When requesting remote data, you can send additional parameters by modifying queryParams.
+        If queryParamsType = 'limit', the params object contains: <br>
+        limit, offset, search, sort, order
+        Else, it contains: <br>
         pageSize, pageNumber, searchText, sortName, sortOrder. <br>
         Return false to stop request.
         </td>
@@ -207,6 +210,13 @@ The table options is defined in `jQuery.fn.bootstrapTable.defaults`.
         <td>When set pagination property, initialize the page size selecting list.</td>
     </tr>
     <tr>
+        <td>showPaginationSwitch </td>
+        <td>data-show-pagination-switch</td>
+        <td>Boolean</td>
+        <td>false</td>
+        <td>True to show the pagination switch button.</td>
+    </tr>
+    <tr>
         <td>selectItemName</td>
         <td>data-select-item-name</td>
         <td>String</td>
@@ -293,13 +303,20 @@ The table options is defined in `jQuery.fn.bootstrapTable.defaults`.
         <td>Indicate how to align the search input. 'left', 'right' can be used.</td>
     </tr>
     <tr>
-        <td>toolbarAlign</td>
-        <td>data-toolbar-align</td>
+        <td>buttonsAlign</td>
+        <td>data-buttons-align</td>
         <td>String</td>
         <td>'right'</td>
         <td>Indicate how to align the toolbar buttons. 'left', 'right' can be used.</td>
     </tr>
     <tr>
+        <td>toolbarAlign</td>
+        <td>data-toolbar-align</td>
+        <td>String</td>
+        <td>'left'</td>
+        <td>Indicate how to align the custom toolbar. 'left', 'right' can be used.</td>
+    </tr>
+    <tr>
         <td>clickToSelect</td>
         <td>data-click-to-select</td>
         <td>Boolean</td>

+ 13 - 3
docs/_i18n/zh-cn/documentation/table-options.md

@@ -149,7 +149,10 @@ The table options is defined in `jQuery.fn.bootstrapTable.defaults`.
         <td>Function</td>
         <td>function(params) {<br>return params;<br>}</td>
         <td>
-        When request remote data, sending additional parameters by format the queryParams, the parameters object contains: <br>
+        When requesting remote data, you can send additional parameters by modifying queryParams.
+        If queryParamsType = 'limit', the params object contains: <br>
+        limit, offset, search, sort, order
+        Else, it contains: <br>
         pageSize, pageNumber, searchText, sortName, sortOrder. <br>
         Return false to stop request.
         </td>
@@ -293,13 +296,20 @@ The table options is defined in `jQuery.fn.bootstrapTable.defaults`.
         <td>Indicate how to align the search input. 'left', 'right' can be used.</td>
     </tr>
     <tr>
-        <td>toolbarAlign</td>
-        <td>data-toolbar-align</td>
+        <td>buttonsAlign</td>
+        <td>data-buttons-align</td>
         <td>String</td>
         <td>'right'</td>
         <td>Indicate how to align the toolbar buttons. 'left', 'right' can be used.</td>
     </tr>
     <tr>
+        <td>toolbarAlign</td>
+        <td>data-toolbar-align</td>
+        <td>String</td>
+        <td>'left'</td>
+        <td>Indicate how to align the custom toolbar. 'left', 'right' can be used.</td>
+    </tr>
+    <tr>
         <td>clickToSelect</td>
         <td>data-click-to-select</td>
         <td>Boolean</td>

ファイルの差分が大きいため隠しています
+ 7 - 0
docs/dist/locale/bootstrap-table-ja-JP.min.js


ファイルの差分が大きいため隠しています
+ 7 - 0
docs/dist/locale/bootstrap-table-ms-MY.min.js


+ 54 - 17
src/bootstrap-table.js

@@ -150,8 +150,10 @@
         selectItemName: 'btSelectItem',
         showHeader: true,
         showColumns: false,
+        showPaginationSwitch: false,
         showRefresh: false,
         showToggle: false,
+        buttonsAlign: 'right',
         smartDisplay: true,
         minimumCountColumns: 1,
         idField: undefined,
@@ -160,13 +162,16 @@
         clickToSelect: false,
         singleSelect: false,
         toolbar: undefined,
-        toolbarAlign: 'right',
+        toolbarAlign: 'left',
         checkboxHeader: true,
         sortable: true,
         maintainSelected: false,
         searchTimeOut: 500,
+        iconSize: undefined,
         iconsPrefix: 'glyphicon', // glyphicon of fa (font awesome)
         icons: {
+            paginationSwitchDown: 'glyphicon-collapse-down icon-chevron-down',
+            paginationSwitchUp: 'glyphicon-collapse-up icon-chevron-up',
             refresh: 'glyphicon-refresh icon-refresh',
             toggle: 'glyphicon-list-alt icon-list-alt',
             columns: 'glyphicon-th icon-th'
@@ -211,6 +216,9 @@
         formatNoMatches: function () {
             return 'No matching records found';
         },
+        formatPaginationSwitch: function () {
+            return 'Hide/Show pagination';
+        },
         formatRefresh: function () {
             return 'Refresh';
         },
@@ -382,7 +390,7 @@
                 return;
             }
 
-            halign = sprintf('text-align: %s; ', column.halign ? column.halign : column.align)
+            halign = sprintf('text-align: %s; ', column.halign ? column.halign : column.align);
             align = sprintf('text-align: %s; ', column.align);
             style = sprintf('vertical-align: %s; ', column.valign);
             style += sprintf('width: %spx; ', column.checkbox || column.radio ? 36 : column.width);
@@ -559,27 +567,35 @@
         this.$toolbar = this.$container.find('.fixed-table-toolbar').html('');
 
         if (typeof this.options.toolbar === 'string') {
-            $('<div class="bars pull-left"></div>')
+            $(sprintf('<div class="bars pull-%s"></div>', this.options.toolbarAlign))
                 .appendTo(this.$toolbar)
                 .append($(this.options.toolbar));
         }
 
         // showColumns, showToggle, showRefresh
-        html = ['<div class="columns columns-' + this.options.toolbarAlign + ' btn-group pull-' + this.options.toolbarAlign + '">'];
+        html = [sprintf('<div class="columns columns-%s btn-group pull-%s">',
+            this.options.buttonsAlign, this.options.buttonsAlign)];
 
         if (typeof this.options.icons === 'string') {
             this.options.icons = calculateObjectValue(null, this.options.icons);
         }
 
+        if (this.options.showPaginationSwitch) {
+            html.push(sprintf('<button class="btn btn-default" type="button" name="paginationSwitch" title="%s">',
+                this.options.formatPaginationSwitch()),
+                sprintf('<i class="%s %s"></i>', this.options.iconsPrefix, this.options.icons.paginationSwitchDown),
+                '</button>');
+        }
+
         if (this.options.showRefresh) {
-            html.push(sprintf('<button class="btn btn-default" type="button" name="refresh" title="%s">',
+            html.push(sprintf('<button class="btn btn-default' + (this.options.iconSize == undefined ? '' :  ' btn-' + this.options.iconSize) + '" type="button" name="refresh" title="%s">',
                 this.options.formatRefresh()),
                 sprintf('<i class="%s %s"></i>', this.options.iconsPrefix, this.options.icons.refresh),
                 '</button>');
         }
 
         if (this.options.showToggle) {
-            html.push(sprintf('<button class="btn btn-default" type="button" name="toggle" title="%s">',
+            html.push(sprintf('<button class="btn btn-default' + (this.options.iconSize == undefined ? '' :  ' btn-' + this.options.iconSize) + '" type="button" name="toggle" title="%s">',
                 this.options.formatToggle()),
                 sprintf('<i class="%s %s"></i>', this.options.iconsPrefix, this.options.icons.toggle),
                 '</button>');
@@ -588,7 +604,7 @@
         if (this.options.showColumns) {
             html.push(sprintf('<div class="keep-open btn-group" title="%s">',
                 this.options.formatColumns()),
-                '<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">',
+                '<button type="button" class="btn btn-default' + (this.options.iconSize == undefined ? '' :  ' btn-' + this.options.iconSize) + ' dropdown-toggle" data-toggle="dropdown">',
                 sprintf('<i class="%s %s"></i>', this.options.iconsPrefix, this.options.icons.columns),
                 ' <span class="caret"></span>',
                 '</button>',
@@ -618,6 +634,11 @@
             this.$toolbar.append(html.join(''));
         }
 
+        if (this.options.showPaginationSwitch) {
+            this.$toolbar.find('button[name="paginationSwitch"]')
+                .off('click').on('click', $.proxy(this.togglePagination, this));
+        }
+
         if (this.options.showRefresh) {
             this.$toolbar.find('button[name="refresh"]')
                 .off('click').on('click', $.proxy(this.refresh, this));
@@ -654,7 +675,7 @@
             html = [];
             html.push(
                 '<div class="pull-' + this.options.searchAlign + ' search">',
-                    sprintf('<input class="form-control" type="text" placeholder="%s">',
+                    sprintf('<input class="form-control' + (this.options.iconSize == undefined ? '' :  ' input-' + this.options.iconSize)  + '" type="text" placeholder="%s">',
                         this.options.formatSearch()),
                 '</div>');
 
@@ -674,8 +695,8 @@
 
         // trim search input
         if(this.options.trimOnSearch) {
-			$(event.currentTarget).val(text);
-		}
+            $(event.currentTarget).val(text);
+        }
 
         if (text === this.searchText) {
             return;
@@ -729,10 +750,14 @@
     };
 
     BootstrapTable.prototype.initPagination = function () {
-		if (!this.options.pagination) {
+        this.$pagination = this.$container.find('.fixed-table-pagination');
+
+        if (!this.options.pagination) {
+            this.$pagination.hide();
             return;
+        } else {
+            this.$pagination.show();
         }
-		this.$pagination = this.$container.find('.fixed-table-pagination');
 
         var that = this,
             html = [],
@@ -771,7 +796,7 @@
 
         var pageNumber = [
             '<span class="btn-group dropup">',
-            '<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">',
+            '<button type="button" class="btn btn-default '+ (this.options.iconSize == undefined ? '' :  ' btn-' + this.options.iconSize)+ ' dropdown-toggle" data-toggle="dropdown">',
             '<span class="page-size">',
             this.options.pageSize,
             '</span>',
@@ -802,7 +827,7 @@
 
         html.push('</div>',
             '<div class="pull-right pagination">',
-                '<ul class="pagination">',
+                '<ul class="pagination' + (this.options.iconSize == undefined ? '' :  ' pagination-' + this.options.iconSize)  + '">',
                     '<li class="page-first"><a href="javascript:void(0)">&lt;&lt;</a></li>',
                     '<li class="page-pre"><a href="javascript:void(0)">&lt;</a></li>');
 
@@ -938,7 +963,7 @@
             this.$body = $('<tbody></tbody>').appendTo(this.$el);
         }
 
-		//Fix #389 Bootstrap-table-flatJSON is not working
+        //Fix #389 Bootstrap-table-flatJSON is not working
 
         if (!this.options.pagination || this.options.sidePagination === 'server') {
             this.pageFrom = 1;
@@ -1467,7 +1492,7 @@
         this.updateRows(checked);
         this.updateSelected();
         this.trigger(checked ? 'check-all' : 'uncheck-all');
-    }
+    };
 
     BootstrapTable.prototype.check = function (index) {
         this.check_(true, index);
@@ -1481,7 +1506,7 @@
         this.$selectItem.filter(sprintf('[data-index="%s"]', index)).prop('checked', checked);
         this.data[index][this.header.stateField] = checked;
         this.updateSelected();
-    }
+    };
 
     BootstrapTable.prototype.destroy = function () {
         this.$el.insertBefore(this.$container);
@@ -1500,6 +1525,17 @@
         this.$loading.hide();
     };
 
+    BootstrapTable.prototype.togglePagination = function () {
+        this.options.pagination = !this.options.pagination;
+        var button = this.$toolbar.find('button[name="paginationSwitch"] i');
+        if (this.options.pagination) {
+            button.attr("class", this.options.iconsPrefix + " " + this.options.icons.paginationSwitchDown);
+        } else {
+            button.attr("class", this.options.iconsPrefix + " " + this.options.icons.paginationSwitchUp);
+        }
+        this.updatePagination();
+    };
+
     BootstrapTable.prototype.refresh = function (params) {
         if (params && params.url) {
             this.options.url = params.url;
@@ -1553,6 +1589,7 @@
         'mergeCells',
         'checkAll', 'uncheckAll',
         'check', 'uncheck',
+        'togglePagination',
         'refresh',
         'resetView',
         'destroy',

+ 3 - 0
src/locale/bootstrap-table-en-US.js

@@ -21,6 +21,9 @@
         formatNoMatches: function () {
             return 'No matching records found';
         },
+        formatPaginationSwitch: function () {
+            return 'Hide/Show pagination';
+        },
         formatRefresh: function () {
             return 'Refresh';
         },

+ 3 - 0
src/locale/bootstrap-table-en-US.js.template

@@ -21,6 +21,9 @@
         formatNoMatches: function () {
             return 'No matching records found';
         },
+        formatPaginationSwitch: function () {
+            return 'Hide/Show pagination';
+        },
         formatRefresh: function () {
             return 'Refresh';
         },

+ 40 - 0
src/locale/bootstrap-table-ja-JP.js

@@ -0,0 +1,40 @@
+/**
+ * Bootstrap Table Japanese translation
+ * Author: Azamshul Azizy <azamshul@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['ja-JP'] = {
+        formatLoadingMessage: function () {
+            return '読み込み中です。少々お待ちください。';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return 'ページ当たり最大' + pageNumber + '件';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return '全' + totalRows + '件から、'+ pageFrom + 'から' + pageTo + '件目まで表示しています';
+        },
+        formatSearch: function () {
+            return '検索';
+        },
+        formatNoMatches: function () {
+            return '該当するレコードが見つかりません';
+        },
+        formatPaginationSwitch: function () {
+            return 'ページ数を表示・非表示';
+        },
+        formatRefresh: function () {
+            return '更新';
+        },
+        formatToggle: function () {
+            return 'トグル';
+        },
+        formatColumns: function () {
+            return '列';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['ja-JP']);
+
+})(jQuery);

+ 40 - 0
src/locale/bootstrap-table-ms-MY.js

@@ -0,0 +1,40 @@
+/**
+ * Bootstrap Table Malay translation
+ * Author: Azamshul Azizy <azamshul@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['ms-MY'] = {
+        formatLoadingMessage: function () {
+            return 'Permintaan sedang dimuatkan. Sila tunggu sebentar...';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return pageNumber + ' rekod setiap muka surat';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return 'Sedang memaparkan rekod ' + pageFrom + ' hingga ' + pageTo + ' daripada jumlah ' + totalRows + ' rekod';
+        },
+        formatSearch: function () {
+            return 'Cari';
+        },
+        formatNoMatches: function () {
+            return 'Tiada rekod yang menyamai permintaan';
+        },
+        formatPaginationSwitch: function () {
+            return 'Tunjuk/sembunyi muka surat';
+        },
+        formatRefresh: function () {
+            return 'Muatsemula';
+        },
+        formatToggle: function () {
+            return 'Tukar';
+        },
+        formatColumns: function () {
+            return 'Lajur';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['ms-MY']);
+
+})(jQuery);

+ 3 - 0
src/locale/bootstrap-table-zh-CN.js

@@ -21,6 +21,9 @@
         formatNoMatches: function () {
             return '没有找到匹配的记录';
         },
+        formatPaginationSwitch: function () {
+            return '隐藏/显示分页';
+        },
         formatRefresh: function () {
             return '刷新';
         },

+ 3 - 0
src/locale/bootstrap-table-zh-TW.js

@@ -21,6 +21,9 @@
         formatNoMatches: function () {
             return '沒有找符合的結果';
         },
+        formatPaginationSwitch: function () {
+            return '隱藏/顯示分頁';
+        },
         formatRefresh: function () {
             return '刷新';
         },