From 07fabe12930029b3a2d9392a731304503caf2c34 Mon Sep 17 00:00:00 2001 From: Srdjan Date: Mon, 27 Nov 2017 17:38:02 +1300 Subject: [PATCH] Bug 17602: fix RecordedBooks results pagination --- .../bootstrap/en/modules/opac-recordedbooks-search.tt | 13 +++++++++---- koha-tmpl/opac-tmpl/bootstrap/js/recordedbooks.js | 19 +++++++++++++++++-- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-recordedbooks-search.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-recordedbooks-search.tt index 07c9f05cc7..b384b964c2 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-recordedbooks-search.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-recordedbooks-search.tt @@ -121,16 +121,21 @@ function search( page ) { var pages = []; - var max_page = Math.floor( data.total / results_per_page ); + var max_page; + if (data.pages) { + max_page = data.pages - 1; + } else { + max_page = Math.floor( data.total / results_per_page ); + } if (data.total == page*results_per_page) max_page++; - if ( page != 1 ) { + if ( page > 1 ) { pages.push( '
  • « ' + MSG_PREVIOUS + '
  • ' ); } - for ( var p = Math.max( 0, page - 9 ); p <= Math.min( max_page, p + 9 ); p++ ) { + for ( var p = Math.max( 1, page - 9 ); p <= Math.min( max_page, p + 9 ); p++ ) { if ( p == page ) { - pages.push( '
  • ' + ( p + 1 ) + '
  • ' ); + pages.push( '
  • ' + p + '
  • ' ); } else { pages.push( '
  • ' + p + '
  • ' ); } diff --git a/koha-tmpl/opac-tmpl/bootstrap/js/recordedbooks.js b/koha-tmpl/opac-tmpl/bootstrap/js/recordedbooks.js index b0aeccb29d..a6ac515583 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/js/recordedbooks.js +++ b/koha-tmpl/opac-tmpl/bootstrap/js/recordedbooks.js @@ -313,8 +313,23 @@ KOHA.RecordedBooks = new function() { results = data.results; if (!results.total) { var total = results.items.length; - if ( total == results.page_size ) total = total + "+"; - results.total = total; + if (results.pages) { + results.total = (results.pages - 1) * results.page_size; + if ( page && page == results.pages ) { + results.total = results.total + total; + } else { + results.total = (results.total + 1) + "+"; + } + } else { + if (!page) page = 1; + results.total = (page - 1) * results.page_size + total; + if ( total == results.page_size ) { + results.total = results.total + "+"; + results.pages = page + 1; + } else { + results.pages = page; + } + } } } else results = {}; -- 2.11.0