Changeset 5896

Show
Ignore:
Timestamp:
07/31/08 18:10:16 (4 months ago)
Author:
uta
Message:

2008/07/31 sync

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • rubricks_core/trunk/app/controllers/application.rb

    r5796 r5896  
    220220    end 
    221221  end 
    222  
    223   def ajax? 
    224     (request.env['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' && !request.env['HTTP_X_PROTOTYPE_VERSION'].blank?) 
    225   end 
    226222end 
  • rubricks_core/trunk/vendor/plugins/rubricks/lib/action_controller_base.rb

    r5759 r5896  
    4141    alias :rubricks_redirect_to_original :redirect_to unless method_defined?(:rubricks_redirect_to_original) 
    4242    def redirect_to(options = {}, *parameters_for_method_reference) 
    43       case options 
    44       when %r{^\w+://.*} 
    45         rubricks_redirect_to_original(options) 
    46       when String 
    47         redirect_to(RubricksLib.base_url + options) 
    48       when :back 
    49         request.env["HTTP_REFERER"] ? redirect_to(request.env["HTTP_REFERER"]) : raise(RedirectBackError) 
    50       when Hash 
    51         if parameters_for_method_reference.empty? 
    52           redirect_to(url_for(options)) 
     43      if ajax? 
     44        raise RubricksError::Common::AjaxError, '"redirect_to" needs hash-style url_options when used at AJAX request.' unless options.is_a?(Hash) 
     45        controller  = options[:controller] || params[:controller] 
     46        action      = options[:action] 
     47        parameters  = (options.delete(:params) || {}).merge(options) 
     48        render :inline => simple_render_component(controller, action, parameters) 
     49      else 
     50        case options 
     51        when %r{^\w+://.*} 
     52          rubricks_redirect_to_original(options) 
     53        when String 
     54          redirect_to(RubricksLib.base_url + options) 
     55        when :back 
     56          request.env["HTTP_REFERER"] ? redirect_to(request.env["HTTP_REFERER"]) : raise(RedirectBackError) 
     57        when Hash 
     58          if parameters_for_method_reference.empty? 
     59            redirect_to(url_for(options)) 
     60          else 
     61            redirect_to(url_for(options, *parameters_for_method_reference)) 
     62          end 
    5363        else 
    54           redirect_to(url_for(options, *parameters_for_method_reference)) 
    55         end 
    56       else 
    57         if parameters_for_method_reference.empty? 
    58           redirect_to(url_for(options)) 
    59           response.redirected_to = options 
    60         else 
    61           redirect_to(url_for(options, *parameters_for_method_reference)) 
    62           response.redirected_to, response.redirected_to_method_params = options, parameters_for_method_reference 
     64          if parameters_for_method_reference.empty? 
     65            redirect_to(url_for(options)) 
     66            response.redirected_to = options 
     67          else 
     68            redirect_to(url_for(options, *parameters_for_method_reference)) 
     69            response.redirected_to, response.redirected_to_method_params = options, parameters_for_method_reference 
     70          end 
    6371        end 
    6472      end 
     
    98106      end 
    99107    end 
     108 
     109    private 
     110    def ajax? 
     111      (request.env['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' && !request.env['HTTP_X_PROTOTYPE_VERSION'].blank?) 
     112    end 
    100113  end 
    101114end