Sha256: 81325a72440165090d3fed02888eee3708cbb04a64108bb4327b4297b2aa0de9

Contents?: true

Size: 1.91 KB

Versions: 8

Compression:

Stored size: 1.91 KB

Contents

module Admin
  class InstallationController < BaseController

    layout '/admin/layouts/box'

    skip_before_filter :require_site

    skip_before_filter :authenticate_admin!

    skip_before_filter :verify_authenticity_token

    skip_before_filter :validate_site_membership

    before_filter :is_step_already_done?

    before_filter :allow_installation?

    def show
      request.get? ? self.handle_get : self.handle_post
    end

    protected

    def handle_get
      case params[:step].to_i
      when 2 then @account = Account.new
      when 3 then @site = Site.new
      end
      render "step_#{params[:step]}"
    end

    def handle_post
      case params[:step].to_i
      when 2 # create account
        @account = Account.create(params[:account])
        if @account.valid?
          redirect_to admin_installation_step_url(3)
        else
          render 'step_2'
        end
      when 3 # create site
        @site = Site.new(params[:site])
        @site.memberships.build :account => Account.first, :admin => true
        @site.save

        if @site.valid?
          begin
            unless params[:zipfile].blank?
              Locomotive::Import::Job.run!(params[:zipfile], @site, { :samples => true })
            end
          rescue Exception => e
            logger.error "Import failed because of #{e.message}"
          end

          redirect_to admin_session_url(:host => Site.first.domains.first, :port => request.port)
        else
          render 'step_3'
        end
      end
    end

    def is_step_already_done?
      case params[:step].to_i
      when 2 # already an account in db
        if Account.count > 0
          @step_done = t('admin.installation.step_2.done', Account.first.attributes)
          render 'step_2' and return false
        end
      else
        true
      end
    end

    def allow_installation?
      redirect_to admin_pages_url if Site.count > 0 && Account.count > 0
    end

  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
locomotive_cms-1.0.0.beta.2 app/controllers/admin/installation_controller.rb
locomotive_cms-1.0.0.beta app/controllers/admin/installation_controller.rb
locomotive_cms-0.0.4.beta12 app/controllers/admin/installation_controller.rb
locomotive_cms-0.0.4.beta11 app/controllers/admin/installation_controller.rb
locomotive_cms-0.0.4.beta10 app/controllers/admin/installation_controller.rb
locomotive_cms-0.0.4.beta9 app/controllers/admin/installation_controller.rb
locomotive_cms-0.0.4.beta8 app/controllers/admin/installation_controller.rb
locomotive_cms-0.0.4.beta7 app/controllers/admin/installation_controller.rb