Simplified automatic pagination

This commit is contained in:
echarp 2018-07-17 00:47:48 +02:00
parent 244a0a8fce
commit e712c99138
2 changed files with 12 additions and 24 deletions

View File

@ -11,6 +11,7 @@
# about supported directives.
#
#= require jquery3
#= require jquery_ujs
#= require jquery-sparkline
# For tags input
#= require jquery-ui/widgets/autocomplete

View File

@ -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()