summaryrefslogtreecommitdiff
path: root/app/controllers/phones_controller.rb
blob: d46bf8644dfe1927fa741566257a377cdd67fe56 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
class PhonesController < ApplicationController
  load_resource :tenant
  load_resource :user
  load_and_authorize_resource :phone, :through => [:tenant, :user]

  before_filter :set_and_authorize_parent
  before_filter :spread_breadcrumbs

  def index
  end

  def show
  end

  def new
    @phone = @phoneable.phones.build()
    
    # Use the last phone.phone_model as the default.
    #
    @phone.phone_model_id = Phone.last.try(:phone_model).try(:id)
  end

  def create
    @phone = @phoneable.phones.build(params[:phone])
    if @phone.save
      m = method( :"#{@phoneable.class.name.underscore}_phone_path" )
      redirect_to m.( @phoneable, @phone ), :notice => t('phones.controller.successfuly_created')
    else
      render :new
    end
  end

  def edit
  end

  def update
    if @phone.update_attributes(params[:phone])
      m = method( :"#{@phoneable.class.name.underscore}_phone_path" )
      redirect_to m.( @phoneable, @phone ), :notice => t('phones.controller.successfuly_updated')
    else
      render :edit
    end
  end

  def destroy
    @phone.destroy
    m = method( :"#{@phoneable.class.name.underscore}_phones_url" )
    redirect_to m.( @phoneable ), :notice => t('phones.controller.successfuly_destroyed')
  end

  private
  def set_and_authorize_parent
    @phoneable = (@user || @tenant)
    @parent = @phoneable
    authorize! :read, @parent
    @nesting_prefix = @phoneable ? "#{@phoneable.class.name.underscore}_" : ''
  end

  def spread_breadcrumbs
    if @user
      add_breadcrumb t('users.index.page_title'), tenant_users_path(@user.current_tenant) 
      add_breadcrumb @user, tenant_user_path(@user.current_tenant, @user) 
      add_breadcrumb t('phones.index.page_title'), user_phones_path(@user) 
    elsif @tenant
      add_breadcrumb t('phones.index.page_title'), tenant_phones_path(@tenant) 
    end
    if @phone && !@phone.new_record?
      add_breadcrumb @phone, method( :"#{@phone.phoneable.class.name.underscore}_phone_path" ).(@phone.phoneable, @phone)
    end
  end
  
end