You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ngcp-panel/lib/NGCP/Panel/Form/CallRouting/Verify.pm

166 lines
4.4 KiB

package NGCP::Panel::Form::CallRouting::Verify;
use HTML::FormHandler::Moose;
extends 'HTML::FormHandler';
#use Moose::Util::TypeConstraints;
use Storable qw();
use HTML::FormHandler::Widget::Block::Bootstrap;
has '+widget_wrapper' => ( default => 'Bootstrap' );
has_field 'submitid' => ( type => 'Hidden' );
sub build_render_list {[qw/submitid fields verify/]}
sub build_form_element_class {[qw(form-horizontal)]}
has_field 'caller' => (
type => 'Text',
label => 'Caller number/uri',
required => 1,
maxlength => 255,
element_attr => {
rel => ['tooltip'],
title => ['Caller number or SIP uri']
},
);
has_field 'caller_type' => (
type => 'Select',
label => 'Caller Type',
widget => 'RadioGroup',
options => [ { checked => 1, label => 'Subscriber', value => 'subscriber' },
{ value => 'peer', label => 'Peer'} ],
required => 1,
element_attr => {
rel => ['tooltip'],
title => ['Caller type, Subscriber or Peer'],
},
);
has_field 'callee' => (
type => 'Text',
label => 'Callee number/uri',
required => 1,
maxlength => 255,
element_attr => {
rel => ['tooltip'],
title => ['Callee number or SIP uri'],
},
);
has_field 'caller_subscriber_id' => (
type => '+NGCP::Panel::Field::DataTable',
label => 'Caller Subscriber',
do_label => 1,
do_wrapper => 0,
required => 0,
template => 'helpers/datatables_field.tt',
ajax_src => '/subscriber/ajax',
table_titles => ['#', 'Username', 'Domain', 'UUID', 'Number'],
table_fields => ['id', 'username', 'domain.domain', 'uuid', 'number'],
validate_when_empty => 1,
element_attr => {
rel => ['tooltip'],
title => ['Caller subscriber']
},
);
has_field 'caller_peer_id' => (
type => '+NGCP::Panel::Field::DataTable',
label => 'Caller Peer',
do_label => 1,
do_wrapper => 0,
required => 0,
template => 'helpers/datatables_field.tt',
ajax_src => '/peering/ajax',
table_titles => ['#', 'Name', 'Description'],
table_fields => ['id', 'name', 'description'],
validate_when_empty => 1,
element_attr => {
rel => ['tooltip'],
title => ['Caller peering group']
},
);
has_field 'caller_rewrite_id' => (
type => '+NGCP::Panel::Field::DataTable',
label => 'Caller Rewrite Rule Set',
do_label => 0,
do_wrapper => 1,
required => 0,
template => 'helpers/datatables_field.tt',
ajax_src => '/rewrite/ajax',
table_titles => ['#', 'Name', 'Description'],
table_fields => ['id', 'name', 'description'],
validate_when_empty => 1,
element_attr => {
rel => ['tooltip'],
title => ['Caller rewrite rule set to override']
},
);
has_field 'callee_peer_id' => (
type => '+NGCP::Panel::Field::DataTable',
label => 'Callee Peer',
do_label => 0,
do_wrapper => 0,
required => 0,
template => 'helpers/datatables_field.tt',
ajax_src => '/peering/ajax',
table_titles => ['#', 'Name', 'Description'],
table_fields => ['id', 'name', 'description'],
validate_when_empty => 1,
element_attr => {
rel => ['tooltip'],
title => ['Caller peering group']
},
);
has_field 'callee_rewrite_id' => (
type => '+NGCP::Panel::Field::DataTable',
label => 'Callee Rewrite Rule Set',
do_label => 0,
do_wrapper => 0,
required => 0,
template => 'helpers/datatables_field.tt',
ajax_src => '/rewrite/ajax',
table_titles => ['#', 'Name', 'Description'],
table_fields => ['id', 'name', 'description'],
validate_when_empty => 1,
element_attr => {
rel => ['tooltip'],
title => ['Callee rewrite rule set to override']
},
);
has_block 'fields' => (
tag => 'div',
render_list => [qw/caller callee caller_type caller_subscriber_id caller_peer_id caller_rewrite_id callee_peer_id callee_rewrite_id/],
);
has_field 'verify' => (
type => 'Submit',
value => 'Verify',
element_class => [qw/btn btn-primary btn-large/],
label => '',
);
sub validate_caller {
my ($self, $field) = @_;
my $c = $self->form->ctx;
return unless $c;
NGCP::Panel::Utils::Form::validate_number_uri(c => $c, field => $field);
}
sub validate_callee {
my ($self, $field) = @_;
my $c = $self->form->ctx;
return unless $c;
NGCP::Panel::Utils::Form::validate_number_uri(c => $c, field => $field);
}
1;
# vim: set tabstop=4 expandtab: