mirror of https://github.com/sipwise/www_admin.git
parent
06d94fcb0d
commit
3f13028ac5
@ -0,0 +1,474 @@
|
||||
package admin::Controller::ncos;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use base 'Catalyst::Controller';
|
||||
|
||||
=head1 NAME
|
||||
|
||||
admin::Controller::ncos - Catalyst Controller
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Catalyst Controller.
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 index
|
||||
|
||||
Display and edit NCOS levels.
|
||||
|
||||
=cut
|
||||
|
||||
sub index : Private {
|
||||
my ( $self, $c ) = @_;
|
||||
$c->stash->{template} = 'tt/ncos.tt';
|
||||
|
||||
my $levels;
|
||||
return unless $c->model('Provisioning')->call_prov( $c, 'billing', 'get_ncos_levels',
|
||||
undef,
|
||||
\$levels
|
||||
);
|
||||
$c->stash->{levels} = $$levels{result} if eval { @{$$levels{result}} };
|
||||
|
||||
|
||||
$c->stash->{edit_level} = $c->request->params->{edit_level};
|
||||
|
||||
if(exists $c->session->{crefill}) {
|
||||
$c->stash->{crefill} = $c->session->{crefill};
|
||||
delete $c->session->{crefill};
|
||||
}
|
||||
if(exists $c->session->{erefill}) {
|
||||
$c->stash->{erefill} = $c->session->{erefill};
|
||||
delete $c->session->{erefill};
|
||||
} elsif($c->request->params->{edit_level}) {
|
||||
foreach my $lvl (eval { @{$$levels{result}} }) {
|
||||
if($$lvl{level} == $c->request->params->{edit_level}) {
|
||||
$c->stash->{erefill} = $lvl;
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
=head2 do_create_level
|
||||
|
||||
Create a new NCOS level in the database.
|
||||
|
||||
=cut
|
||||
|
||||
sub do_create_level : Local {
|
||||
my ( $self, $c ) = @_;
|
||||
|
||||
my %messages;
|
||||
my %settings;
|
||||
|
||||
$settings{level} = $c->request->params->{level};
|
||||
$settings{data}{mode} = $c->request->params->{mode}
|
||||
if defined $c->request->params->{mode};
|
||||
$settings{data}{description} = $c->request->params->{description}
|
||||
if length $c->request->params->{description};
|
||||
|
||||
unless(keys %messages) {
|
||||
if($c->model('Provisioning')->call_prov( $c, 'billing', 'create_ncos_level',
|
||||
\%settings,
|
||||
undef))
|
||||
{
|
||||
$messages{clvlmsg} = 'Web.NCOS.LevelCreated';
|
||||
$c->session->{messages} = \%messages;
|
||||
$c->response->redirect("/ncos#create_level");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$messages{clvlerr} = 'Client.Voip.InputErrorFound';
|
||||
$c->session->{messages} = \%messages;
|
||||
$c->session->{crefill} = \%settings;
|
||||
$c->response->redirect("/ncos#create_level");
|
||||
return;
|
||||
}
|
||||
|
||||
=head2 do_update_level
|
||||
|
||||
Update settings of an NCOS level in the database.
|
||||
|
||||
=cut
|
||||
|
||||
sub do_update_level : Local {
|
||||
my ( $self, $c ) = @_;
|
||||
|
||||
my %messages;
|
||||
my %settings;
|
||||
|
||||
$settings{level} = $c->request->params->{level};
|
||||
unless(length $settings{level}) {
|
||||
$c->response->redirect("/ncos");
|
||||
return;
|
||||
}
|
||||
|
||||
$settings{data}{mode} = $c->request->params->{mode}
|
||||
if defined $c->request->params->{mode};
|
||||
$settings{data}{description} = $c->request->params->{description};
|
||||
|
||||
unless(keys %messages) {
|
||||
if($c->model('Provisioning')->call_prov( $c, 'billing', 'update_ncos_level',
|
||||
\%settings,
|
||||
undef))
|
||||
{
|
||||
$messages{provmsg} = 'Web.NCOSLevel.Updated';
|
||||
$c->session->{messages} = \%messages;
|
||||
$c->response->redirect("/ncos");
|
||||
return;
|
||||
}
|
||||
$c->response->redirect("/ncos?edit_level=$settings{level}");
|
||||
return;
|
||||
}
|
||||
|
||||
$messages{elvlerr} = 'Client.Voip.InputErrorFound';
|
||||
$c->session->{messages} = \%messages;
|
||||
$c->response->redirect("/ncos?edit_level=$settings{level}");
|
||||
return;
|
||||
}
|
||||
|
||||
=head2 do_delete_level
|
||||
|
||||
Delete an NCOS level from the database.
|
||||
|
||||
=cut
|
||||
|
||||
sub do_delete_level : Local {
|
||||
my ( $self, $c ) = @_;
|
||||
|
||||
my %settings;
|
||||
|
||||
$settings{level} = $c->request->params->{level};
|
||||
unless(length $settings{level}) {
|
||||
$c->response->redirect("/ncos");
|
||||
return;
|
||||
}
|
||||
|
||||
if($c->model('Provisioning')->call_prov( $c, 'billing', 'delete_ncos_level',
|
||||
\%settings,
|
||||
undef))
|
||||
{
|
||||
$c->session->{messages} = { provmsg => 'Web.NCOSLevel.Deleted' };
|
||||
$c->response->redirect("/ncos");
|
||||
return;
|
||||
}
|
||||
|
||||
$c->response->redirect("/ncos");
|
||||
return;
|
||||
}
|
||||
|
||||
=head2 lists
|
||||
|
||||
Display and edit NCOS pattern and LNP lists.
|
||||
|
||||
=cut
|
||||
|
||||
sub lists : Local {
|
||||
my ( $self, $c ) = @_;
|
||||
$c->stash->{template} = 'tt/ncos_lists.tt';
|
||||
|
||||
my $level = $c->request->params->{level};
|
||||
my $lvli;
|
||||
return unless $c->model('Provisioning')->call_prov( $c, 'billing', 'get_ncos_level',
|
||||
{ level => $level },
|
||||
\$lvli
|
||||
);
|
||||
$c->stash->{level} = $lvli;
|
||||
$c->stash->{level}{level} = $level;
|
||||
|
||||
my $patterns;
|
||||
return unless $c->model('Provisioning')->call_prov( $c, 'billing', 'get_ncos_pattern_list',
|
||||
{ level => $level },
|
||||
\$patterns
|
||||
);
|
||||
$c->stash->{patterns} = $$patterns{result} if eval { @{$$patterns{result}} };
|
||||
|
||||
my $lnpids;
|
||||
return unless $c->model('Provisioning')->call_prov( $c, 'billing', 'get_ncos_lnp_list',
|
||||
{ level => $level },
|
||||
\$lnpids
|
||||
);
|
||||
$c->stash->{lnpids} = $$lnpids{result} if eval { @{$$lnpids{result}} };
|
||||
|
||||
my $providers;
|
||||
return unless $c->model('Provisioning')->call_prov( $c, 'billing', 'get_lnp_providers',
|
||||
{ level => $level },
|
||||
\$providers
|
||||
);
|
||||
foreach my $lnpid (eval { @{$$lnpids{result}} }) {
|
||||
for(eval { @{$$providers{result}} }) {
|
||||
if($$_{id} == $$lnpid{lnp_provider_id}) {
|
||||
$$lnpid{lnp_provider} = $$_{name};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# filter already used LNP providers
|
||||
@{$$providers{result}} = grep { my $tmp = $$_{id};
|
||||
! grep { $$_{lnp_provider_id} == $tmp }
|
||||
eval { @{$$lnpids{result}} }
|
||||
}
|
||||
eval { @{$$providers{result}} };
|
||||
$c->stash->{providers} = $$providers{result} if @{$$providers{result}};
|
||||
|
||||
$c->stash->{edit_pattern} = $c->request->params->{edit_pattern};
|
||||
$c->stash->{edit_lnpid} = $c->request->params->{edit_lnpid};
|
||||
|
||||
if(exists $c->session->{pcrefill}) {
|
||||
$c->stash->{pcrefill} = $c->session->{pcrefill};
|
||||
delete $c->session->{pcrefill};
|
||||
}
|
||||
if(exists $c->session->{perefill}) {
|
||||
$c->stash->{perefill} = $c->session->{perefill};
|
||||
delete $c->session->{perefill};
|
||||
} elsif($c->request->params->{edit_pattern}) {
|
||||
foreach my $pat (eval { @{$$patterns{result}} }) {
|
||||
if($$pat{pattern} eq $c->request->params->{edit_pattern}) {
|
||||
$c->stash->{perefill} = $pat;
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(exists $c->session->{lcrefill}) {
|
||||
$c->stash->{lcrefill} = $c->session->{lcrefill};
|
||||
delete $c->session->{lcrefill};
|
||||
}
|
||||
if(exists $c->session->{lerefill}) {
|
||||
$c->stash->{lerefill} = $c->session->{lerefill};
|
||||
delete $c->session->{lerefill};
|
||||
} elsif($c->request->params->{edit_lnpid}) {
|
||||
foreach my $lnpid (eval { @{$$lnpids{result}} }) {
|
||||
if($$lnpid{lnp_provider_id} == $c->request->params->{edit_lnpid}) {
|
||||
$c->stash->{lerefill} = $lnpid;
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
=head2 do_create_pattern
|
||||
|
||||
Creates a new entry in the pattern list of an NCOS level.
|
||||
|
||||
=cut
|
||||
|
||||
sub do_create_pattern : Local {
|
||||
my ( $self, $c ) = @_;
|
||||
|
||||
my %settings;
|
||||
$settings{level} = $c->request->params->{level};
|
||||
|
||||
$settings{patterns}[0]{pattern} = $c->request->params->{pattern};
|
||||
$settings{patterns}[0]{description} = $c->request->params->{description};
|
||||
|
||||
$settings{purge_existing} = 0;
|
||||
|
||||
if($c->model('Provisioning')->call_prov( $c, 'billing', 'set_ncos_pattern_list',
|
||||
\%settings,
|
||||
undef))
|
||||
{
|
||||
$c->session->{messages} = { patmsg => 'Web.NCOSPattern.Created' };
|
||||
$c->response->redirect("/ncos/lists?level=$settings{level}");
|
||||
return;
|
||||
}
|
||||
|
||||
$c->session->{messages}{paterr} = 'Client.Voip.InputErrorFound';
|
||||
$c->session->{pcrefill} = $settings{patterns}[0];
|
||||
$c->response->redirect("/ncos/lists?level=$settings{level}");
|
||||
return;
|
||||
}
|
||||
|
||||
=head2 do_delete_pattern
|
||||
|
||||
Deletes an entry from the pattern list of an NCOS level.
|
||||
|
||||
=cut
|
||||
|
||||
sub do_delete_pattern : Local {
|
||||
my ( $self, $c ) = @_;
|
||||
|
||||
my %settings;
|
||||
$settings{level} = $c->request->params->{level};
|
||||
my $pattern = $c->request->params->{pattern};
|
||||
|
||||
my $patterns;
|
||||
unless($c->model('Provisioning')->call_prov( $c, 'billing', 'get_ncos_pattern_list',
|
||||
\%settings,
|
||||
\$patterns))
|
||||
{
|
||||
$c->response->redirect("/ncos/lists?level=$settings{level}");
|
||||
return;
|
||||
}
|
||||
@{$settings{patterns}} = grep { $$_{pattern} ne $pattern } @{$$patterns{result}};
|
||||
$settings{purge_existing} = 1;
|
||||
|
||||
if($c->model('Provisioning')->call_prov( $c, 'billing', 'set_ncos_pattern_list',
|
||||
\%settings,
|
||||
undef))
|
||||
{
|
||||
$c->session->{messages} = { patmsg => 'Web.NCOSPattern.Deleted' };
|
||||
$c->response->redirect("/ncos/lists?level=$settings{level}");
|
||||
return;
|
||||
}
|
||||
|
||||
$c->response->redirect("/ncos/lists?level=$settings{level}");
|
||||
return;
|
||||
}
|
||||
|
||||
=head2 do_update_pattern
|
||||
|
||||
Updates an entry from the pattern list of an NCOS level.
|
||||
|
||||
=cut
|
||||
|
||||
sub do_update_pattern : Local {
|
||||
my ( $self, $c ) = @_;
|
||||
|
||||
my %settings;
|
||||
$settings{level} = $c->request->params->{level};
|
||||
my $oldpattern = $c->request->params->{oldpattern};
|
||||
my $newpattern = $c->request->params->{newpattern};
|
||||
my $description = $c->request->params->{description};
|
||||
|
||||
my $patterns;
|
||||
unless($c->model('Provisioning')->call_prov( $c, 'billing', 'get_ncos_pattern_list',
|
||||
\%settings,
|
||||
\$patterns))
|
||||
{
|
||||
$c->response->redirect("/ncos/lists?level=$settings{level}");
|
||||
return;
|
||||
}
|
||||
@{$settings{patterns}} = grep { $$_{pattern} ne $oldpattern } @{$$patterns{result}};
|
||||
$settings{purge_existing} = 1;
|
||||
push @{$settings{patterns}}, { pattern => $newpattern, description => $description };
|
||||
|
||||
if($c->model('Provisioning')->call_prov( $c, 'billing', 'set_ncos_pattern_list',
|
||||
\%settings,
|
||||
undef))
|
||||
{
|
||||
$c->session->{messages} = { patmsg => 'Web.NCOSPattern.Updated' };
|
||||
$c->response->redirect("/ncos/lists?level=$settings{level}");
|
||||
return;
|
||||
}
|
||||
|
||||
$c->session->{messages}{paterr} = 'Client.Voip.InputErrorFound';
|
||||
$c->session->{perefill} = $settings{patterns}[-1];
|
||||
$c->response->redirect("/ncos/lists?level=$settings{level}&edit_pattern=$oldpattern");
|
||||
return;
|
||||
}
|
||||
|
||||
=head2 do_set_lnp_provider_id
|
||||
|
||||
Creates or updates an entry in the LNP provider list of an NCOS level.
|
||||
|
||||
=cut
|
||||
|
||||
sub do_set_lnp_provider_id : Local {
|
||||
my ( $self, $c ) = @_;
|
||||
|
||||
my %settings;
|
||||
$settings{level} = $c->request->params->{level};
|
||||
|
||||
$settings{lnp_provider_ids}[0]{lnp_provider_id} = $c->request->params->{lnp_provider_id};
|
||||
$settings{lnp_provider_ids}[0]{description} = $c->request->params->{description};
|
||||
|
||||
$settings{purge_existing} = 0;
|
||||
|
||||
if($c->model('Provisioning')->call_prov( $c, 'billing', 'set_ncos_lnp_list',
|
||||
\%settings,
|
||||
undef))
|
||||
{
|
||||
if($c->request->params->{new}) {
|
||||
$c->session->{messages}{lnpmsg} = 'Web.NCOSLNP.Created';
|
||||
$c->response->redirect("/ncos/lists?level=$settings{level}#LNP");
|
||||
} else {
|
||||
$c->session->{messages}{lnpmsg} = 'Web.NCOSLNP.Updated';
|
||||
$c->response->redirect("/ncos/lists?level=$settings{level}&edit_lnpid=".
|
||||
$c->request->params->{lnp_provider_id} ."#LNP");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
$c->session->{messages}{lnperr} = 'Client.Voip.InputErrorFound';
|
||||
if($c->request->params->{new}) {
|
||||
$c->session->{lcrefill} = $settings{lnp_provider_ids}[0];
|
||||
$c->response->redirect("/ncos/lists?level=$settings{level}#LNP");
|
||||
} else {
|
||||
$c->session->{lerefill} = $settings{lnp_provider_ids}[0];
|
||||
$c->response->redirect("/ncos/lists?level=$settings{level}&edit_lnpid=".
|
||||
$c->request->params->{lnp_provider_id} ."#LNP");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
=head2 do_delete_lnp_provider_id
|
||||
|
||||
Deletes an entry from the LNP provider list of an NCOS level.
|
||||
|
||||
=cut
|
||||
|
||||
sub do_delete_lnp_provider_id : Local {
|
||||
my ( $self, $c ) = @_;
|
||||
|
||||
my %settings;
|
||||
$settings{level} = $c->request->params->{level};
|
||||
my $lnpid = $c->request->params->{lnp_provider_id};
|
||||
|
||||
my $lnpids;
|
||||
unless($c->model('Provisioning')->call_prov( $c, 'billing', 'get_ncos_lnp_list',
|
||||
\%settings,
|
||||
\$lnpids))
|
||||
{
|
||||
$c->response->redirect("/ncos/lists?level=$settings{level}#LNP");
|
||||
return;
|
||||
}
|
||||
@{$settings{lnp_provider_ids}} = grep { $$_{lnp_provider_id} != $lnpid } @{$$lnpids{result}};
|
||||
$settings{purge_existing} = 1;
|
||||
|
||||
if($c->model('Provisioning')->call_prov( $c, 'billing', 'set_ncos_lnp_list',
|
||||
\%settings,
|
||||
undef))
|
||||
{
|
||||
$c->session->{messages} = { lnpmsg => 'Web.NCOSLNP.Deleted' };
|
||||
$c->response->redirect("/ncos/lists?level=$settings{level}#LNP");
|
||||
return;
|
||||
}
|
||||
|
||||
$c->response->redirect("/ncos/lists?level=$settings{level}#LNP");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
=head1 BUGS AND LIMITATIONS
|
||||
|
||||
=over
|
||||
|
||||
=item none
|
||||
|
||||
=back
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
Provisioning model, Sipwise::Provisioning::Billing, Catalyst
|
||||
|
||||
=head1 AUTHORS
|
||||
|
||||
Daniel Tiefnig <dtiefnig@sipwise.com>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
The billing controller is Copyright (c) 2009 Sipwise GmbH, Austria. All
|
||||
rights reserved.
|
||||
|
||||
=cut
|
||||
|
||||
# ende gelaende
|
||||
1;
|
||||
@ -0,0 +1,126 @@
|
||||
<h3>Existing NCOS Levels</h3>
|
||||
|
||||
<div class="p1">
|
||||
[% IF messages.elvlmsg %]<div class="goodmsg">[% messages.elvlmsg %]</div>[% END %]
|
||||
[% IF messages.elvlerr %]<div class="errormsg">[% messages.elvlerr %]</div>[% END %]
|
||||
|
||||
[% IF levels %]
|
||||
<table class="ncoslevels">
|
||||
<tr class="table_header">
|
||||
<td style="width:60px;">Level</td>
|
||||
<td style="width:80px;">Mode</td>
|
||||
<td style="width:310px;">Description</td>
|
||||
<td style="width:40px;" />
|
||||
<td style="width:60px;" />
|
||||
</tr>
|
||||
[% FOREACH level = levels %]
|
||||
[% IF level.level == edit_level %]
|
||||
<tr>
|
||||
<form action="/ncos/do_update_level" method="post">
|
||||
<input type="hidden" name="level" value="[% level.level %]" />
|
||||
<td class="tdkey">[% level.level %]</td>
|
||||
<td>
|
||||
<select size="1" name="mode">
|
||||
<option value="blacklist"
|
||||
[% IF erefill.mode == 'blacklist' %]selected="selected"[% END %]
|
||||
>blacklist</option>
|
||||
<option value="whitelist"
|
||||
[% IF erefill.mode == 'whitelist' %]selected="selected"[% END %]
|
||||
>whitelist</option>
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" class="ilong" title="free-form description string"
|
||||
name="description" value="[% erefill.description %]" />
|
||||
</td>
|
||||
<td>
|
||||
<div class="postlink">
|
||||
<label for="lvlsave[% level.level %]">save</label>
|
||||
<input type="image" class="hidden" src="/static/images/dot_trans.gif" alt="" id="lvlsave[% level.level %]" />
|
||||
</div>
|
||||
</td>
|
||||
</form>
|
||||
<td><a href="/ncos" class="aaction">cancel</a></td>
|
||||
</tr>
|
||||
[% IF messages.elvl %]
|
||||
<tr><td colspan="5"><div class="errormsg">[% messages.elvl %]</div></td></tr>
|
||||
[% END %]
|
||||
[% ELSE %]
|
||||
<tr>
|
||||
<td><a href="/ncos/lists?level=[% level.level %]" class="aaction">[% level.level %]</a></td>
|
||||
<td>[% level.mode %]</td>
|
||||
<td>[% level.description %]</td>
|
||||
<td>
|
||||
[% UNLESS Catalyst.session.admin.read_only %]
|
||||
<a href="/ncos?edit_level=[% level.level %]" class="aaction">edit</a>
|
||||
[% END %]
|
||||
</td>
|
||||
<form action="/ncos/do_delete_level" method="post">
|
||||
<input type="hidden" name="level" value="[% level.level %]" />
|
||||
<td>
|
||||
[% UNLESS Catalyst.session.admin.read_only %]
|
||||
<div class="postlink">
|
||||
<label for="lvldel[% level.level %]">delete</label>
|
||||
<input type="image" class="hidden" src="/static/images/dot_trans.gif" alt="" id="lvldel[% level.level %]" />
|
||||
</div>
|
||||
[% END %]
|
||||
</td>
|
||||
</form>
|
||||
</tr>
|
||||
[% END %]
|
||||
[% END %]
|
||||
</table>
|
||||
[% ELSE %]
|
||||
No NCOS levels found in the database.
|
||||
[% END %]
|
||||
</div>
|
||||
|
||||
[% UNLESS Catalyst.session.admin.read_only %]
|
||||
<h3 id="create_level">Create NCOS Level</h3>
|
||||
|
||||
<div class="p1">
|
||||
[% IF messages.clvlmsg %]<div class="goodmsg">[% messages.clvlmsg %]</div>[% END %]
|
||||
[% IF messages.clvlerr %]<div class="errormsg">[% messages.clvlerr %]</div>[% END %]
|
||||
|
||||
<form action="/ncos/do_create_level" method="post">
|
||||
<table class="ncoslevels">
|
||||
<tr class="table_header">
|
||||
<td style="width:60px;">Level</td>
|
||||
<td style="width:80px;">Mode</td>
|
||||
<td style="width:310px;">Description</td>
|
||||
<td style="width:40px;" />
|
||||
<td style="width:60px;" />
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="text" class="ishort" title="unique identifier, string"
|
||||
name="level" value="[% crefill.level %]" />
|
||||
</td>
|
||||
<td>
|
||||
<select size="1" name="mode">
|
||||
<option value="blacklist"
|
||||
[% IF crefill.mode == 'blacklist' %]selected="selected"[% END %]
|
||||
>blacklist</option>
|
||||
<option value="whitelist"
|
||||
[% IF crefill.mode == 'whitelist' %]selected="selected"[% END %]
|
||||
>whitelist</option>
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" class="ilong" title="free-form description string"
|
||||
name="description" value="[% crefill.description %]" />
|
||||
</td>
|
||||
<td>
|
||||
<div class="postlink">
|
||||
<label for="lvladd">add</label>
|
||||
<input type="image" class="hidden" src="/static/images/dot_trans.gif" alt="" id="lvladd" />
|
||||
</div>
|
||||
</td>
|
||||
<td />
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
[% IF crefill && prov_error %]<div class="errormsg">[% prov_error %]</div>[% END %]
|
||||
|
||||
</div>
|
||||
[% END %]
|
||||
|
||||
@ -0,0 +1,203 @@
|
||||
<h2>NCOS Level <a href="/ncos/lists?level=[% level.level %]">[% level.level %]</a></h2>
|
||||
|
||||
<div class="actions">
|
||||
<a href="/ncos" class="aaction">back</a>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<div class="p1">
|
||||
<table>
|
||||
<tr><td class="tdkey">Mode:</td><td>[% level.mode %]</td></tr>
|
||||
<tr><td class="tdkey">Description:</td><td>[% level.description %]</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<h3 id="pattern">Number Patterns</h3>
|
||||
|
||||
<div class="p1">
|
||||
[% IF messages.patmsg %]<div class="goodmsg">[% messages.patmsg %]</div>[% END %]
|
||||
[% IF messages.paterr %]<div class="errormsg">[% messages.paterr %]</div>[% END %]
|
||||
|
||||
<table class="ncospatterns">
|
||||
<tr class="table_header">
|
||||
<td style="width:120px;">Pattern</td>
|
||||
<td style="width:310px;">Description</td>
|
||||
<td style="width:40px;" />
|
||||
<td style="width:60px;" />
|
||||
</tr>
|
||||
[% id = 0 %]
|
||||
[% FOREACH pattern = patterns %]
|
||||
[% id = id + 1 %]
|
||||
[% IF pattern.pattern == edit_pattern %]
|
||||
<tr>
|
||||
<form action="/ncos/do_update_pattern" method="post">
|
||||
<input type="hidden" name="level" value="[% level.level %]" />
|
||||
<input type="hidden" name="oldpattern" value="[% pattern.pattern %]" />
|
||||
<td>
|
||||
<input type="text" title="POSIX regular expression"
|
||||
name="newpattern" value="[% perefill.pattern %]" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" class="ilong" title="free-form description string"
|
||||
name="description" value="[% perefill.description %]" />
|
||||
</td>
|
||||
<td>
|
||||
<div class="postlink">
|
||||
<label for="patsave">save</label>
|
||||
<input type="image" class="hidden" src="/static/images/dot_trans.gif" alt="" id="patsave" />
|
||||
</div>
|
||||
</td>
|
||||
</form>
|
||||
<td><a href="/ncos/lists?level=[% level.level %]" class="aaction">cancel</a></td>
|
||||
</tr>
|
||||
[% IF messages.epat %]
|
||||
<tr><td colspan="5"><div class="errormsg">[% messages.epat %]</div></td></tr>
|
||||
[% END %]
|
||||
[% IF perefill && prov_error %]<tr><td colspan="5"><div class="errormsg">[% prov_error %]</div></td></tr>[% END %]
|
||||
[% ELSE %]
|
||||
<tr>
|
||||
<td>[% pattern.pattern %]</td>
|
||||
<td>[% pattern.description %]</td>
|
||||
<td>
|
||||
[% UNLESS Catalyst.session.admin.read_only %]
|
||||
<a href="/ncos/lists?level=[% level.level %]&edit_pattern=[% pattern.pattern %]" class="aaction">edit</a>
|
||||
[% END %]
|
||||
</td>
|
||||
<form action="/ncos/do_delete_pattern" method="post">
|
||||
<input type="hidden" name="level" value="[% level.level %]" />
|
||||
<input type="hidden" name="pattern" value="[% pattern.pattern %]" />
|
||||
<td>
|
||||
[% UNLESS Catalyst.session.admin.read_only %]
|
||||
<div class="postlink">
|
||||
<label for="patdel[% id %]">delete</label>
|
||||
<input type="image" class="hidden" src="/static/images/dot_trans.gif" alt="" id="patdel[% id %]" />
|
||||
</div>
|
||||
[% END %]
|
||||
</td>
|
||||
</form>
|
||||
</tr>
|
||||
[% END %]
|
||||
[% END %]
|
||||
<tr>
|
||||
<form action="/ncos/do_create_pattern" method="post">
|
||||
<input type="hidden" name="level" value="[% level.level %]" />
|
||||
<td>
|
||||
<input type="text" title="POSIX regular expression"
|
||||
name="pattern" value="[% pcrefill.pattern %]" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" class="ilong" title="free-form description string"
|
||||
name="description" value="[% pcrefill.description %]" />
|
||||
</td>
|
||||
<td>
|
||||
<div class="postlink">
|
||||
<label for="patadd">add</label>
|
||||
<input type="image" class="hidden" src="/static/images/dot_trans.gif" alt="" id="patadd" />
|
||||
</div>
|
||||
</td>
|
||||
</form>
|
||||
<td />
|
||||
</tr>
|
||||
</table>
|
||||
[% IF messages.cpat %]<div class="errormsg">[% messages.cpat %]</div>[% END %]
|
||||
[% IF pcrefill && prov_error %]<div class="errormsg">[% prov_error %]</div>[% END %]
|
||||
</div>
|
||||
|
||||
<h3 id="LNP">LNP Provider List</h3>
|
||||
|
||||
<div class="p1">
|
||||
[% IF messages.lnpmsg %]<div class="goodmsg">[% messages.lnpmsg %]</div>[% END %]
|
||||
[% IF messages.lnperr %]<div class="errormsg">[% messages.lnperr %]</div>[% END %]
|
||||
|
||||
<table class="ncoslnp">
|
||||
<tr class="table_header">
|
||||
<td style="width:120px;">LNP Provider</td>
|
||||
<td style="width:310px;">Description</td>
|
||||
<td style="width:40px;" />
|
||||
<td style="width:60px;" />
|
||||
</tr>
|
||||
[% id = 0 %]
|
||||
[% FOREACH lnpid = lnpids %]
|
||||
[% id = id + 1 %]
|
||||
[% IF lnpid.lnp_provider_id == edit_lnpid %]
|
||||
<tr>
|
||||
<form action="/ncos/do_set_lnp_provider_id" method="post">
|
||||
<input type="hidden" name="level" value="[% level.level %]" />
|
||||
<input type="hidden" name="lnp_provider_id" value="[% lnpid.lnp_provider_id %]" />
|
||||
<td class="tdkey">[% lnpid.lnp_provider %]</td>
|
||||
<td>
|
||||
<input type="text" class="ilong" title="free-form description string"
|
||||
name="description" value="[% lerefill.description %]" />
|
||||
</td>
|
||||
<td>
|
||||
<div class="postlink">
|
||||
<label for="lnpsave">save</label>
|
||||
<input type="image" class="hidden" src="/static/images/dot_trans.gif" alt="" id="lnpsave" />
|
||||
</div>
|
||||
</td>
|
||||
</form>
|
||||
<td><a href="/ncos/lists?level=[% level.level %]#LNP" class="aaction">cancel</a></td>
|
||||
</tr>
|
||||
[% IF messages.elnp %]
|
||||
<tr><td colspan="5"><div class="errormsg">[% messages.elnp %]</div></td></tr>
|
||||
[% END %]
|
||||
[% IF lerefill && prov_error %]<tr><td colspan="5"><div class="errormsg">[% prov_error %]</div></td></tr>[% END %]
|
||||
[% ELSE %]
|
||||
<tr>
|
||||
<td>[% lnpid.lnp_provider %]</td>
|
||||
<td>[% lnpid.description %]</td>
|
||||
<td>
|
||||
[% UNLESS Catalyst.session.admin.read_only %]
|
||||
<a href="/ncos/lists?level=[% level.level %]&edit_lnpid=[% lnpid.lnp_provider_id %]" class="aaction">edit</a>
|
||||
[% END %]
|
||||
</td>
|
||||
<form action="/ncos/do_delete_lnp_provider_id" method="post">
|
||||
<input type="hidden" name="level" value="[% level.level %]" />
|
||||
<input type="hidden" name="lnp_provider_id" value="[% lnpid.lnp_provider_id %]" />
|
||||
<td>
|
||||
[% UNLESS Catalyst.session.admin.read_only %]
|
||||
<div class="postlink">
|
||||
<label for="lnpdel[% id %]">delete</label>
|
||||
<input type="image" class="hidden" src="/static/images/dot_trans.gif" alt="" id="lnpdel[% id %]" />
|
||||
</div>
|
||||
[% END %]
|
||||
</td>
|
||||
</form>
|
||||
</tr>
|
||||
[% END %]
|
||||
[% END %]
|
||||
[% IF providers %]
|
||||
<tr>
|
||||
<form action="/ncos/do_set_lnp_provider_id" method="post">
|
||||
<input type="hidden" name="level" value="[% level.level %]" />
|
||||
<input type="hidden" name="new" value="1" />
|
||||
<td>
|
||||
<select size="1" name="lnp_provider_id">
|
||||
[% FOREACH provider = providers %]
|
||||
<option value="[% provider.id %]"
|
||||
[% IF lcrefill.lnp_provider_id == provider.id %]selected="selected"[% END %]
|
||||
>[% provider.name %]</option>
|
||||
[% END %]
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" class="ilong" title="free-form description string"
|
||||
name="description" value="[% lcrefill.description %]" />
|
||||
</td>
|
||||
<td>
|
||||
<div class="postlink">
|
||||
<label for="lnpadd">add</label>
|
||||
<input type="image" class="hidden" src="/static/images/dot_trans.gif" alt="" id="lnpadd" />
|
||||
</div>
|
||||
</td>
|
||||
</form>
|
||||
<td />
|
||||
</tr>
|
||||
[% ELSE %]
|
||||
<tr><td colspan="5" class="tdcenter">No unused LNP providers found.</td></tr>
|
||||
[% END %]
|
||||
</table>
|
||||
[% IF messages.clnp %]<div class="errormsg">[% messages.clnp %]</div>[% END %]
|
||||
[% IF lcrefill && prov_error %]<div class="errormsg">[% prov_error %]</div>[% END %]
|
||||
</div>
|
||||
|
||||
Loading…
Reference in new issue