ajaxify_rails 0.1.2 → 0.1.3
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 +5 -4
 - data/lib/ajaxify_rails/version.rb +1 -1
 - data/vendor/assets/javascripts/ajaxify_rails.js.coffee +19 -19
 - metadata +4 -4
 
    
        data/README.md
    CHANGED
    
    | 
         @@ -10,7 +10,7 @@ Also form submissions are automatically turned into Ajax requests. 
     | 
|
| 
       10 
10 
     | 
    
         
             
            Features: 
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
            - Uses the html5 history interface for changing the url and making the browser's back and forward buttons work with Ajax.
         
     | 
| 
       13 
     | 
    
         
            -
            - Falls back to a hash based approach for browsers without the history interface (like Internet Explorer version <10).
         
     | 
| 
      
 13 
     | 
    
         
            +
            - Falls back to a hash based URL approach for browsers without the history interface (like Internet Explorer version <10).
         
     | 
| 
       14 
14 
     | 
    
         
             
            - Hash based and non-hash URLs are interchangeable.
         
     | 
| 
       15 
15 
     | 
    
         
             
            - Transparently handles redirects and supports page titles and flash messages.
         
     | 
| 
       16 
16 
     | 
    
         
             
            - Tested with Chrome, Firefox, Safari and Internet Explorer 8+.
         
     | 
| 
         @@ -107,7 +107,7 @@ Also make sure that you supply invisible wrapper tags in your layout for each fl 
     | 
|
| 
       107 
107 
     | 
    
         
             
                #notice{ style: "#{'display:none' unless flash[:notice]}" }
         
     | 
| 
       108 
108 
     | 
    
         
             
                  = flash[:notice] 
         
     | 
| 
       109 
109 
     | 
    
         | 
| 
       110 
     | 
    
         
            -
            ###  
     | 
| 
      
 110 
     | 
    
         
            +
            ### Full Page Reloads
         
     | 
| 
       111 
111 
     | 
    
         | 
| 
       112 
112 
     | 
    
         
             
            Sometimes requests change the layout of the page so significantly that loading only the main content via Ajax
         
     | 
| 
       113 
113 
     | 
    
         
             
            and doing some minor layout tweaks here and there are simply not sufficient.
         
     | 
| 
         @@ -178,8 +178,9 @@ Ajaxify provides a few jQuery events you can bind to: 
     | 
|
| 
       178 
178 
     | 
    
         | 
| 
       179 
179 
     | 
    
         
             
            ### Javascript
         
     | 
| 
       180 
180 
     | 
    
         | 
| 
       181 
     | 
    
         
            -
             
     | 
| 
       182 
     | 
    
         
            -
             
     | 
| 
      
 181 
     | 
    
         
            +
            In addition to calling your javascript e.g. in a dom ready event handler (or in your layout), you should also
         
     | 
| 
      
 182 
     | 
    
         
            +
            call it in an `ajaxify:content_loaded` event handler, to make sure it is executed after content has
         
     | 
| 
      
 183 
     | 
    
         
            +
            loaded via Ajaxify.
         
     | 
| 
       183 
184 
     | 
    
         | 
| 
       184 
185 
     | 
    
         | 
| 
       185 
186 
     | 
    
         
             
            ### Toggle Ajaxify
         
     | 
| 
         @@ -12,6 +12,8 @@ initial_history_state = 
     | 
|
| 
       12 
12 
     | 
    
         
             
              data:
         
     | 
| 
       13 
13 
     | 
    
         
             
                ajaxified: true
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
      
 15 
     | 
    
         
            +
            base_path_regexp_cache = null
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
       15 
17 
     | 
    
         | 
| 
       16 
18 
     | 
    
         
             
            activate = (new_active = true) ->
         
     | 
| 
       17 
19 
     | 
    
         
             
              active = new_active
         
     | 
| 
         @@ -78,12 +80,23 @@ ajaxify = -> 
     | 
|
| 
       78 
80 
     | 
    
         
             
                  ignore_hash_change = false
         
     | 
| 
       79 
81 
     | 
    
         | 
| 
       80 
82 
     | 
    
         | 
| 
      
 83 
     | 
    
         
            +
            base_path_regexp = ->
         
     | 
| 
      
 84 
     | 
    
         
            +
              return null unless base_paths
         
     | 
| 
      
 85 
     | 
    
         
            +
              return base_path_regexp_cache if base_path_regexp_cache
         
     | 
| 
      
 86 
     | 
    
         
            +
              # match starting and ending with base path, e.g. "^\/en$" (i.e. we are at the base path root) or
         
     | 
| 
      
 87 
     | 
    
         
            +
              # starting with base path and continuing with '/', e.g. "^\/en\/" (i.e. we are NOT at the base path root) or
         
     | 
| 
      
 88 
     | 
    
         
            +
              # starting with base path and continuing with '?', e.g. "^\/en\?" (i.e. we are at the base path root and have query params)
         
     | 
| 
      
 89 
     | 
    
         
            +
              base_path_regexp_cache = new RegExp("^\/(#{ $.map(base_paths, (el) ->
         
     | 
| 
      
 90 
     | 
    
         
            +
                el = regexp_escape el
         
     | 
| 
      
 91 
     | 
    
         
            +
                "##{el}($|\/|\\?)"
         
     | 
| 
      
 92 
     | 
    
         
            +
              ).join('|')})", 'i')
         
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
       81 
95 
     | 
    
         
             
            # load content from url hash (non history interface browsers)
         
     | 
| 
       82 
96 
     | 
    
         
             
            on_hash_change = ->
         
     | 
| 
       83 
97 
     | 
    
         
             
              url = window.location.hash.replace(/#/, "")
         
     | 
| 
       84 
98 
     | 
    
         | 
| 
       85 
     | 
    
         
            -
               
     | 
| 
       86 
     | 
    
         
            -
              if match = window.location.pathname.match(base_path_regexp)
         
     | 
| 
      
 99 
     | 
    
         
            +
              if match = window.location.pathname.match(base_path_regexp())
         
     | 
| 
       87 
100 
     | 
    
         
             
                url = match[0] + url
         
     | 
| 
       88 
101 
     | 
    
         | 
| 
       89 
102 
     | 
    
         
             
              url = '/' if url == ''
         
     | 
| 
         @@ -192,25 +205,13 @@ update_url = (options, pop_state = false) -> 
     | 
|
| 
       192 
205 
     | 
    
         
             
                  ignore_hash_change = true  # for non histroy interface browsers: avoids loading the page for hash changes caused by link clicks
         
     | 
| 
       193 
206 
     | 
    
         
             
                  hash = "#{options.url.replace(new RegExp(protocol_with_host()), '')}"
         
     | 
| 
       194 
207 
     | 
    
         | 
| 
       195 
     | 
    
         
            -
                   
     | 
| 
       196 
     | 
    
         
            -
             
     | 
| 
       197 
     | 
    
         
            -
                    hash = hash.replace(base_path_regexp, '')
         
     | 
| 
      
 208 
     | 
    
         
            +
                  if base_path_regexp()
         
     | 
| 
      
 209 
     | 
    
         
            +
                    hash = hash.replace(base_path_regexp(), '')
         
     | 
| 
       198 
210 
     | 
    
         
             
                    hash = "/#{hash}" unless hash == '' or hash.indexOf('/') == 0
         
     | 
| 
       199 
211 
     | 
    
         | 
| 
       200 
212 
     | 
    
         
             
                  window.location.hash = hash
         
     | 
| 
       201 
213 
     | 
    
         | 
| 
       202 
214 
     | 
    
         | 
| 
       203 
     | 
    
         
            -
            base_path_regexp = ->
         
     | 
| 
       204 
     | 
    
         
            -
              return null unless base_paths
         
     | 
| 
       205 
     | 
    
         
            -
              # match starting and ending with base path, e.g. "^\/en$" (i.e. we are at the base path root) or
         
     | 
| 
       206 
     | 
    
         
            -
              # starting with base path and continuing with '/', e.g. "^\/en\/" (i.e. we are NOT at the base path root) or
         
     | 
| 
       207 
     | 
    
         
            -
              # starting with base path and continuing with '?', e.g. "^\/en\?" (i.e. we are at the base path root and have query params)
         
     | 
| 
       208 
     | 
    
         
            -
              new RegExp("^\/(#{ $.map(base_paths, (el) ->
         
     | 
| 
       209 
     | 
    
         
            -
                el = regexp_escape el
         
     | 
| 
       210 
     | 
    
         
            -
                "##{el}($|\/|\\?)"
         
     | 
| 
       211 
     | 
    
         
            -
              ).join('|')})", 'i')
         
     | 
| 
       212 
     | 
    
         
            -
             
     | 
| 
       213 
     | 
    
         
            -
             
     | 
| 
       214 
215 
     | 
    
         
             
            correct_url = ->
         
     | 
| 
       215 
216 
     | 
    
         
             
              if active
         
     | 
| 
       216 
217 
     | 
    
         | 
| 
         @@ -234,8 +235,7 @@ correct_url = -> 
     | 
|
| 
       234 
235 
     | 
    
         
             
                      window.location.href = "#{protocol_with_host()}/#/#{window.location.search}" # move search behind #
         
     | 
| 
       235 
236 
     | 
    
         
             
                    return
         
     | 
| 
       236 
237 
     | 
    
         | 
| 
       237 
     | 
    
         
            -
                  base_path_regexp = base_path_regexp()
         
     | 
| 
       238 
     | 
    
         
            -
                  if base_path_regexp and (match = window.location.pathname.match(base_path_regexp))
         
     | 
| 
      
 238 
     | 
    
         
            +
                  if base_path_regexp() and (match = window.location.pathname.match(base_path_regexp()))
         
     | 
| 
       239 
239 
     | 
    
         
             
                    if match[0] == window.location.pathname
         
     | 
| 
       240 
240 
     | 
    
         
             
                      if window.location.search == ''
         
     | 
| 
       241 
241 
     | 
    
         
             
                        return   # we are on a base path here already, so don't do anything
         
     | 
| 
         @@ -270,7 +270,7 @@ protocol_with_host = -> 
     | 
|
| 
       270 
270 
     | 
    
         
             
              "#{loc.protocol}//#{loc.host}"
         
     | 
| 
       271 
271 
     | 
    
         | 
| 
       272 
272 
     | 
    
         | 
| 
       273 
     | 
    
         
            -
            @Ajaxify = { init, ajaxify, load, activate, set_content_container, get_content_container }
         
     | 
| 
      
 273 
     | 
    
         
            +
            @Ajaxify = { init, ajaxify, load, update_url, activate, set_content_container, get_content_container }
         
     | 
| 
       274 
274 
     | 
    
         | 
| 
       275 
275 
     | 
    
         | 
| 
       276 
276 
     | 
    
         
             
            jQuery ->
         
     | 
    
        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.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.3
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2012-10- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2012-10-17 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: rails
         
     | 
| 
         @@ -66,7 +66,7 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       66 
66 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       67 
67 
     | 
    
         
             
                  segments:
         
     | 
| 
       68 
68 
     | 
    
         
             
                  - 0
         
     | 
| 
       69 
     | 
    
         
            -
                  hash:  
     | 
| 
      
 69 
     | 
    
         
            +
                  hash: -684738438102731951
         
     | 
| 
       70 
70 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       71 
71 
     | 
    
         
             
              none: false
         
     | 
| 
       72 
72 
     | 
    
         
             
              requirements:
         
     | 
| 
         @@ -75,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       75 
75 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       76 
76 
     | 
    
         
             
                  segments:
         
     | 
| 
       77 
77 
     | 
    
         
             
                  - 0
         
     | 
| 
       78 
     | 
    
         
            -
                  hash:  
     | 
| 
      
 78 
     | 
    
         
            +
                  hash: -684738438102731951
         
     | 
| 
       79 
79 
     | 
    
         
             
            requirements: []
         
     | 
| 
       80 
80 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       81 
81 
     | 
    
         
             
            rubygems_version: 1.8.24
         
     |