From 5ce532e38100b3e2a52aadc8de4bb0a9f5a97eb8 Mon Sep 17 00:00:00 2001 From: Don Van Gorp Date: Mon, 16 Jun 2014 09:33:33 +0200 Subject: [PATCH] Fix combination childSelector - alignLastPage Fixes issue with alignLastPage when a childSelector has been defined --- bootstrap-table-nav.coffee | 8 ++++++-- bootstrap-table-nav.js | 31 +++++++++++++++++-------------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/bootstrap-table-nav.coffee b/bootstrap-table-nav.coffee index 8ecb60c..ca4aaf4 100644 --- a/bootstrap-table-nav.coffee +++ b/bootstrap-table-nav.coffee @@ -18,7 +18,8 @@ do ($ = window.jQuery) -> # wire ourselves up $(options.paginationSelector).on 'click', 'li', options, onPageNav # align table - alignTable(options) + if (options.alignLastPage) + alignTable(options) # draw ourselves paint(options) @@ -63,7 +64,10 @@ do ($ = window.jQuery) -> rowsToAdd = options.itemsPerPage - realMod(getRows(options).length, options.itemsPerPage) parent = options.table.find(options.childSelector).parent() numCol = $(options.table.find(options.childSelector)[0]).children().length - parent.append( Array(rowsToAdd+1).join(' ') ) + rowSelector = '' + if (options.childSelector != 'tr') + rowSelector = ' class="' + options.childSelector.substring(1) + '"' + parent.append( Array(rowsToAdd+1).join(' ') ) realMod = (n, base) -> unless (jsmod = n % base) and ((n > 0) != (base > 0)) then jsmod diff --git a/bootstrap-table-nav.js b/bootstrap-table-nav.js index 1a3f873..7133542 100644 --- a/bootstrap-table-nav.js +++ b/bootstrap-table-nav.js @@ -1,8 +1,7 @@ -// Generated by CoffeeScript 1.6.3 +// Generated by CoffeeScript 1.7.1 (function() { (function($) { - var alignTable, endIndexForPage, getRows, numPages, onPageNav, paginationItem, paginationRange, paint, paintPagination, paintTableRows, realMod, startIndexForPage, tableNav, - _this = this; + var alignTable, endIndexForPage, getRows, numPages, onPageNav, paginationItem, paginationRange, paint, paintPagination, paintTableRows, realMod, startIndexForPage, tableNav; tableNav = function(opts) { return $.each($(this.selector), function(idx, table) { var options, _ref, _ref1, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7; @@ -20,7 +19,9 @@ options.showAdditionalControls = true; } $(options.paginationSelector).on('click', 'li', options, onPageNav); - alignTable(options); + if (options.alignLastPage) { + alignTable(options); + } return paint(options); }); }; @@ -40,10 +41,12 @@ paintTableRows(options); return paintPagination(options); }; - onPageNav = function(ev) { - ev.data.currentPage = parseInt($(ev.target).attr('data-page-num')); - return paint(ev.data); - }; + onPageNav = (function(_this) { + return function(ev) { + ev.data.currentPage = parseInt($(ev.target).attr('data-page-num')); + return paint(ev.data); + }; + })(this); paintTableRows = function(options) { var endRow, startRow; startRow = startIndexForPage(options, options.currentPage); @@ -80,11 +83,15 @@ return pagination.show().empty().append(""); }; alignTable = function(options) { - var numCol, parent, rowsToAdd; + var numCol, parent, rowSelector, rowsToAdd; rowsToAdd = options.itemsPerPage - realMod(getRows(options).length, options.itemsPerPage); parent = options.table.find(options.childSelector).parent(); numCol = $(options.table.find(options.childSelector)[0]).children().length; - return parent.append(Array(rowsToAdd + 1).join(' ')); + rowSelector = ''; + if (options.childSelector !== 'tr') { + rowSelector = ' class="' + options.childSelector.substring(1) + '"'; + } + return parent.append(Array(rowsToAdd + 1).join(' ')); }; realMod = function(n, base) { var jsmod; @@ -127,7 +134,3 @@ })(window.jQuery); }).call(this); - -/* -//@ sourceMappingURL=bootstrap-table-nav.map -*/