diff --git a/lib/NGCP/Panel/Form/Lnp/Number.pm b/lib/NGCP/Panel/Form/Lnp/Number.pm index 48a90d23bf..a162cab100 100644 --- a/lib/NGCP/Panel/Form/Lnp/Number.pm +++ b/lib/NGCP/Panel/Form/Lnp/Number.pm @@ -41,18 +41,14 @@ has_field 'routing_number' => ( ); has_field 'type' => ( - type => 'Select', + type => 'Text', required => 0, - label => 'Type', - options => [ - { label => '', value => '' }, - { label => 'fixed', value => 'fixed' }, - { label => 'mobile', value => 'mobile' }, - ], + maxlength => 31, element_attr => { rel => ['tooltip'], title => ['The optional LNP number type tag, for CDR exports.'] }, + validate_method => \&_validate_type, ); has_field 'start' => ( @@ -101,5 +97,14 @@ sub validate_number { return; } +sub _validate_type { + my ( $self, $field ) = @_; + + if ($field->input =~ /[^a-z0-9_-]/i) { + $field->add_error($field->label . " must be alphanumeric"); + } + return; +} + 1; # vim: set tabstop=4 expandtab: diff --git a/lib/NGCP/Panel/Utils/Lnp.pm b/lib/NGCP/Panel/Utils/Lnp.pm index 4adbc47926..b9a1e70ace 100644 --- a/lib/NGCP/Panel/Utils/Lnp.pm +++ b/lib/NGCP/Panel/Utils/Lnp.pm @@ -132,7 +132,10 @@ sub upload_csv { if($row->{end} && $row->{end} =~ /^\d{4}-\d{2}-\d{2}$/) { $row->{end} .= 'T23:59:59'; } - $row->{type} ||= undef; + if (defined $row->{type} and (length($row->{type}) > 31 or $row->{type} =~ /[^a-z0-9_-]/i)) { + push @fails, $linenum; + next; + } push @numbers, [$carriers{$k}, $row->{number}, $row->{routing_number}, $row->{start}, $row->{end}, $row->{type}]; if($linenum % $chunk_size == 0) {