diff --git a/lib/admin/Controller/peering.pm b/lib/admin/Controller/peering.pm index 4a79040..4ad724a 100644 --- a/lib/admin/Controller/peering.pm +++ b/lib/admin/Controller/peering.pm @@ -64,6 +64,11 @@ sub index : Private { $c->stash->{contracts} = $contracts; } + if(exists $c->session->{garefill}) { + $c->stash->{garefill} = $c->session->{garefill}; + delete $c->session->{garefill}; + } + return 1; } @@ -112,18 +117,17 @@ sub create_grp : Local { my %messages; my %settings; - my $grpname = $c->request->params->{grpname}; + $settings{name} = $c->request->params->{grpname}; $messages{cpeererr} = 'Client.Syntax.MalformedPeerGroupName' - unless $grpname =~ /^[a-zA-Z0-9_\-]+/; - my $priority = $c->request->params->{priority}; - my $grpdesc = $c->request->params->{grpdesc}; + unless $settings{name} =~ /^[a-zA-Z0-9_\-]+/; + $settings{priority} = $c->request->params->{priority}; + $settings{description} = $c->request->params->{grpdesc}; + $settings{peering_contract_id} = $c->request->params->{peering_contract_id} + if $c->request->params->{peering_contract_id}; unless(keys %messages) { if($c->model('Provisioning')->call_prov( $c, 'voip', 'create_peer_group', - { name => $grpname, - priority => $priority, - description => $grpdesc - }, + { %settings }, undef )) { @@ -131,22 +135,14 @@ sub create_grp : Local { $c->session->{messages} = \%messages; $c->response->redirect("/peering"); return; - } - else - { - $messages{cpeererr} = 'Client.Voip.InputErrorFound'; - } + } } else { - my %arefill = (); - $arefill{name} = $grpname; - $arefill{priority} = $priority; - $arefill{desc} = $grpdesc; - - $c->stash->{arefill} = \%arefill; + $messages{cpeererr} = 'Client.Voip.InputErrorFound'; } + $c->session->{garefill} = \%settings; $c->session->{messages} = \%messages; - $c->response->redirect("/peering"); + $c->response->redirect("/peering#create_group"); return; } @@ -163,30 +159,24 @@ sub edit_grp : Local { my %messages; my %settings; - my $grpid = $c->request->params->{grpid}; - my $priority = $c->request->params->{priority}; - my $grpdesc = $c->request->params->{grpdesc}; + $settings{id} = $c->request->params->{grpid}; + $settings{priority} = $c->request->params->{priority}; + $settings{description} = $c->request->params->{grpdesc}; + $settings{peering_contract_id} = $c->request->params->{peering_contract_id} || undef; #$c->log->debug('*** edit grp'); unless(keys %messages) { if($c->model('Provisioning')->call_prov( $c, 'voip', 'update_peer_group', - { id => $grpid, - priority => $priority, - description => $grpdesc - }, + \%settings, undef )) { $messages{epeermsg} = 'Server.Voip.SavedSettings'; - } - else - { - $messages{epeererr} = 'Client.Voip.InputErrorFound'; - } + } } $c->session->{messages} = \%messages; - $c->response->redirect("/peering"); + $c->response->redirect("/peering#groups"); return; } @@ -833,7 +823,7 @@ sub contract_detail : Local { return 1; } -=head2 save_account +=head2 save_contract Create or update details of a SIP peering contract. @@ -869,9 +859,9 @@ sub save_contract : Local { }, undef)) { - $messages{conmsg} = 'Server.Voip.SavedSettings'; + $messages{topmsg} = 'Web.Contract.Updated'; $c->session->{messages} = \%messages; - $c->response->redirect("/peering/contract_detail?edit_contract=1&amb;contract_id=$contract_id"); + $c->response->redirect("/peering"); return; } } else { @@ -879,9 +869,9 @@ sub save_contract : Local { { data => \%settings }, \$contract_id)) { - $messages{conmsg} = 'Web.Account.Created'; + $messages{topmsg} = 'Web.Contract.Created'; $c->session->{messages} = \%messages; - $c->response->redirect("/peering/contract_detail?edit_contract=1&amb;contract_id=$contract_id"); + $c->response->redirect("/peering"); return; } } @@ -910,7 +900,7 @@ sub terminate_contract : Local { { id => $contract_id }, undef)) { - $messages{topmsg} = 'Server.Voip.SubscriberDeleted'; + $messages{topmsg} = 'Web.Contract.Deleted'; $c->session->{messages} = \%messages; $c->response->redirect("/peering"); return; @@ -938,7 +928,7 @@ sub delete_contract : Local { { id => $contract_id }, undef)) { - $messages{topmsg} = 'Server.Voip.SubscriberDeleted'; + $messages{topmsg} = 'Web.Contract.Deleted'; $c->session->{messages} = \%messages; $c->response->redirect("/peering"); return; diff --git a/root/tt/peering.tt b/root/tt/peering.tt index 20801fd..56e77cd 100644 --- a/root/tt/peering.tt +++ b/root/tt/peering.tt @@ -39,7 +39,7 @@ [% END %] -

SIP Peering Groups

+

SIP Peering Groups

[% IF messages.epeermsg %]
[% messages.epeermsg %]
[% END %] @@ -51,6 +51,9 @@ Name Priority Description + [% IF Catalyst.config.billing_features %] + Peering Contract + [% END %] @@ -74,6 +77,18 @@ + [% IF Catalyst.config.billing_features %] + + + + [% END %] [% UNLESS Catalyst.session.admin.read_only %] -

Create Peering Group

+

Create Peering Group

[% IF messages.cpeermsg %]
[% messages.cpeermsg %]
[% END %] @@ -126,6 +144,9 @@ Name Priority Description + [% IF Catalyst.config.billing_features %] + Peering Contract + [% END %] @@ -133,21 +154,33 @@ + id="addtxt" value="[% garefill.name %]" /> + [% count = 1 %] + [% WHILE count < 10 %] + + [% count = count + 1 %] + [% END %] + + id="addtxt" value="[% garefill.description %]" /> + [% IF Catalyst.config.billing_features %] + + + + [% END %]