agenda-libre-ruby/app/assets/javascripts/pagination.coffee

30 lines
942 B
CoffeeScript
Raw Normal View History

2016-01-10 14:41:20 +01:00
# Automatic ajax pagination
2016-01-18 00:24:53 +01:00
# To not setup pagination twice
pager = true
$(document).on 'turbolinks:load', ->
2016-01-10 14:41:20 +01:00
$('.pagination .next a')
.attr('data-remote', true)
.click ->
$('#loading').fadeIn()
2016-01-18 00:24:53 +01:00
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)
2016-01-10 14:41:20 +01:00
2016-01-18 00:24:53 +01:00
next = $('.pagination .next a', data).attr('href')
if next?
return $(this).show().data('remote', true).attr('href', next)
else
return $(this).parents('.pagination').remove()
2016-01-10 14:41:20 +01:00
# Go to the next page when page is scrolled
if $('.pagination .next a').size() > 0
$(document).scroll ->
if $(window).scrollTop() == $(document).height() - $(window).height() && $('.pagination .next a').is(':visible')
# "Next" link is also hidden while pagination is done
$('.pagination .next a').hide().click()