Module: Wicked::Controller::Concerns::RenderRedirect

Extended by:
ActiveSupport::Concern
Included in:
Wizard
Defined in:
lib/wicked/controller/concerns/render_redirect.rb

Instance Method Summary collapse

Instance Method Details

#finish_wizard_pathObject

TODO redirect to resource if one is passed to render_wizard



42
43
44
# File 'lib/wicked/controller/concerns/render_redirect.rb', line 42

def finish_wizard_path
  '/'
end

#process_resource!(resource) ⇒ Object



15
16
17
18
19
20
21
22
23
# File 'lib/wicked/controller/concerns/render_redirect.rb', line 15

def process_resource!(resource)
  if resource
    if resource.save
      @skip_to ||= @next_step
    else
      @skip_to = nil
    end
  end
end

#redirect_to_finish_wizard(options = {}) ⇒ Object



46
47
48
49
50
51
52
# File 'lib/wicked/controller/concerns/render_redirect.rb', line 46

def redirect_to_finish_wizard(options = {})
  wicked_final_redirect_path = finish_wizard_path
  Rails.logger.debug("Wizard has finished, redirecting to finish_wizard_path: #{wicked_final_redirect_path.inspect}")
  # flash.keep is required for Rails 3 where a flash message is lost on a second redirect.
  flash.keep
  redirect_to wicked_final_redirect_path, options
end

#redirect_to_next(next_step, options = {}) ⇒ Object



33
34
35
36
37
38
39
# File 'lib/wicked/controller/concerns/render_redirect.rb', line 33

def redirect_to_next(next_step, options = {})
  if next_step.nil?
    redirect_to_finish_wizard(options)
  else
    redirect_to wizard_path(next_step), options
  end
end

#render_step(the_step, options = {}) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/wicked/controller/concerns/render_redirect.rb', line 25

def render_step(the_step, options = {})
  if the_step.nil? || the_step.to_s == Wicked::FINISH_STEP
    redirect_to_finish_wizard options
  else
    render the_step, options
  end
end

#render_wizard(resource = nil, options = {}) ⇒ Object



5
6
7
8
9
10
11
12
13
# File 'lib/wicked/controller/concerns/render_redirect.rb', line 5

def render_wizard(resource = nil, options = {})
  process_resource!(resource)

  if @skip_to
    redirect_to wizard_path(@skip_to, @wicked_redirect_params || {}), options
  else
    render_step wizard_value(step), options
  end
end