jquery-infinite-pages 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/README.md +4 -3
- data/app/assets/javascripts/jquery.infinite-pages.js.coffee +23 -22
- data/lib/jquery/infinite_pages/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MWZkNmRmZmUzMDM4ZjgwMzBlYzM1YWMwYmU1ZjkzNTU1NzNjNTcwMA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MGM2YTJkNGE5NjI5NmM2ZDYzMWU5MTZhZjJhNDFiZDc0MWRmZDY4NA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MTQyMThmOTBhZDc5ZjBkYTBhZDg2NTgxOTk4NWJjMzFlM2NmZjk4YzgyN2Zm
|
10
|
+
ZTJjNzZmMDgwNjJhMjlkNjE4OTdiNzc4YTk3NjMwY2RmODUwMGVmMWJjZDY4
|
11
|
+
ZTdjM2M5ZTllNWUyYzJiZjcwNDg2MmJjNjkyMmYyNWQ1MzQ0NTI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NDhiMTVjODdkYzY0OTE3MTkwY2Y0OTVmZmViNDNhZWRkMTc4MTgwOWVhNzM5
|
14
|
+
ZmY2Yjk4ZGMyZDY3NTE2ZTQ5YjhjZjE3Y2YyMWIzYmJhMTYyZDhjZTYxYWJh
|
15
|
+
YTQwYTMwNTdmN2VlNjJjNGVkYjVjMTdhOGM4YjMxMzAwOTc2OTQ=
|
data/README.md
CHANGED
@@ -47,6 +47,7 @@ pagination link.
|
|
47
47
|
$('.infinite-table').infinitePages
|
48
48
|
debug: true
|
49
49
|
buffer: 200 # load new page when within 200px of nav link
|
50
|
+
context: '.pane' # define the scrolling container (defaults to window)
|
50
51
|
loading: ->
|
51
52
|
# jQuery callback on the nav element
|
52
53
|
$(this).text("Loading...")
|
@@ -98,7 +99,7 @@ Write the template for your list of lessons in `index.html.erb`:
|
|
98
99
|
<%= render :partial => 'lessons', :object => @lessons %>
|
99
100
|
</table>
|
100
101
|
<p class="pagination">
|
101
|
-
<%= link_to_next_page(@lessons, 'Next Page', :remote => true)
|
102
|
+
<%= link_to_next_page(@lessons, 'Next Page', :remote => true) %>
|
102
103
|
</p>
|
103
104
|
</div>
|
104
105
|
```
|
@@ -122,11 +123,11 @@ $("<%=j render(:partial => 'lessons', :object => @lessons) %>")
|
|
122
123
|
.appendTo($(".infinite-table table"));
|
123
124
|
|
124
125
|
// Update pagination link
|
125
|
-
<% if
|
126
|
+
<% if @lessons.last_page? %>
|
126
127
|
$('.pagination').html("That's all, folks!");
|
127
128
|
<% else %>
|
128
129
|
$('.pagination')
|
129
|
-
.html("<%=j link_to_next_page(@lessons, 'Next Page', :remote => true)
|
130
|
+
.html("<%=j link_to_next_page(@lessons, 'Next Page', :remote => true) %>");
|
130
131
|
<% end %>
|
131
132
|
```
|
132
133
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
###
|
2
|
-
jQuery Infinite Pages v0.
|
2
|
+
jQuery Infinite Pages v0.2.0
|
3
3
|
https://github.com/magoosh/jquery-infinite-pages
|
4
4
|
|
5
5
|
Released under the MIT License
|
@@ -13,7 +13,7 @@ Released under the MIT License
|
|
13
13
|
(($, window) ->
|
14
14
|
# Define the plugin class
|
15
15
|
class InfinitePages
|
16
|
-
|
16
|
+
|
17
17
|
# Default settings
|
18
18
|
defaults:
|
19
19
|
debug: false # set to true to log messages to the console
|
@@ -22,10 +22,11 @@ Released under the MIT License
|
|
22
22
|
loading: null # optional callback when next-page request begins
|
23
23
|
success: null # optional callback when next-page request finishes
|
24
24
|
error: null # optional callback when next-page request fails
|
25
|
+
context: window # context to define the scrolling container
|
25
26
|
state:
|
26
27
|
paused: false
|
27
28
|
loading: false
|
28
|
-
|
29
|
+
|
29
30
|
# Constructs the new InfinitePages object
|
30
31
|
#
|
31
32
|
# container - the element containing the infinite table and pagination links
|
@@ -33,26 +34,26 @@ Released under the MIT License
|
|
33
34
|
@options = $.extend({}, @defaults, options)
|
34
35
|
@$container = $(container)
|
35
36
|
@$table = $(container).find('table')
|
36
|
-
|
37
|
+
@$context = $(@options.context)
|
37
38
|
@init()
|
38
|
-
|
39
|
+
|
39
40
|
# Setup and bind to related events
|
40
41
|
init: ->
|
41
|
-
|
42
|
+
|
42
43
|
# Debounce scroll event to improve performance
|
43
44
|
scrollTimeout = null
|
44
45
|
scrollHandler = (=> @check())
|
45
|
-
|
46
|
-
|
46
|
+
|
47
|
+
@$context.scroll ->
|
47
48
|
if scrollTimeout
|
48
49
|
clearTimeout(scrollTimeout)
|
49
50
|
scrollTimeout = null
|
50
51
|
scrollTimeout = setTimeout(scrollHandler, 250)
|
51
|
-
|
52
|
+
|
52
53
|
# Internal helper for logging messages
|
53
54
|
_log: (msg) ->
|
54
55
|
console?.log(msg) if @options.debug
|
55
|
-
|
56
|
+
|
56
57
|
# Check the distance of the nav selector from the bottom of the window and fire
|
57
58
|
# load event if close enough
|
58
59
|
check: ->
|
@@ -60,9 +61,9 @@ Released under the MIT License
|
|
60
61
|
if nav.size() == 0
|
61
62
|
@_log "No more pages to load"
|
62
63
|
else
|
63
|
-
windowBottom =
|
64
|
+
windowBottom = @$context.scrollTop() + @$context.height()
|
64
65
|
distance = nav.offset().top - windowBottom
|
65
|
-
|
66
|
+
|
66
67
|
if @options.state.paused
|
67
68
|
@_log "Paused"
|
68
69
|
else if @options.state.loading
|
@@ -71,56 +72,56 @@ Released under the MIT License
|
|
71
72
|
@_log "#{distance - @options.buffer}px remaining..."
|
72
73
|
else
|
73
74
|
@next() # load the next page
|
74
|
-
|
75
|
+
|
75
76
|
# Load the next page
|
76
77
|
next: ->
|
77
78
|
if @options.state.done
|
78
79
|
@_log "Loaded all pages"
|
79
80
|
else
|
80
81
|
@_loading()
|
81
|
-
|
82
|
+
|
82
83
|
$.getScript(@$container.find(@options.navSelector).attr('href'))
|
83
84
|
.done(=> @_success())
|
84
85
|
.fail(=> @_error())
|
85
|
-
|
86
|
+
|
86
87
|
_loading: ->
|
87
88
|
@options.state.loading = true
|
88
89
|
@_log "Loading next page..."
|
89
90
|
if typeof @options.loading is 'function'
|
90
91
|
@$container.find(@options.navSelector).each(@options.loading)
|
91
|
-
|
92
|
+
|
92
93
|
_success: ->
|
93
94
|
@options.state.loading = false
|
94
95
|
@_log "New page loaded!"
|
95
96
|
if typeof @options.success is 'function'
|
96
97
|
@$container.find(@options.navSelector).each(@options.success)
|
97
|
-
|
98
|
+
|
98
99
|
_error: ->
|
99
100
|
@options.state.loading = false
|
100
101
|
@_log "Error loading new page :("
|
101
102
|
if typeof @options.error is 'function'
|
102
103
|
@$container.find(@options.navSelector).each(@options.error)
|
103
|
-
|
104
|
+
|
104
105
|
# Pause firing of events on scroll
|
105
106
|
pause: ->
|
106
107
|
@options.state.paused = true
|
107
108
|
@_log "Scroll checks paused"
|
108
|
-
|
109
|
+
|
109
110
|
# Resume firing of events on scroll
|
110
111
|
resume: ->
|
111
112
|
@options.state.paused = false
|
112
113
|
@_log "Scroll checks resumed"
|
113
114
|
@check()
|
114
|
-
|
115
|
+
|
115
116
|
# Define the plugin
|
116
117
|
$.fn.extend infinitePages: (option, args...) ->
|
117
118
|
@each ->
|
118
119
|
$this = $(this)
|
119
120
|
data = $this.data('infinitepages')
|
120
|
-
|
121
|
+
|
121
122
|
if !data
|
122
123
|
$this.data 'infinitepages', (data = new InfinitePages(this, option))
|
123
124
|
if typeof option == 'string'
|
124
125
|
data[option].apply(data, args)
|
125
|
-
|
126
|
+
|
126
127
|
) window.jQuery, window
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jquery-infinite-pages
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zach Millman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-02-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jquery-rails
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ! '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: coffee-script
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ! '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: railties
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|