From e712c9913801484ba17b0df082950bf32e0e68a7 Mon Sep 17 00:00:00 2001 From: echarp Date: Tue, 17 Jul 2018 00:47:48 +0200 Subject: [PATCH] Simplified automatic pagination --- app/assets/javascripts/application.js.coffee | 1 + app/assets/javascripts/pagination.coffee | 35 ++++++-------------- 2 files changed, 12 insertions(+), 24 deletions(-) diff --git a/app/assets/javascripts/application.js.coffee b/app/assets/javascripts/application.js.coffee index 854a77e9..63d96b88 100644 --- a/app/assets/javascripts/application.js.coffee +++ b/app/assets/javascripts/application.js.coffee @@ -11,6 +11,7 @@ # about supported directives. # #= require jquery3 +#= require jquery_ujs #= require jquery-sparkline # For tags input #= require jquery-ui/widgets/autocomplete diff --git a/app/assets/javascripts/pagination.coffee b/app/assets/javascripts/pagination.coffee index 0871ce1f..093b5557 100644 --- a/app/assets/javascripts/pagination.coffee +++ b/app/assets/javascripts/pagination.coffee @@ -1,28 +1,15 @@ # Automatic ajax pagination - -# To not setup pagination twice -pager = true $(document).on 'turbolinks:load', -> - $('.pagination .next a') - .attr('data-remote', true) - .click -> - $('#loading').fadeIn() + $('.pagination .next a').attr('data-remote', true).each -> + # Go to the next page when page is scrolled + $(document).scroll => + if $(this).visible true, true + # "Next" link is also hidden while pagination is done + $(this).click().parents('.pagination').hide() - if pager - pager = false - $(document).on 'ajax:success', '.pagination .next a', (event, data, status, xhr) -> - $('#loading').fadeOut() - elts = $('tbody tr', data) - $(this).parents('tfoot').prev().append(elts) +$(document).on 'ajax:success', '.pagination .next a', (event, data) -> + $(this).parents('tfoot').prev().append $('tbody tr', data) - next = $('.pagination .next a', data).attr('href') - if next? - return $(this).show().data('remote', true).attr('href', next) - else - return $(this).parents('.pagination').remove() - - # Go to the next page when page is scrolled - $(document).scroll -> - $('.pagination .next a:visible').filter => - this.visible() - .hide().click() # "Next" link is hidden while pagination is done + next = $('.pagination .next a', data).attr 'href' + if next? + $(this).attr('href', next).parents('.pagination').show()