Sha256: 78a003341a225d872f795ed3bb9b99fdd08d884c210f6a5dcf443789748db23d

Contents?: true

Size: 1.27 KB

Versions: 68

Compression:

Stored size: 1.27 KB

Contents

module Effective
  module WizardController
    module Save

      def save_wizard_resource(resource, action = nil, options = {})
        was_new_record = resource.new_record?

        if action.blank? || action == :update
          action = resource.respond_to?("#{step}!") ? step : :save
        end

        if save_resource(resource, action)
          flash[:success] ||= options.delete(:success) || resource_flash(:success, resource, action)

          @skip_to ||= skip_to_step(resource)

          @redirect_to ||= resource_redirect_path(resource, action) if specific_redirect_path?(action)
          @redirect_to ||= resource_wizard_path(resource, @skip_to) if was_new_record

          if @redirect_to
            redirect_to(@redirect_to)
          elsif @skip_to
            redirect_to(wizard_path(@skip_to))
          else
            redirect_to_finish_wizard(options, params)
          end
        else
          flash.now[:danger] = options.delete(:error) || resource_flash(:danger, resource, action)
          render_step(wizard_value(step), options)
        end
      end

      private

      def skip_to_step(resource)
        resource.skip_to_step ||
        resource.required_steps.find { |s| s == next_step } ||
        resource.first_uncompleted_step
      end

    end
  end
end

Version data entries

68 entries across 68 versions & 1 rubygems

Version Path
effective_resources-2.7.5 app/controllers/concerns/effective/wizard_controller/save.rb
effective_resources-2.7.4 app/controllers/concerns/effective/wizard_controller/save.rb
effective_resources-2.7.3 app/controllers/concerns/effective/wizard_controller/save.rb
effective_resources-2.7.2 app/controllers/concerns/effective/wizard_controller/save.rb
effective_resources-2.7.1 app/controllers/concerns/effective/wizard_controller/save.rb
effective_resources-2.7.0 app/controllers/concerns/effective/wizard_controller/save.rb
effective_resources-2.6.2 app/controllers/concerns/effective/wizard_controller/save.rb
effective_resources-2.6.1 app/controllers/concerns/effective/wizard_controller/save.rb
effective_resources-2.6.0 app/controllers/concerns/effective/wizard_controller/save.rb
effective_resources-2.5.4 app/controllers/concerns/effective/wizard_controller/save.rb
effective_resources-2.5.3 app/controllers/concerns/effective/wizard_controller/save.rb
effective_resources-2.5.2 app/controllers/concerns/effective/wizard_controller/save.rb
effective_resources-2.5.1 app/controllers/concerns/effective/wizard_controller/save.rb
effective_resources-2.5.0 app/controllers/concerns/effective/wizard_controller/save.rb
effective_resources-2.4.7 app/controllers/concerns/effective/wizard_controller/save.rb
effective_resources-2.4.6 app/controllers/concerns/effective/wizard_controller/save.rb
effective_resources-2.4.5 app/controllers/concerns/effective/wizard_controller/save.rb
effective_resources-2.4.4 app/controllers/concerns/effective/wizard_controller/save.rb
effective_resources-2.4.3 app/controllers/concerns/effective/wizard_controller/save.rb
effective_resources-2.4.2 app/controllers/concerns/effective/wizard_controller/save.rb