ajax 1.1.6 → 1.1.7
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/Gemfile.lock +1 -1
- data/README.rdoc +2 -1
- data/VERSION +1 -1
- data/lib/ajax/action_controller.rb +39 -21
- data/lib/ajax/railtie.rb +11 -1
- data/public/javascripts/ajax.js +6 -4
- metadata +4 -4
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/README.rdoc
    CHANGED
    
    | @@ -10,7 +10,8 @@ As of May 2010 Ajax is being used live in production on kazaa.com[http://www.kaz | |
| 10 10 |  | 
| 11 11 | 
             
            == Changelog
         | 
| 12 12 |  | 
| 13 | 
            -
            * v1.1. | 
| 13 | 
            +
            * v1.1.7: Fix layout handling for Rails 3
         | 
| 14 | 
            +
            * v1.1.6: Fix redirect_to to handle resourceful redirects. [Rails 3]
         | 
| 14 15 | 
             
            * v1.1.5: Fix inclusion of +controller+ and +layout+ in <tt>Ajax-Info</tt> response header.  Improve RSpec 1.* integration
         | 
| 15 16 | 
             
            * v1.1.4: Fix RSpec 2 integration
         | 
| 16 17 | 
             
            * v1.1.3: Guard against possible nil values for the redirect_to url and the referrers
         | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            1.1. | 
| 1 | 
            +
            1.1.7
         | 
| @@ -39,7 +39,7 @@ module Ajax | |
| 39 39 | 
             
                  # layout and render that.  If it can't be found, the default layout
         | 
| 40 40 | 
             
                  # is used.
         | 
| 41 41 | 
             
                  def ajax_layout(template_name)
         | 
| 42 | 
            -
                    write_inheritable_attribute(:ajax_layout, template_name)
         | 
| 42 | 
            +
                    (self.is_a?(Class) ? self : self.class).write_inheritable_attribute(:ajax_layout, template_name)
         | 
| 43 43 | 
             
                  end
         | 
| 44 44 | 
             
                end
         | 
| 45 45 |  | 
| @@ -103,9 +103,11 @@ module Ajax | |
| 103 103 |  | 
| 104 104 | 
             
                      default = pick_layout(options)
         | 
| 105 105 | 
             
                      default = default.path_without_format_and_extension unless default.nil?
         | 
| 106 | 
            -
                      ajax_layout = _layout_for_ajax(default)
         | 
| 107 | 
            -
             | 
| 108 | 
            -
             | 
| 106 | 
            +
                      if ajax_layout = _layout_for_ajax(default)
         | 
| 107 | 
            +
                        if ajax_layout = _find_ajax_layout(ajax_layout)
         | 
| 108 | 
            +
                          options[:layout] = ajax_layout.path_without_format_and_extension
         | 
| 109 | 
            +
                        end
         | 
| 110 | 
            +
                      end
         | 
| 109 111 | 
             
                    end
         | 
| 110 112 | 
             
                    render_without_ajax(options, extra_options, &block)
         | 
| 111 113 | 
             
                  end
         | 
| @@ -121,18 +123,14 @@ module Ajax | |
| 121 123 | 
             
                    end
         | 
| 122 124 | 
             
                  end
         | 
| 123 125 |  | 
| 124 | 
            -
             | 
| 125 | 
            -
                   | 
| 126 | 
            -
             | 
| 127 | 
            -
                    if  | 
| 128 | 
            -
                       | 
| 126 | 
            +
             | 
| 127 | 
            +
                  def _layout_for_option(name)
         | 
| 128 | 
            +
                    default = super
         | 
| 129 | 
            +
                    if !request.xhr? || !Ajax.is_enabled?
         | 
| 130 | 
            +
                      default
         | 
| 129 131 | 
             
                    else
         | 
| 130 | 
            -
                       | 
| 131 | 
            -
                       | 
| 132 | 
            -
                        ajax_layout.virtual_path
         | 
| 133 | 
            -
                      else
         | 
| 134 | 
            -
                        layout_name
         | 
| 135 | 
            -
                      end
         | 
| 132 | 
            +
                      ajax_layout = _layout_for_ajax(default)
         | 
| 133 | 
            +
                      ajax_layout && template_exists?(ajax_layout) ? ajax_layout : default
         | 
| 136 134 | 
             
                    end
         | 
| 137 135 | 
             
                  end
         | 
| 138 136 | 
             
                end
         | 
| @@ -147,8 +145,17 @@ module Ajax | |
| 147 145 | 
             
                #
         | 
| 148 146 | 
             
                # +controller+ is the result of calling ActionController#controller_name, so
         | 
| 149 147 | 
             
                # if your controller is ApplicationController the value will be <tt>'application'</tt>.
         | 
| 148 | 
            +
                #
         | 
| 149 | 
            +
                # +layout+ is the name of the layout without any path or extension.  So for example if
         | 
| 150 | 
            +
                # layouts/simple.html.erb or layouts/ajax/simple.html.erb are rendered the
         | 
| 151 | 
            +
                # value of +layout+ would be <tt>'simple'</tt> in both cases.
         | 
| 150 152 | 
             
                def serialize_ajax_info
         | 
| 151 | 
            -
                   | 
| 153 | 
            +
                  layout_name = if Ajax.app.rails?(3)
         | 
| 154 | 
            +
                      @_rendered_layout && @_rendered_layout.variable_name
         | 
| 155 | 
            +
                    else
         | 
| 156 | 
            +
                      active_layout
         | 
| 157 | 
            +
                    end
         | 
| 158 | 
            +
                  Ajax.set_header(response, :layout, layout_name)
         | 
| 152 159 | 
             
                  Ajax.set_header(response, :controller, self.class.controller_name)
         | 
| 153 160 | 
             
                  response.headers['Ajax-Info'] = Ajax.send(:serialize_hash, response.headers['Ajax-Info'])
         | 
| 154 161 | 
             
                end
         | 
| @@ -245,15 +252,26 @@ END | |
| 245 252 | 
             
                  ajax_layout = if ajax_layout.nil? && default.nil?
         | 
| 246 253 | 
             
                      nil
         | 
| 247 254 | 
             
                    elsif ajax_layout.nil? && !default.nil? # look for one with the default name in layouts/ajax
         | 
| 248 | 
            -
                       | 
| 249 | 
            -
             | 
| 250 | 
            -
                       | 
| 251 | 
            -
             | 
| 255 | 
            +
                      if default =~ /^layouts\/ajax\//
         | 
| 256 | 
            +
                        default
         | 
| 257 | 
            +
                      elsif !(default =~ /^ajax\//)
         | 
| 258 | 
            +
                        "ajax/#{default.sub(/layouts(\/)?/, '')}"
         | 
| 259 | 
            +
                      else
         | 
| 260 | 
            +
                        default
         | 
| 261 | 
            +
                      end
         | 
| 262 | 
            +
                    elsif ajax_layout.include?(?/) # path to specific layout
         | 
| 252 263 | 
             
                      ajax_layout
         | 
| 264 | 
            +
                    else # layout name, look in ajax/
         | 
| 265 | 
            +
                      "ajax/#{ajax_layout}"
         | 
| 253 266 | 
             
                    end
         | 
| 267 | 
            +
                  ajax_layout = ajax_layout =~ /\blayouts/ ? ajax_layout : "layouts/#{ajax_layout}" if ajax_layout
         | 
| 268 | 
            +
                  ajax_layout
         | 
| 269 | 
            +
                end
         | 
| 270 | 
            +
             | 
| 271 | 
            +
                def _find_ajax_layout(ajax_layout)
         | 
| 254 272 | 
             
                  Ajax.app.rails?(3) ? find_template(ajax_layout) : find_layout(ajax_layout, 'html') if !ajax_layout.nil?
         | 
| 255 273 | 
             
                rescue ::ActionView::MissingTemplate
         | 
| 256 | 
            -
                  Ajax.logger. | 
| 274 | 
            +
                  Ajax.logger.warn("[ajax] layout #{ajax_layout.inspect} not found.  Using default.")
         | 
| 257 275 | 
             
                  nil
         | 
| 258 276 | 
             
                end
         | 
| 259 277 | 
             
              end
         | 
    
        data/lib/ajax/railtie.rb
    CHANGED
    
    | @@ -10,6 +10,16 @@ module Ajax | |
| 10 10 | 
             
                initializer 'ajax.action_integration' do
         | 
| 11 11 | 
             
                  ActiveSupport.on_load :action_view do
         | 
| 12 12 | 
             
                    include Ajax::ActionView
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                    self.class_eval do
         | 
| 15 | 
            +
                      unless instance_methods.include?('_render_layout_with_tracking')
         | 
| 16 | 
            +
                        def _render_layout_with_tracking(layout, locals, &block)
         | 
| 17 | 
            +
                          controller.instance_variable_set(:@_rendered_layout, layout)
         | 
| 18 | 
            +
                          _render_layout_without_tracking(layout, locals, &block)
         | 
| 19 | 
            +
                        end
         | 
| 20 | 
            +
                        alias_method_chain :_render_layout, :tracking
         | 
| 21 | 
            +
                      end
         | 
| 22 | 
            +
                    end
         | 
| 13 23 | 
             
                  end
         | 
| 14 24 | 
             
                  ActiveSupport.on_load :action_controller do
         | 
| 15 25 | 
             
                    include Ajax::ActionController
         | 
| @@ -28,4 +38,4 @@ module Ajax | |
| 28 38 | 
             
                  Ajax.logger = ::Rails.logger
         | 
| 29 39 | 
             
                end
         | 
| 30 40 | 
             
              end
         | 
| 31 | 
            -
            end
         | 
| 41 | 
            +
            end
         | 
    
        data/public/javascripts/ajax.js
    CHANGED
    
    | @@ -682,10 +682,12 @@ var Ajax = function(options) { | |
| 682 682 | 
             
               */
         | 
| 683 683 | 
             
              self.hideLoadingImage = function() {
         | 
| 684 684 | 
             
                // check if a new request has already started
         | 
| 685 | 
            -
                 | 
| 686 | 
            -
                   | 
| 687 | 
            -
             | 
| 688 | 
            -
             | 
| 685 | 
            +
                try {
         | 
| 686 | 
            +
                  if (self.current_request && self.current_request.status == 0) {
         | 
| 687 | 
            +
                    console.log("[AJAX] aborting hideLoadingImage.. ");
         | 
| 688 | 
            +
                    return;
         | 
| 689 | 
            +
                  }
         | 
| 690 | 
            +
                } catch(e) {}
         | 
| 689 691 | 
             
                if (!self.show_loading_image) { return; }
         | 
| 690 692 | 
             
                if (!self.hide_loading_image_callback) {
         | 
| 691 693 | 
             
                  $(document).unbind('mousemove', self.updateImagePosition);
         | 
    
        metadata
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: ajax
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              hash:  | 
| 4 | 
            +
              hash: 29
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
              segments: 
         | 
| 7 7 | 
             
              - 1
         | 
| 8 8 | 
             
              - 1
         | 
| 9 | 
            -
              -  | 
| 10 | 
            -
              version: 1.1. | 
| 9 | 
            +
              - 7
         | 
| 10 | 
            +
              version: 1.1.7
         | 
| 11 11 | 
             
            platform: ruby
         | 
| 12 12 | 
             
            authors: 
         | 
| 13 13 | 
             
            - Karl Varga
         | 
| @@ -15,7 +15,7 @@ autorequire: | |
| 15 15 | 
             
            bindir: bin
         | 
| 16 16 | 
             
            cert_chain: []
         | 
| 17 17 |  | 
| 18 | 
            -
            date: 2011-05- | 
| 18 | 
            +
            date: 2011-05-13 00:00:00 -07:00
         | 
| 19 19 | 
             
            default_executable: 
         | 
| 20 20 | 
             
            dependencies: 
         | 
| 21 21 | 
             
            - !ruby/object:Gem::Dependency 
         |