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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
class CallRoutesController < ApplicationController
authorize_resource :call_route, :except => [:sort]
before_filter { |controller|
if !params[:call_route].blank? && !params[:call_route][:endpoint_str].blank?
params[:call_route][:endpoint_type], delimeter, params[:call_route][:endpoint_id] = params[:call_route][:endpoint_str].partition('=')
end
}
def index
@call_routes = CallRoute.order([:routing_table, :position])
@routing_tables = @call_routes.pluck(:routing_table).uniq.sort
spread_breadcrumbs
end
def show
@call_route = CallRoute.find(params[:id])
spread_breadcrumbs
end
def new
@call_route = CallRoute.new
@endpoints = Gateway.all.collect {|r| [ "gateway: #{r.to_s}", "gateway=#{r.id}" ] }
@endpoints << [ 'phonenumber', 'phonenumber=' ]
@endpoints << [ 'dialplanfunction', 'dialplanfunction=' ]
@endpoints << [ 'hangup', 'hangup=' ]
@endpoints << [ 'unknown', 'unknown=' ]
spread_breadcrumbs
end
def create
@call_route = CallRoute.new(call_route_parameter_params)
spread_breadcrumbs
if @call_route.save
redirect_to @call_route, :notice => t('call_routes.controller.successfuly_created')
else
render :new
end
end
def edit
@call_route = CallRoute.find(params[:id])
@endpoints = Gateway.all.collect {|r| [ "gateway: #{r.to_s}", "gateway=#{r.id}" ] }
@endpoints << [ 'phonenumber', 'phonenumber=' ]
@endpoints << [ 'dialplanfunction', 'dialplanfunction=' ]
@endpoints << [ 'hangup', 'hangup=' ]
@endpoints << [ 'unknown', 'unknown=' ]
spread_breadcrumbs
end
def update
@call_route = CallRoute.find(params[:id])
spread_breadcrumbs
if @call_route.update_attributes(call_route_parameter_params)
redirect_to @call_route, :notice => t('call_routes.controller.successfuly_updated')
else
render :edit
end
end
def destroy
@call_route = CallRoute.find(params[:id])
@call_route.destroy
redirect_to call_routes_url, :notice => t('call_routes.controller.successfuly_destroyed')
end
def sort
params[:call_route].each_with_index do |id, index|
CallRoute.update_all({position: index+1}, {id: id})
#CallRoute.find(:id).move_to_bottom
end
render nothing: true
end
private
def call_route_parameter_params
params.require(:call_route).permit(:routing_table, :name, :endpoint_type, :endpoint_id, :position)
end
def spread_breadcrumbs
add_breadcrumb t("call_routes.index.page_title"), call_routes_path
if @call_route && !@call_route.new_record?
add_breadcrumb @call_route, @call_route
end
end
end
|