ajaxify_rails 0.7.0 → 0.7.1
Sign up to get free protection for your applications and to get access to all the features.
data/lib/ajaxify_rails.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "ajaxify_rails/version"
|
2
2
|
require "ajaxify_rails/action_controller_additions"
|
3
|
+
require "ajaxify_rails/action_caching_patch"
|
3
4
|
|
4
5
|
module AjaxifyRails
|
5
6
|
|
@@ -12,4 +13,4 @@ module AjaxifyRails
|
|
12
13
|
include ActionControllerAdditions
|
13
14
|
end
|
14
15
|
|
15
|
-
end
|
16
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# Makes Ajaxify work properly with action cached actions.
|
2
|
+
module ActionController
|
3
|
+
module Caching
|
4
|
+
module Actions
|
5
|
+
|
6
|
+
protected
|
7
|
+
|
8
|
+
class ActionCacheFilter #:nodoc:
|
9
|
+
|
10
|
+
alias_method :original_filter, :filter
|
11
|
+
|
12
|
+
def filter(controller)
|
13
|
+
original_filter controller
|
14
|
+
controller.ajaxify_add_meta_tags
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -14,6 +14,15 @@ module ActionControllerAdditions
|
|
14
14
|
end
|
15
15
|
|
16
16
|
|
17
|
+
def ajaxify_add_meta_tags
|
18
|
+
ajaxify_add_meta_tag( ajaxify_assets_digest_meta_tag ) if !request.xhr?
|
19
|
+
|
20
|
+
# 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
|
21
|
+
# the ajaxify javascript
|
22
|
+
ajaxify_add_meta_tag( view_context.tag(:meta, name: 'ajaxify:dont_correct_url', content: 'true') ) if request.post? and not request.xhr?
|
23
|
+
end
|
24
|
+
|
25
|
+
|
17
26
|
private
|
18
27
|
|
19
28
|
def ajaxified?
|
@@ -50,16 +59,13 @@ module ActionControllerAdditions
|
|
50
59
|
flashes: flashes.to_json } )
|
51
60
|
response.body = response_body[0]
|
52
61
|
response.headers['Ajaxify-Assets-Digest'] = ajaxify_assets_digest
|
53
|
-
|
62
|
+
|
54
63
|
return
|
55
64
|
end
|
56
|
-
super
|
57
65
|
|
58
|
-
|
66
|
+
super
|
59
67
|
|
60
|
-
#
|
61
|
-
# the ajaxify javascript
|
62
|
-
ajaxify_add_meta_tag( view_context.tag(:meta, name: 'ajaxify:dont_correct_url', content: 'true') ) if request.post? and not request.xhr?
|
68
|
+
ajaxify_add_meta_tags # doesn't work for action cached pages right now
|
63
69
|
|
64
70
|
return
|
65
71
|
end
|
@@ -99,8 +105,7 @@ module ActionControllerAdditions
|
|
99
105
|
# Meta tag for asset change detection - inspired by wiselinks
|
100
106
|
#
|
101
107
|
def ajaxify_assets_digest_meta_tag
|
102
|
-
|
103
|
-
view_context.tag(:meta, name: 'ajaxify:assets-digest', content: ajaxify_assets_digest)
|
108
|
+
view_context.tag(:meta, name: 'ajaxify:assets-digest', content: ajaxify_assets_digest)
|
104
109
|
end
|
105
110
|
|
106
111
|
def ajaxify_assets_digest
|
@@ -109,10 +114,11 @@ module ActionControllerAdditions
|
|
109
114
|
end
|
110
115
|
|
111
116
|
def ajaxify_add_meta_tag meta_tag
|
112
|
-
response.body = response_body[0].sub('<head>', "<head>\n #{meta_tag}")
|
117
|
+
response.body = response_body[0].sub('<head>', "<head>\n #{meta_tag}")
|
113
118
|
end
|
114
119
|
|
115
120
|
end
|
116
121
|
|
117
122
|
end
|
123
|
+
|
118
124
|
end
|
@@ -183,7 +183,7 @@ on_ajaxify_success = (data, status, jqXHR, pop_state, options) ->
|
|
183
183
|
if options.url != current_url
|
184
184
|
options.url = current_url.replace(/(&|&|\?)ajaxify_redirect=true/,'')
|
185
185
|
options.type = 'GET'
|
186
|
-
|
186
|
+
|
187
187
|
unless original_request_type and original_request_type.toLowerCase() == 'post'
|
188
188
|
reload_page_if_assets_stale options.url, jqXHR
|
189
189
|
|
@@ -286,7 +286,7 @@ protocol_with_host = ->
|
|
286
286
|
|
287
287
|
|
288
288
|
push_state = ->
|
289
|
-
push_state_enabled and window.history.pushState
|
289
|
+
push_state_enabled and window.history.pushState
|
290
290
|
|
291
291
|
|
292
292
|
set_scroll_to_top = ($link_or_form) ->
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ajaxify_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -195,6 +195,7 @@ files:
|
|
195
195
|
- Rakefile
|
196
196
|
- ajaxify_rails.gemspec
|
197
197
|
- lib/ajaxify_rails.rb
|
198
|
+
- lib/ajaxify_rails/action_caching_patch.rb
|
198
199
|
- lib/ajaxify_rails/action_controller_additions.rb
|
199
200
|
- lib/ajaxify_rails/version.rb
|
200
201
|
- spec/ajaxify_test/Rakefile
|