From c888919e3c22786295f5d959655c791d4c1d8b83 Mon Sep 17 00:00:00 2001 From: Peter Wake Date: Fri, 6 Sep 2019 09:24:34 +0100 Subject: [PATCH 1/9] JQuery3 support --- app/assets/javascripts/jquery.infinite-pages.js.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/javascripts/jquery.infinite-pages.js.coffee b/app/assets/javascripts/jquery.infinite-pages.js.coffee index 74efbfd..a1a4f4d 100644 --- a/app/assets/javascripts/jquery.infinite-pages.js.coffee +++ b/app/assets/javascripts/jquery.infinite-pages.js.coffee @@ -58,7 +58,7 @@ Released under the MIT License # load event if close enough check: -> nav = @$container.find(@options.navSelector) - if nav.size() == 0 + if nav.length == 0 @_log "No more pages to load" else windowBottom = @$context.scrollTop() + @$context.height() From 496c60d5a24a92b16b33da5465b2545d72826fec Mon Sep 17 00:00:00 2001 From: Peter Wake Date: Fri, 6 Sep 2019 09:26:52 +0100 Subject: [PATCH 2/9] Allow getScript request to be aborted Ref https://github.com/marckohlbrugge/jquery-infinite-pages/commit/cfb9eaa480181a9f2f44713282441a3445fa37d4 --- .../javascripts/jquery.infinite-pages.js.coffee | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/jquery.infinite-pages.js.coffee b/app/assets/javascripts/jquery.infinite-pages.js.coffee index a1a4f4d..8aa4082 100644 --- a/app/assets/javascripts/jquery.infinite-pages.js.coffee +++ b/app/assets/javascripts/jquery.infinite-pages.js.coffee @@ -80,7 +80,7 @@ Released under the MIT License else @_loading() - $.getScript(@$container.find(@options.navSelector).attr('href')) + @jqXHR = $.getScript(@$container.find(@options.navSelector).attr('href')) .done(=> @_success()) .fail(=> @_error()) @@ -92,6 +92,7 @@ Released under the MIT License _success: -> @options.state.loading = false + @jqXHR = null @_log "New page loaded!" if typeof @options.success is 'function' @$container.find(@options.navSelector).each(@options.success) @@ -112,6 +113,14 @@ Released under the MIT License @options.state.paused = false @_log "Scroll checks resumed" @check() + + # Abort loading of the page + abort: -> + if @jqXHR + @jqXHR.abort() + @_log "Page load aborted!" + else + @_log "There was no request to abort" # Define the plugin $.fn.extend infinitePages: (option, args...) -> From 524be40406a71e375245914b16a31b86c2980c48 Mon Sep 17 00:00:00 2001 From: Peter Wake Date: Fri, 6 Sep 2019 09:27:45 +0100 Subject: [PATCH 3/9] Reset @jqXHR once aborted Ref https://github.com/marckohlbrugge/jquery-infinite-pages/commit/d08984022923acdbd334e362463c3af3c67a0d74 --- app/assets/javascripts/jquery.infinite-pages.js.coffee | 1 + 1 file changed, 1 insertion(+) diff --git a/app/assets/javascripts/jquery.infinite-pages.js.coffee b/app/assets/javascripts/jquery.infinite-pages.js.coffee index 8aa4082..5fcb114 100644 --- a/app/assets/javascripts/jquery.infinite-pages.js.coffee +++ b/app/assets/javascripts/jquery.infinite-pages.js.coffee @@ -118,6 +118,7 @@ Released under the MIT License abort: -> if @jqXHR @jqXHR.abort() + @jqXHR = null @_log "Page load aborted!" else @_log "There was no request to abort" From 95bd7683cb6f516570a476328924f6fa1b957b80 Mon Sep 17 00:00:00 2001 From: Peter Wake Date: Fri, 6 Sep 2019 09:30:36 +0100 Subject: [PATCH 4/9] Bump version to 0.2.2 Ref https://github.com/gsdean/jquery-infinite-pages/commit/68fc8e0335071b4020b2c03a1a4cfbd20333050c --- lib/jquery/infinite_pages/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/jquery/infinite_pages/version.rb b/lib/jquery/infinite_pages/version.rb index dbc0046..7d83751 100644 --- a/lib/jquery/infinite_pages/version.rb +++ b/lib/jquery/infinite_pages/version.rb @@ -1,3 +1,3 @@ module JqueryInfinitePages - VERSION = "0.2.0" + VERSION = "0.2.2" end From 70b7eab43d08542564187d99a2759e408e6b7225 Mon Sep 17 00:00:00 2001 From: Peter Wake Date: Fri, 6 Sep 2019 09:36:54 +0100 Subject: [PATCH 5/9] Configurable debounce Ref https://github.com/magoosh/jquery-infinite-pages/pull/31/commits/68fc8e0335071b4020b2c03a1a4cfbd20333050c --- app/assets/javascripts/jquery.infinite-pages.js.coffee | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/jquery.infinite-pages.js.coffee b/app/assets/javascripts/jquery.infinite-pages.js.coffee index 5fcb114..9cfbe8d 100644 --- a/app/assets/javascripts/jquery.infinite-pages.js.coffee +++ b/app/assets/javascripts/jquery.infinite-pages.js.coffee @@ -19,6 +19,7 @@ Released under the MIT License debug: false # set to true to log messages to the console navSelector: 'a[rel=next]' buffer: 1000 # 1000px buffer by default + debounce: 250 # 250ms debounce by default loading: null # optional callback when next-page request begins success: null # optional callback when next-page request finishes error: null # optional callback when next-page request fails @@ -43,12 +44,13 @@ Released under the MIT License # Debounce scroll event to improve performance scrollTimeout = null scrollHandler = (=> @check()) + debounce = @options.debounce @$context.scroll -> if scrollTimeout clearTimeout(scrollTimeout) scrollTimeout = null - scrollTimeout = setTimeout(scrollHandler, 250) + scrollTimeout = setTimeout(scrollHandler, debounce) # Internal helper for logging messages _log: (msg) -> From c43a014469af2928d490563aaab4ec03112e7ed0 Mon Sep 17 00:00:00 2001 From: Peter Wake Date: Fri, 6 Sep 2019 09:40:19 +0100 Subject: [PATCH 6/9] Allow to stop/reinit plugin ref https://github.com/zhisme/jquery-infinite-pages/commit/a3a8f4a0e8a0f3de3d977faa77000f2e7816253a --- .../javascripts/jquery.infinite-pages.js.coffee | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/jquery.infinite-pages.js.coffee b/app/assets/javascripts/jquery.infinite-pages.js.coffee index 9cfbe8d..5d18057 100644 --- a/app/assets/javascripts/jquery.infinite-pages.js.coffee +++ b/app/assets/javascripts/jquery.infinite-pages.js.coffee @@ -46,8 +46,9 @@ Released under the MIT License scrollHandler = (=> @check()) debounce = @options.debounce - @$context.scroll -> - if scrollTimeout + # Use namespace to let us unbind event handler + @$context.on 'scroll.infinitePages', -> + if scrollTimeout && self.active clearTimeout(scrollTimeout) scrollTimeout = null scrollTimeout = setTimeout(scrollHandler, debounce) @@ -116,6 +117,10 @@ Released under the MIT License @_log "Scroll checks resumed" @check() + stop: -> + @$context.off 'scroll.infinitePages' + @_log "Scroll checks stopped" + # Abort loading of the page abort: -> if @jqXHR @@ -134,6 +139,11 @@ Released under the MIT License if !data $this.data 'infinitepages', (data = new InfinitePages(this, option)) if typeof option == 'string' - data[option].apply(data, args) + if option == 'destroy' + data.stop args + else if option == 'reinit' + data.init args + else + data[option].apply(data, args) ) window.jQuery, window From 98384873238465dc752cb5f77f25112b61cffbf0 Mon Sep 17 00:00:00 2001 From: Peter Wake Date: Fri, 6 Sep 2019 09:52:30 +0100 Subject: [PATCH 7/9] Update .gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index ab86630..622c12e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ - +.idea +Gemfile.lock *.gem From a8d8c36381d9e3e6c2d4dbac2b2fff47ae7c956a Mon Sep 17 00:00:00 2001 From: Peter Wake Date: Fri, 6 Sep 2019 10:06:40 +0100 Subject: [PATCH 8/9] Remove unused code --- app/assets/javascripts/jquery.infinite-pages.js.coffee | 1 - 1 file changed, 1 deletion(-) diff --git a/app/assets/javascripts/jquery.infinite-pages.js.coffee b/app/assets/javascripts/jquery.infinite-pages.js.coffee index 5d18057..4b86e2b 100644 --- a/app/assets/javascripts/jquery.infinite-pages.js.coffee +++ b/app/assets/javascripts/jquery.infinite-pages.js.coffee @@ -34,7 +34,6 @@ Released under the MIT License constructor: (container, options) -> @options = $.extend({}, @defaults, options) @$container = $(container) - @$table = $(container).find('table') @$context = $(@options.context) @init() From 2ad7b526fff2ddd3f9a4ec05dd503272b4b3befa Mon Sep 17 00:00:00 2001 From: Peter Wake Date: Fri, 6 Sep 2019 10:12:22 +0100 Subject: [PATCH 9/9] Bump version to 0.2.3 --- CHANGELOG.md | 5 +++++ app/assets/javascripts/jquery.infinite-pages.js.coffee | 2 +- lib/jquery/infinite_pages/version.rb | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 64073f6..b806101 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ Ch-Ch-Ch-Changes ================ +#### 0.2.3 (September 6, 2019) + +* Added unpulled pull requests on main repo (except turbolinks related) +* Small code tidy + #### 0.2.0 (February 12, 2015) * Add context option to define scrolling container (thanks @pdw207) diff --git a/app/assets/javascripts/jquery.infinite-pages.js.coffee b/app/assets/javascripts/jquery.infinite-pages.js.coffee index 4b86e2b..ccb1e09 100644 --- a/app/assets/javascripts/jquery.infinite-pages.js.coffee +++ b/app/assets/javascripts/jquery.infinite-pages.js.coffee @@ -1,5 +1,5 @@ ### -jQuery Infinite Pages v0.2.0 +jQuery Infinite Pages v0.2.3 https://github.com/magoosh/jquery-infinite-pages Released under the MIT License diff --git a/lib/jquery/infinite_pages/version.rb b/lib/jquery/infinite_pages/version.rb index 7d83751..a3ab9af 100644 --- a/lib/jquery/infinite_pages/version.rb +++ b/lib/jquery/infinite_pages/version.rb @@ -1,3 +1,3 @@ module JqueryInfinitePages - VERSION = "0.2.2" + VERSION = "0.2.3" end