Class: Dorsale::CustomerVault::PeopleController

Inherits:
ApplicationController show all
Defined in:
app/controllers/dorsale/customer_vault/people_controller.rb

Instance Method Summary collapse

Methods inherited from ApplicationController

#filters_jar, #scope

Instance Method Details

#corporationsObject



19
20
21
22
# File 'app/controllers/dorsale/customer_vault/people_controller.rb', line 19

def corporations
  index
  render :index
end

#createObject



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'app/controllers/dorsale/customer_vault/people_controller.rb', line 43

def create
  authorize model, :create?

  @person ||= scope.new(person_params_for_create)

  unless @person.save
    render :new
    return
  end

  if request.xhr? && @person.corporation?
    render :create_corporation_js
    return
  end

  generate_event!("create")
  flash[:notice] = t("messages.#{person_type.to_s.pluralize}.create_ok")
  redirect_to back_url
end

#destroyObject



93
94
95
96
97
98
99
100
101
102
103
# File 'app/controllers/dorsale/customer_vault/people_controller.rb', line 93

def destroy
  authorize @person, :delete?

  if @person.destroy
    flash[:notice] = t("messages.#{person_type.to_s.pluralize}.delete_ok")
  else
    flash[:alert] = t("messages.#{person_type.to_s.pluralize}.delete_error")
  end

  redirect_to customer_vault_people_path
end

#editObject



75
76
77
78
79
# File 'app/controllers/dorsale/customer_vault/people_controller.rb', line 75

def edit
  authorize @person, :update?

  @person.build_address if @person.address.nil?
end

#indexObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'app/controllers/dorsale/customer_vault/people_controller.rb', line 4

def index
  authorize model, :list?

  @filters ||= ::Dorsale::CustomerVault::SmallData::FilterForPeople.new(filters_jar)
  @people  ||= policy_scope(model).search(params[:q]).preload(:taggings)

  if params[:q].blank?
    @people = @filters.apply(@people)
  end

  @people_without_pagination = @people

  @people = @people.page(params[:page]).per(25)
end

#individualsObject



24
25
26
27
# File 'app/controllers/dorsale/customer_vault/people_controller.rb', line 24

def individuals
  index
  render :index
end

#invoicesObject



71
72
73
# File 'app/controllers/dorsale/customer_vault/people_controller.rb', line 71

def invoices
  show
end

#newObject



29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'app/controllers/dorsale/customer_vault/people_controller.rb', line 29

def new
  authorize model, :create?

  if model == Dorsale::CustomerVault::Person
    skip_policy_scope
    redirect_to url_for(action: :index)
    return
  end

  @person ||= scope.new

  @person.build_address if @person.address.nil?
end

#showObject



63
64
65
# File 'app/controllers/dorsale/customer_vault/people_controller.rb', line 63

def show
  authorize @person, :read?
end

#tasksObject



67
68
69
# File 'app/controllers/dorsale/customer_vault/people_controller.rb', line 67

def tasks
  show
end

#updateObject



81
82
83
84
85
86
87
88
89
90
91
# File 'app/controllers/dorsale/customer_vault/people_controller.rb', line 81

def update
  authorize @person, :update?

  if @person.update(person_params_for_update)
    generate_event!("update")
    flash[:notice] = t("messages.#{person_type.to_s.pluralize}.update_ok")
    redirect_to back_url
  else
    render :edit
  end
end