diff --git a/lib/NGCP/Panel/Controller/Peering.pm b/lib/NGCP/Panel/Controller/Peering.pm index 37de23d55a..5dfabf3051 100644 --- a/lib/NGCP/Panel/Controller/Peering.pm +++ b/lib/NGCP/Panel/Controller/Peering.pm @@ -62,6 +62,25 @@ sub base :Chained('group_list') :PathPart('') :CaptureArgs(1) { $c->detach; return; } + + $c->stash->{server_dt_columns} = NGCP::Panel::Utils::Datatables::set_columns($c, [ + { name => 'id', search => 1, title => '#' }, + { name => 'name', search => 1, title => 'Name' }, + { name => 'ip', search => 1, title => 'IP Address' }, + { name => 'host', search => 1, title => 'Hostname' }, + { name => 'port', search => 1, title => 'Port' }, + { name => 'transport', search => 1, title => 'Protocol' }, + { name => 'weight', search => 1, title => 'Weight' }, + ]); + $c->stash->{rules_dt_columns} = NGCP::Panel::Utils::Datatables::set_columns($c, [ + { name => 'id', search => 1, title => '#' }, + { name => 'callee_prefix', search => 1, title => 'Callee Prefix' }, + { name => 'callee_pattern', search => 1, title => 'Callee Pattern' }, + { name => 'caller_pattern', search => 1, title => 'Callee Pattern' }, + { name => 'description', search => 1, title => 'Description' }, + ]); + + $c->stash(group => {$res->get_columns}); $c->stash->{group}->{'contract.id'} = $res->peering_contract_id; $c->stash(group_result => $res); @@ -168,11 +187,7 @@ sub servers_ajax :Chained('servers_list') :PathPart('s_ajax') :Args(0) { my ($self, $c) = @_; my $resultset = $c->stash->{group_result}->voip_peer_hosts; - - $c->forward( "/ajax_process_resultset", [$resultset, - ["id", "name", "ip", "host", "port", "transport", "weight"], - [1,2,3,4,6]]); - + NGCP::Panel::Utils::Datatables::process($c, $resultset, $c->stash->{server_dt_columns}); $c->detach( $c->view("JSON") ); } @@ -373,11 +388,7 @@ sub rules_ajax :Chained('rules_list') :PathPart('r_ajax') :Args(0) { my ($self, $c) = @_; my $resultset = $c->stash->{group_result}->voip_peer_rules; - - $c->forward( "/ajax_process_resultset", [$resultset, - ["id", "callee_prefix", "callee_pattern", "caller_pattern", "description"], - [1,2,3,4]]); - + NGCP::Panel::Utils::Datatables::process($c, $resultset, $c->stash->{rules_dt_columns}); $c->detach( $c->view("JSON") ); } diff --git a/share/templates/peering/servers_rules.tt b/share/templates/peering/servers_rules.tt index 685b493b75..ccae2053f5 100644 --- a/share/templates/peering/servers_rules.tt +++ b/share/templates/peering/servers_rules.tt @@ -2,10 +2,8 @@

Peering Servers

[% helper.name = 'Peering Servers'; - helper.show_create_button = 1; helper.messages = messages; - helper.column_titles = [ '#', 'Name', 'IP Address', 'Hostname', 'Port', 'Protocol', 'Weight' ]; - helper.column_fields = [ 'id', 'name', 'ip', 'host', 'port', 'transport', 'weight' ]; + helper.dt_columns = server_dt_columns; helper.close_target = close_target; helper.create_flag = servers_create_flag; @@ -14,14 +12,20 @@ helper.ajax_uri = c.uri_for_action( "/peering/servers_ajax", [c.req.captures.0] ); helper.tmpuri = c.uri_for_action("/peering/servers_root", [c.req.captures.0]); - helper.dt_buttons = [ - { name = 'Edit', uri = helper.tmpuri _ "/'+full[\"id\"]+'/edit", class = 'btn-small btn-primary', icon = 'icon-edit' }, - { name = 'Delete', uri = helper.tmpuri _ "/'+full[\"id\"]+'/delete", class = 'btn-small btn-secondary', icon = 'icon-trash' }, - { name = 'Preferences', uri = helper.tmpuri _ "/'+full[\"id\"]+'/preferences", class = 'btn-small btn-tertiary', icon = 'icon-list' }, - ]; - helper.top_buttons = [ - { name = 'Create Peering Server', uri = helper.tmpuri _ "/create", icon = 'icon-star' }, - ]; + UNLESS c.user.read_only; + helper.dt_buttons = [ + { name = 'Edit', uri = helper.tmpuri _ "/'+full.id+'/edit", class = 'btn-small btn-primary', icon = 'icon-edit' }, + { name = 'Delete', uri = helper.tmpuri _ "/'+full.id+'/delete", class = 'btn-small btn-secondary', icon = 'icon-trash' }, + { name = 'Preferences', uri = helper.tmpuri _ "/'+full.id+'/preferences", class = 'btn-small btn-tertiary', icon = 'icon-list' }, + ]; + helper.top_buttons = [ + { name = 'Create Peering Server', uri = helper.tmpuri _ "/create", icon = 'icon-star' }, + ]; + ELSE; + helper.dt_buttons = [ + { name = 'Preferences', uri = helper.tmpuri _ "/'+full.id+'/preferences", class = 'btn-small btn-tertiary', icon = 'icon-list' }, + ]; + END; PROCESS 'helpers/datatables.tt'; -%] @@ -30,11 +34,8 @@

Peering Rules

[% helper.name = 'Peering Rules'; - helper.show_create_button = 1; helper.messages = rules_messages; - helper.column_titles = [ '#', 'Callee Prefix', 'Callee Pattern', 'Caller Pattern', 'Description' ]; - helper.column_fields = [ 'id', 'callee_prefix', 'callee_pattern', 'caller_pattern', 'description' ]; - + helper.dt_columns = rules_dt_columns; helper.close_target = close_target; helper.create_flag = rules_create_flag; helper.edit_flag = rules_edit_flag; @@ -42,13 +43,18 @@ helper.ajax_uri = c.uri_for_action( "/peering/rules_ajax", [c.req.captures.0] ); helper.tmpuri = c.uri_for(group.id, "rules"); - helper.dt_buttons = [ - { name = 'Edit', uri = helper.tmpuri _ "/'+full[\"id\"]+'/edit", class = 'btn-small btn-primary', icon = 'icon-edit' }, - { name = 'Delete', uri = helper.tmpuri _ "/'+full[\"id\"]+'/delete", class = 'btn-small btn-secondary', icon = 'icon-trash' }, - ]; - helper.top_buttons = [ - { name = 'Create Peering Rule', uri = helper.tmpuri _ "/create", icon = 'icon-star' }, - ]; + UNLESS c.user.read_only; + helper.dt_buttons = [ + { name = 'Edit', uri = helper.tmpuri _ "/'+full[\"id\"]+'/edit", class = 'btn-small btn-primary', icon = 'icon-edit' }, + { name = 'Delete', uri = helper.tmpuri _ "/'+full[\"id\"]+'/delete", class = 'btn-small btn-secondary', icon = 'icon-trash' }, + ]; + helper.top_buttons = [ + { name = 'Create Peering Rule', uri = helper.tmpuri _ "/create", icon = 'icon-star' }, + ]; + ELSE; + helper.dt_buttons = []; + helper.top_buttons = []; + END; PROCESS 'helpers/datatables.tt'; -%]