Sha256: eb26308f56ba5384a966a7611a76f32eb95c62d5a19459d3f11993c75fbafd02

Contents?: true

Size: 1.47 KB

Versions: 16

Compression:

Stored size: 1.47 KB

Contents

module Gaku
  class Admin::Campuses::ContactsController < Admin::BaseController

    respond_to :js

    before_action :set_contact_types,    only: %i( new edit )
    before_action :set_contact,          only: %i( edit update destroy make_primary )
    before_action :set_campus

    def new
      @contact = Contact.new
      respond_with @contact
    end

    def create
      creator = ContactCreation.new(contact_params.merge(contactable: @campus))
      creator.save
      @contact = creator.contact
      set_count
      respond_with @contact
    end

    def edit
      respond_with @contact
    end

    def update
      ContactUpdation.new(@contact).update(contact_params)
      @contact.update(contact_params)
      respond_with @contact
    end

    def destroy
      if @contact.destroy
        @campus.contacts.first.try(:make_primary) if @contact.primary?
      end
      set_count
      respond_with @contact
    end

    def make_primary
      @contact.make_primary
      respond_with @contact
    end

    private

    def set_contact
      @contact = Contact.find(params[:id])
    end

    def set_campus
      @campus = Campus.find(params[:campus_id])
    end

    def contact_params
      params.require(:contact).permit(attributes)
    end

    def attributes
      %i( data details contact_type_id primary emergency )
    end

    def set_contact_types
      @contact_types = ContactType.all
    end

    def set_count
      @count = @campus.reload.contacts_count
    end

  end
end

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
gaku_admin-0.3.0 app/controllers/gaku/admin/campuses/contacts_controller.rb
gaku_admin-0.3.0.pre.4 app/controllers/gaku/admin/campuses/contacts_controller.rb
gaku_admin-0.3.0.pre.3 app/controllers/gaku/admin/campuses/contacts_controller.rb
gaku_admin-0.3.0.pre.2 app/controllers/gaku/admin/campuses/contacts_controller.rb
gaku_admin-0.3.0.pre.1 app/controllers/gaku/admin/campuses/contacts_controller.rb
gaku_admin-0.3.0.pre.0 app/controllers/gaku/admin/campuses/contacts_controller.rb
gaku-0.2.4 admin/app/controllers/gaku/admin/campuses/contacts_controller.rb
gaku_admin-0.2.4 app/controllers/gaku/admin/campuses/contacts_controller.rb
gaku-0.2.3 admin/app/controllers/gaku/admin/campuses/contacts_controller.rb
gaku_admin-0.2.3 app/controllers/gaku/admin/campuses/contacts_controller.rb
gaku-0.2.2 admin/app/controllers/gaku/admin/campuses/contacts_controller.rb
gaku_admin-0.2.2 app/controllers/gaku/admin/campuses/contacts_controller.rb
gaku-0.2.1 admin/app/controllers/gaku/admin/campuses/contacts_controller.rb
gaku_admin-0.2.1 app/controllers/gaku/admin/campuses/contacts_controller.rb
gaku-0.2.0 admin/app/controllers/gaku/admin/campuses/contacts_controller.rb
gaku_admin-0.2.0 app/controllers/gaku/admin/campuses/contacts_controller.rb