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';
-%]