Class: Tramway::Admin::RecordsController
Instance Method Summary
collapse
#edit_record_path, #new_record_path, #record_path, #records_path
Instance Method Details
#create ⇒ Object
40
41
42
43
44
45
46
47
|
# File 'app/controllers/tramway/admin/records_controller.rb', line 40
def create
@record_form = admin_form_class.new model_class.new
if @record_form.submit params[:record]
redirect_to params[:redirect].present? ? params[:redirect] : record_path(@record_form.model)
else
render :new
end
end
|
#destroy ⇒ Object
68
69
70
71
72
|
# File 'app/controllers/tramway/admin/records_controller.rb', line 68
def destroy
record = model_class.active.find params[:id]
record.remove!
redirect_to params[:redirect].present? ? params[:redirect] : records_path
end
|
#edit ⇒ Object
49
50
51
|
# File 'app/controllers/tramway/admin/records_controller.rb', line 49
def edit
@record_form = admin_form_class.new model_class.active.find params[:id]
end
|
#index ⇒ Object
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
|
# File 'app/controllers/tramway/admin/records_controller.rb', line 4
def index
scope = params[:scope].present? ? params[:scope] : :all
records = model_class.active.order(id: :desc).send scope
records = records.full_text_search params[:search] if params[:search].present?
if params[:filter].present?
if params[:filter].is_a? String
params[:filter] = JSON.parse params[:filter]
end
records = records.ransack(params[:filter]).result
end
params[:list_filters]&.each do |filter, value|
case decorator_class.list_filters[filter.to_sym][:type]
when :select
records = decorator_class.list_filters[filter.to_sym][:query].call(records, value) if value.present?
when :dates
begin_date = params[:list_filters][filter.to_sym][:begin_date]
end_date = params[:list_filters][filter.to_sym][:end_date]
if begin_date.present? && end_date.present?
if value.present?
records = decorator_class.list_filters[filter.to_sym][:query].call(records, begin_date, end_date)
end
end
end
end
records = records.send "#{current_admin.role}_scope", current_admin.id
@records = decorator_class.decorate records.page params[:page]
end
|
#new ⇒ Object
36
37
38
|
# File 'app/controllers/tramway/admin/records_controller.rb', line 36
def new
@record_form = admin_form_class.new model_class.new
end
|
#show ⇒ Object
32
33
34
|
# File 'app/controllers/tramway/admin/records_controller.rb', line 32
def show
@record = decorator_class.decorate model_class.active.find params[:id]
end
|
#update ⇒ Object
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
# File 'app/controllers/tramway/admin/records_controller.rb', line 53
def update
@record_form = admin_form_class.new model_class.active.find params[:id]
if params[:record][:aasm_event].present?
if @record_form.model.send("may_#{params[:record][:aasm_event]}?")
@record_form.model.send("#{params[:record][:aasm_event]}!")
end
else
if @record_form.submit params[:record]
redirect_to params[:redirect].present? ? params[:redirect] : record_path(@record_form.model)
else
render :edit
end
end
end
|