ajaxify_rails 0.5.5 → 0.7.0beta
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.
data/README.md
CHANGED
@@ -78,17 +78,6 @@ This is simple. Ajaxify automatically inserts a loader div with the class `ajaxi
|
|
78
78
|
the content wrapper before starting an Ajax request. So just supply styles for `.ajaxify_loader` in your css, with an
|
79
79
|
animated gif as a background.
|
80
80
|
|
81
|
-
### Scrolling
|
82
|
-
|
83
|
-
By default, ajaxify scrolls to the top of the screen when you click on a link or submit a form.
|
84
|
-
You can change this default behavior by setting 'scroll_to_top' to false on init.
|
85
|
-
|
86
|
-
Ajaxify.init
|
87
|
-
scroll_to_top: false
|
88
|
-
|
89
|
-
You can also change the setting for individual links by adding classes:
|
90
|
-
= link_to "Scroll to top", scroll_to_top_path, class: 'scroll_to_top'
|
91
|
-
= link_to "Don't scroll", no_scroll_path, class: 'no_scroll_to_top'
|
92
81
|
|
93
82
|
### Page Title
|
94
83
|
|
@@ -200,6 +189,20 @@ loaded via Ajaxify.
|
|
200
189
|
You can temporarily deactivate Ajaxify by calling `Ajaxify.activate(false)`. You can switch it on again with `Ajaxify.activate()`.
|
201
190
|
|
202
191
|
|
192
|
+
### Scrolling
|
193
|
+
|
194
|
+
By default, ajaxify scrolls to the top of the screen when you click on a link or submit a form.
|
195
|
+
You can change this default behavior by setting 'scroll_to_top' to false on init.
|
196
|
+
|
197
|
+
Ajaxify.init
|
198
|
+
scroll_to_top: false
|
199
|
+
|
200
|
+
You can also change the setting for individual links by adding classes:
|
201
|
+
|
202
|
+
= link_to "Scroll to top", scroll_to_top_path, class: 'scroll_to_top'
|
203
|
+
= link_to "Don't scroll", no_scroll_path, class: 'no_scroll_to_top'
|
204
|
+
|
205
|
+
|
203
206
|
## Contributing
|
204
207
|
|
205
208
|
1. Fork it
|
@@ -49,14 +49,18 @@ module ActionControllerAdditions
|
|
49
49
|
data: { page_title: page_title,
|
50
50
|
flashes: flashes.to_json } )
|
51
51
|
response.body = response_body[0]
|
52
|
+
response.headers['Ajaxify-Assets-Digest'] = ajaxify_assets_digest
|
53
|
+
|
52
54
|
return
|
53
55
|
end
|
54
56
|
super
|
57
|
+
|
58
|
+
ajaxify_add_meta_tag( ajaxify_assets_digest_meta_tag ) if !request.xhr?
|
59
|
+
|
55
60
|
# Correcting urls for non history api browsers wont work for post requests so add a meta tag to the response body to communicate this to
|
56
61
|
# the ajaxify javascript
|
57
|
-
if request.post? and not request.xhr?
|
58
|
-
|
59
|
-
end
|
62
|
+
ajaxify_add_meta_tag( view_context.tag(:meta, name: 'ajaxify:dont_correct_url', content: 'true') ) if request.post? and not request.xhr?
|
63
|
+
|
60
64
|
return
|
61
65
|
end
|
62
66
|
|
@@ -91,6 +95,23 @@ module ActionControllerAdditions
|
|
91
95
|
sub(/(&|\?)ajaxified=true/, '').
|
92
96
|
sub(/(&|\?)ajaxify_redirect=true/, '')
|
93
97
|
end
|
98
|
+
|
99
|
+
# Meta tag for asset change detection - inspired by wiselinks
|
100
|
+
#
|
101
|
+
def ajaxify_assets_digest_meta_tag
|
102
|
+
|
103
|
+
view_context.tag(:meta, name: 'ajaxify:assets-digest', content: ajaxify_assets_digest)
|
104
|
+
end
|
105
|
+
|
106
|
+
def ajaxify_assets_digest
|
107
|
+
digests = Rails.application.config.assets.digests
|
108
|
+
digests ? Digest::MD5.hexdigest(digests.values.join) : ''
|
109
|
+
end
|
110
|
+
|
111
|
+
def ajaxify_add_meta_tag meta_tag
|
112
|
+
response.body = response_body[0].sub('<head>', "<head>\n #{meta_tag}")
|
113
|
+
end
|
114
|
+
|
94
115
|
end
|
95
116
|
|
96
117
|
end
|
@@ -178,10 +178,14 @@ on_ajaxify_success = (data, status, jqXHR, pop_state, options) ->
|
|
178
178
|
|
179
179
|
# Correct the url after a redirect and when it has the ajaxify param in it.
|
180
180
|
# The latter can happen e.g. for pagination links that are auto generated.
|
181
|
+
original_request_type = options.type
|
181
182
|
current_url = $('#ajaxify_content #ajaxify_location').html()
|
182
183
|
if options.url != current_url
|
183
184
|
options.url = current_url.replace(/(&|&|\?)ajaxify_redirect=true/,'')
|
184
185
|
options.type = 'GET'
|
186
|
+
|
187
|
+
unless original_request_type and original_request_type.toLowerCase() == 'post'
|
188
|
+
reload_page_if_assets_stale options.url, jqXHR
|
185
189
|
|
186
190
|
update_url options, pop_state
|
187
191
|
|
@@ -296,6 +300,12 @@ scroll_page_to_top = ->
|
|
296
300
|
scrollTop:0
|
297
301
|
, 500
|
298
302
|
|
303
|
+
|
304
|
+
reload_page_if_assets_stale = (url, jqXHR) ->
|
305
|
+
digest_header = jqXHR.getResponseHeader('Ajaxify-Assets-Digest')
|
306
|
+
if digest_header and digest_header != $("meta[name='ajaxify:assets-digest']").attr('content')
|
307
|
+
document.location.href = url
|
308
|
+
|
299
309
|
# --------------------------------------------------------------------------------------------------------------------
|
300
310
|
# public interface
|
301
311
|
# --------------------------------------------------------------------------------------------------------------------
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ajaxify_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.7.0beta
|
5
|
+
prerelease: 5
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Nico Ritsche
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -260,16 +260,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
260
260
|
version: '0'
|
261
261
|
segments:
|
262
262
|
- 0
|
263
|
-
hash: -
|
263
|
+
hash: -96360880157980810
|
264
264
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
265
265
|
none: false
|
266
266
|
requirements:
|
267
|
-
- - ! '
|
267
|
+
- - ! '>'
|
268
268
|
- !ruby/object:Gem::Version
|
269
|
-
version:
|
270
|
-
segments:
|
271
|
-
- 0
|
272
|
-
hash: -1886047311222868249
|
269
|
+
version: 1.3.1
|
273
270
|
requirements: []
|
274
271
|
rubyforge_project:
|
275
272
|
rubygems_version: 1.8.25
|