merged r5696:5806 from branch 3.1:


			
			
				3.2
			
			
		
Daniel Tiefnig 14 years ago
parent bfde877838
commit 2875bd90ee

@ -100,243 +100,6 @@ sub do_delete_domain : Local {
return;
}
=head2 rewrite
Show rewrite rule details for a given domain.
=cut
sub rewrite : Local {
my ( $self, $c ) = @_;
$c->stash->{template} = 'tt/domain_rewrite.tt';
my $domain = $c->request->params->{domain};
my $domain_rw;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_domain_rewrites',
{ domain => $domain },
\$domain_rw
);
$c->stash->{domain} = $domain_rw;
$c->stash->{editid} = $c->request->params->{editid};
return 1;
}
=head2 create_rewrite
Create a rewrite rule for a given domain
=cut
sub create_rewrite : Local {
my ( $self, $c ) = @_;
my %messages;
my %settings;
my $domain = $c->request->params->{domain};
my $direction = $c->request->params->{direction};
my $field = $c->request->params->{field};
my $match_pattern = $c->request->params->{match_pattern};
my $replace_pattern = $c->request->params->{replace_pattern};
my $description = $c->request->params->{description};
my $priority = $c->request->params->{priority};
my $a = "";
if($field eq 'caller') { $a = 'caller'.$a; }
elsif($field eq 'callee') { $a = 'callee'.$a; }
if($direction eq 'in') { $a = 'i'.$a; }
elsif($direction eq 'out') { $a = 'o'.$a; }
my $m = $a.'msg'; my $e = $a.'err'; my $d = $a.'detail';
unless(keys %messages) {
if($c->model('Provisioning')->call_prov( $c, 'voip', 'create_domain_rewrite',
{ domain => $domain,
data => {
direction => $direction,
field => $field,
match_pattern => $match_pattern,
replace_pattern => $replace_pattern,
description => $description,
priority => $priority,
},
},
undef
))
{
$messages{$m} = 'Server.Voip.SavedSettings';
$c->session->{messages} = \%messages;
$c->response->redirect("/domain/rewrite?domain=$domain#$a");
return;
}
else
{
$messages{$e} = 'Client.Voip.InputErrorFound';
if($c->session->{prov_error_object}) {
$c->flash->{$d} = $c->session->{prov_error_object};
}
}
} else {
}
$c->session->{messages} = \%messages;
$c->response->redirect("/domain/rewrite?domain=$domain#$a");
return;
}
=head2 edit_rewrite
Updates a rewrite rule
=cut
sub edit_rewrite : Local {
my ( $self, $c ) = @_;
my %messages;
my %settings;
my $domain = $c->request->params->{domain};
my $direction = $c->request->params->{direction};
my $field = $c->request->params->{field};
my $rewriteid = $c->request->params->{rewriteid};
my $match_pattern = $c->request->params->{match_pattern};
my $replace_pattern = $c->request->params->{replace_pattern};
my $description = $c->request->params->{description};
my $priority = $c->request->params->{priority};
my $a = "";
if($field eq 'caller') { $a = 'caller'.$a; }
elsif($field eq 'callee') { $a = 'callee'.$a; }
if($direction eq 'in') { $a = 'i'.$a; }
elsif($direction eq 'out') { $a = 'o'.$a; }
my $m = $a.'msg'; my $e = $a.'err'; my $d = $a.'detail';
unless(keys %messages) {
if($c->model('Provisioning')->call_prov( $c, 'voip', 'update_domain_rewrite',
{ id => $rewriteid,
data => {
match_pattern => $match_pattern,
replace_pattern => $replace_pattern,
description => $description,
direction => $direction,
field => $field,
priority => $priority,
},
},
undef
))
{
$messages{$m} = 'Server.Voip.SavedSettings';
$c->session->{messages} = \%messages;
$c->response->redirect("/domain/rewrite?domain=$domain#$a");
return;
}
else
{
$messages{$e} = 'Client.Voip.InputErrorFound';
if($c->session->{prov_error_object}) {
$c->flash->{$d} = $c->session->{prov_error_object};
}
}
} else {
}
$c->session->{messages} = \%messages;
$c->response->redirect("/domain/rewrite?domain=$domain#$a");
return;
}
=head2 update_rewrite_priority
Updates the priority of rewrite rules upon re-order
=cut
sub update_rewrite_priority : Local {
my ( $self, $c ) = @_;
my %messages;
my %settings;
my $prio = 0;
my $rules = $c->request->params->{'rule[]'};
foreach my $rule_id(@$rules)
{
my $rule = undef;
$c->model('Provisioning')->call_prov( $c, 'voip', 'get_domain_rewrite',
{ id => $rule_id },
\$rule
);
$c->model('Provisioning')->call_prov( $c, 'voip', 'update_domain_rewrite',
{ id => $rule_id,
data => {
match_pattern => $rule->{match_pattern},
replace_pattern => $rule->{replace_pattern},
description => $rule->{description},
direction => $rule->{direction},
field => $rule->{field},
priority => $prio,
},
},
undef
);
$prio++;
}
$c->session->{messages} = \%messages;
$c->response->redirect("/domain");
return;
}
=head2 delete_rewrite
Delete a rewrite rule
=cut
sub delete_rewrite : Local {
my ( $self, $c ) = @_;
my %messages;
my %settings;
my $domain = $c->request->params->{domain};
my $rewriteid = $c->request->params->{rewriteid};
my $direction = $c->request->params->{direction};
my $field = $c->request->params->{field};
my $a = "";
if($field eq 'caller') { $a = 'caller'.$a; }
elsif($field eq 'callee') { $a = 'callee'.$a; }
if($direction eq 'in') { $a = 'i'.$a; }
elsif($direction eq 'out') { $a = 'o'.$a; }
my $m = $a.'msg'; my $e = $a.'err';
unless(keys %messages) {
if($c->model('Provisioning')->call_prov( $c, 'voip', 'delete_domain_rewrite',
{ id => $rewriteid
},
undef
))
{
$messages{$m} = 'Server.Voip.SavedSettings';
$c->session->{messages} = \%messages;
$c->response->redirect("/domain/rewrite?domain=$domain#$a");
return;
}
} else {
}
$c->session->{messages} = \%messages;
$c->response->redirect("/domain/rewrite?domain=$domain#$a");
return;
}
=head2 preferences
Show preferences for a given domain.

@ -507,329 +507,6 @@ sub edit_peer : Local {
return;
}
=head2 rewrite
Show rewrite rules for a given peer
=cut
sub rewrite : Local {
my ( $self, $c ) = @_;
$c->stash->{template} = 'tt/peering_rewrite.tt';
my $peerid = $c->request->params->{peerid};
my $peer_details;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_peer_host_details',
{ id => $peerid },
\$peer_details
);
my $all_peer_details;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_peer_group_details',
{ id => $$peer_details{peer_host}{group_id} },
\$all_peer_details
);
my $all_peers = $$all_peer_details{peers};
my @final_peers = ();
for(my $i = 0; $i < @$all_peers; ++$i)
{
my $peer = @$all_peers[$i];
push @final_peers, $peer if $$peer{id} != $peerid;
}
$c->stash->{peer} = $peer_details;
$c->stash->{all_peers} = \@final_peers;
$c->stash->{editid} = $c->request->params->{editid};
return 1;
}
=head2 create_rewrite
Create a rewrite rule for a given peer with defined direction and field
=cut
sub create_rewrite : Local {
my ( $self, $c ) = @_;
$c->stash->{template} = 'tt/peering_rewrite.tt';
my %messages;
my %settings;
my $grpid = $c->request->params->{grpid};
my $peerid = $c->request->params->{peerid};
my $match_pattern = $c->request->params->{match_pattern};
my $replace_pattern = $c->request->params->{replace_pattern};
my $description = $c->request->params->{description};
my $direction = $c->request->params->{direction};
my $field = $c->request->params->{field};
my $priority = $c->request->params->{priority};
my $a = "";
if($field eq 'caller') { $a = 'caller'.$a; }
elsif($field eq 'callee') { $a = 'callee'.$a; }
if($direction eq 'in') { $a = 'i'.$a; }
elsif($direction eq 'out') { $a = 'o'.$a; }
my $m = $a.'msg'; my $e = $a.'err'; my $d = $a.'detail';
# $messages{crulerr} = 'Client.Syntax.MalformedPeerGroupName'
# unless $callee_prefix =~ /^[a-zA-Z0-9_\.\-\@\:]+/;
unless(keys %messages) {
if($c->model('Provisioning')->call_prov( $c, 'voip', 'create_peer_rewrite',
{ peer_id => $peerid,
data => {
match_pattern => $match_pattern,
replace_pattern => $replace_pattern,
description => $description,
direction => $direction,
field => $field,
priority => $priority,
},
},
undef
))
{
$messages{$m} = 'Server.Voip.SavedSettings';
$c->session->{messages} = \%messages;
$c->response->redirect("/peering/rewrite?peerid=$peerid#$a");
return;
}
else
{
$messages{$e} = 'Client.Voip.InputErrorFound';
if($c->session->{prov_error_object}) {
$c->flash->{$d} = $c->session->{prov_error_object};
}
}
} else {
# TODO: add proper values here and set them in tt
my %arefill = ();
# $arefill{name} = $grpname;
# $arefill{desc} = $grpdesc;
$c->stash->{arefill} = \%arefill;
}
$c->session->{messages} = \%messages;
$c->response->redirect("/peering/rewrite?peerid=$peerid#$a");
return;
}
=head2 update_rewrite_priority
Updates the priority of rewrite rules upon re-order
=cut
sub update_rewrite_priority : Local {
my ( $self, $c ) = @_;
my %messages;
my %settings;
my $prio = 0;
my $rules = $c->request->params->{'rule[]'};
foreach my $rule_id(@$rules)
{
my $rule = undef;
$c->model('Provisioning')->call_prov( $c, 'voip', 'get_peer_rewrite',
{ id => $rule_id },
\$rule
);
$c->model('Provisioning')->call_prov( $c, 'voip', 'update_peer_rewrite',
{ id => $rule_id,
data => {
match_pattern => $rule->{match_pattern},
replace_pattern => $rule->{replace_pattern},
description => $rule->{description},
direction => $rule->{direction},
field => $rule->{field},
priority => $prio,
},
},
undef
);
$prio++;
}
$c->session->{messages} = \%messages;
$c->response->redirect("/");
return;
}
=head2 delete_rewrite
Delete a rewrite rule
=cut
sub delete_rewrite : Local {
my ( $self, $c ) = @_;
$c->stash->{template} = 'tt/peering_rewrite.tt';
my %messages;
my %settings;
my $peerid = $c->request->params->{peerid};
my $rewriteid = $c->request->params->{rewriteid};
my $direction = $c->request->params->{direction};
my $field = $c->request->params->{field};
my $a = "";
if($field eq 'caller') { $a = 'caller'.$a; }
elsif($field eq 'callee') { $a = 'callee'.$a; }
if($direction eq 'in') { $a = 'i'.$a; }
elsif($direction eq 'out') { $a = 'o'.$a; }
my $m = $a.'msg'; my $e = $a.'err';
unless(keys %messages) {
if($c->model('Provisioning')->call_prov( $c, 'voip', 'delete_peer_rewrite',
{ id => $rewriteid
},
undef
))
{
$messages{$m} = 'Server.Voip.SavedSettings';
$c->session->{messages} = \%messages;
$c->response->redirect("/peering/rewrite?peerid=$peerid#$a");
return;
}
} else {
}
$c->session->{messages} = \%messages;
$c->response->redirect("/peering/rewrite?peerid=$peerid#$a");
return;
}
=head2 edit_rewrite
Updates a rewrite rule
=cut
sub edit_rewrite : Local {
my ( $self, $c ) = @_;
$c->stash->{template} = 'tt/peering_rewrite.tt';
my %messages;
my %settings;
my $peerid = $c->request->params->{peerid};
my $rewriteid = $c->request->params->{rewriteid};
my $match_pattern = $c->request->params->{match_pattern};
my $replace_pattern = $c->request->params->{replace_pattern};
my $description = $c->request->params->{description};
my $direction = $c->request->params->{direction};
my $field = $c->request->params->{field};
my $priority = $c->request->params->{priority};
my $a = "";
if($field eq 'caller') { $a = 'caller'.$a; }
elsif($field eq 'callee') { $a = 'callee'.$a; }
if($direction eq 'in') { $a = 'i'.$a; }
elsif($direction eq 'out') { $a = 'o'.$a; }
my $m = $a.'msg'; my $e = $a.'err'; my $d = $a.'detail';
# $messages{crulerr} = 'Client.Syntax.MalformedPeerGroupName'
# unless $callee_prefix =~ /^[a-zA-Z0-9_\.\-\@\:]+/;
unless(keys %messages) {
if($c->model('Provisioning')->call_prov( $c, 'voip', 'update_peer_rewrite',
{ id => $rewriteid,
data => {
match_pattern => $match_pattern,
replace_pattern => $replace_pattern,
description => $description,
direction => $direction,
field => $field,
priority => $priority,
},
},
undef
))
{
$messages{$m} = 'Server.Voip.SavedSettings';
$c->session->{messages} = \%messages;
$c->response->redirect("/peering/rewrite?peerid=$peerid#$a");
return;
}
else
{
$messages{$e} = 'Client.Voip.InputErrorFound';
if($c->session->{prov_error_object}) {
$c->flash->{$d} = $c->session->{prov_error_object};
}
}
} else {
# TODO: add proper values here and set them in tt
my %arefill = ();
# $arefill{name} = $grpname;
# $arefill{desc} = $grpdesc;
$c->stash->{arefill} = \%arefill;
}
$c->session->{messages} = \%messages;
$c->response->redirect("/peering/rewrite?peerid=$peerid#$a");
return;
}
=head2 copy_rewrite
Copy a rewrite rule from current group
=cut
sub copy_rewrite : Local {
my ( $self, $c ) = @_;
$c->stash->{template} = 'tt/peering_rewrite.tt';
my %messages;
my %settings;
my $peerid = $c->request->params->{peerid};
my $rpeerid = $c->request->params->{rpeerid};
my $policy= $c->request->params->{policy};
my $grpid = $c->request->params->{grpid};
my $delete_existing = $policy eq "delete" ? 1 : 0;
unless(defined $peerid && defined $rpeerid)
{
$messages{cperr} = 'Client.Voip.NoSuchPeerHost';
}
unless(keys %messages) {
if($c->model('Provisioning')->call_prov( $c, 'voip', 'copy_peer_rewrites',
{ from_peer_id => $rpeerid,
to_peer_id => $peerid,
delete_existing => $delete_existing
},
undef
))
{
$messages{cpmsg} = 'Server.Voip.SavedSettings';
$c->session->{messages} = \%messages;
$c->response->redirect("/peering/rewrite?peerid=$peerid");
return;
}
}
else
{
$c->response->redirect("/peering/rewrite?peerid=$peerid");
return;
}
return;
}
=head2 preferences
Show preferences for a given peer host.

@ -0,0 +1,437 @@
package admin::Controller::rewrite;
use strict;
use warnings;
use base 'Catalyst::Controller';
use Data::Dumper;
use admin::Utils;
=head1 NAME
admin::Controller::rewrite - Catalyst Controller
=head1 DESCRIPTION
Catalyst Controller.
=head1 METHODS
=head2 index
Configure SIP rewrites
=cut
sub index : Private {
my ( $self, $c ) = @_;
$c->stash->{template} = 'tt/rewrite.tt';
my $rule_sets;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_rewrite_rule_sets',
undef,
\$rule_sets
);
$c->stash->{rule_sets} = $rule_sets if eval { @$rule_sets };
$c->stash->{editid} = $c->request->params->{editid};
if(exists $c->session->{garefill}) {
$c->stash->{garefill} = $c->session->{garefill};
delete $c->session->{garefill};
}
return 1;
}
=head2 do_delete_set
Delete a rewrite set
=cut
sub delete_set : Local {
my ( $self, $c ) = @_;
$c->stash->{template} = 'tt/rewrite.tt';
my %messages;
my %settings;
my $setid = $c->request->params->{setid};
if($c->model('Provisioning')->call_prov( $c, 'voip', 'delete_rewrite_rule_set',
{ id => $setid
},
undef
))
{
$messages{epeermsg} = 'Web.Rewrite.RuleSetDeleted';
$c->session->{messages} = \%messages;
$c->response->redirect("/rewrite");
return;
}
$c->response->redirect("/rewrite");
return;
}
=head2 create_set
Create a rewrite set
=cut
sub create_set : Local {
my ( $self, $c ) = @_;
$c->stash->{template} = 'tt/rewrite.tt';
my %messages = ();
my %settings = ();
$settings{name} = $c->request->params->{setname};
$messages{cpeererr} = 'Client.Syntax.MalformedRewriteRuleSetName'
unless $settings{name} =~ /^[a-zA-Z0-9_\-]+/;
$settings{description} = $c->request->params->{setdesc};
unless(keys %messages) {
if($c->model('Provisioning')->call_prov( $c, 'voip', 'create_rewrite_rule_set',
{ %settings },
undef
))
{
$messages{cpeermsg} = 'Server.Voip.SavedSettings';
$c->session->{messages} = \%messages;
$c->response->redirect("/rewrite");
return;
}
} else {
$messages{cpeererr} = 'Client.Voip.InputErrorFound';
}
$c->session->{garefill} = \%settings;
$c->session->{messages} = \%messages;
$c->response->redirect("/rewrite#create_set");
return;
}
=head2 edit_set
Edit a rewrite set
=cut
sub edit_set : Local {
my ( $self, $c ) = @_;
$c->stash->{template} = 'tt/rewrite.tt';
my %messages;
my %settings;
my $setid = $c->request->params->{setid};
$settings{description} = $c->request->params->{setdesc};
#$c->log->debug('*** edit set');
unless(keys %messages) {
if($c->model('Provisioning')->call_prov( $c, 'voip', 'update_rewrite_rule_set',
{ id => $setid,
data => \%settings,
},
undef
))
{
$messages{epeermsg} = 'Server.Voip.SavedSettings';
}
}
$c->session->{messages} = \%messages;
$c->response->redirect("/rewrite");
return;
}
=head2 detail
Show rewrite rules for a given set
=cut
sub detail : Local {
my ( $self, $c ) = @_;
$c->stash->{template} = 'tt/rewrite_detail.tt';
my $setid = $c->request->params->{set_id};
my $set_details;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_rewrite_rule_set',
{ id => $setid },
\$set_details
);
$c->stash->{set} = $set_details;
$c->stash->{editid} = $c->request->params->{editid};
return 1;
}
=head2 create_rewrite
Create a rewrite rule for a given peer with defined direction and field
=cut
sub create_rewrite : Local {
my ( $self, $c ) = @_;
$c->stash->{template} = 'tt/rewrite_detail.tt';
my %messages;
my %settings;
my $setid = $c->request->params->{setid};
my $match_pattern = $c->request->params->{match_pattern};
my $replace_pattern = $c->request->params->{replace_pattern};
my $description = $c->request->params->{description};
my $direction = $c->request->params->{direction};
my $field = $c->request->params->{field};
my $priority = $c->request->params->{priority};
my $a = "";
if($field eq 'caller') { $a = 'caller'.$a; }
elsif($field eq 'callee') { $a = 'callee'.$a; }
if($direction eq 'in') { $a = 'i'.$a; }
elsif($direction eq 'out') { $a = 'o'.$a; }
my $m = $a.'msg'; my $e = $a.'err'; my $d = $a.'detail';
# $messages{crulerr} = 'Client.Syntax.MalformedPeerGroupName'
# unless $callee_prefix =~ /^[a-zA-Z0-9_\.\-\@\:]+/;
unless(keys %messages) {
if($c->model('Provisioning')->call_prov( $c, 'voip', 'create_rewrite_rule',
{ set_id => $setid,
data => {
match_pattern => $match_pattern,
replace_pattern => $replace_pattern,
description => $description,
direction => $direction,
field => $field,
priority => $priority,
},
},
undef
))
{
$messages{$m} = 'Server.Voip.SavedSettings';
$c->session->{messages} = \%messages;
$c->response->redirect("/rewrite/detail?set_id=$setid#$a");
return;
}
else
{
$messages{$e} = 'Client.Voip.InputErrorFound';
if($c->session->{prov_error_object}) {
$c->flash->{$d} = $c->session->{prov_error_object};
}
}
} else {
# TODO: add proper values here and set them in tt
my %arefill = ();
# $arefill{name} = $setname;
# $arefill{desc} = $setdesc;
$c->stash->{arefill} = \%arefill;
}
$c->session->{messages} = \%messages;
$c->response->redirect("/rewrite/detail?set_id=$setid#$a");
return;
}
=head2 update_rewrite_priority
Updates the priority of rewrite rules upon re-order
=cut
sub update_rewrite_priority : Local {
my ( $self, $c ) = @_;
my %messages;
my %settings;
my $prio = 0;
my $rules = $c->request->params->{'rule[]'};
foreach my $rule_id(@$rules)
{
my $rule = undef;
$c->model('Provisioning')->call_prov( $c, 'voip', 'get_rewrite_rule',
{ id => $rule_id },
\$rule
);
$c->model('Provisioning')->call_prov( $c, 'voip', 'update_rewrite_rule',
{ id => $rule_id,
data => {
match_pattern => $rule->{match_pattern},
replace_pattern => $rule->{replace_pattern},
description => $rule->{description},
direction => $rule->{direction},
field => $rule->{field},
priority => $prio,
},
},
undef
);
$prio++;
}
$c->session->{messages} = \%messages;
$c->response->redirect("/");
return;
}
=head2 delete_rewrite
Delete a rewrite rule
=cut
sub delete_rewrite : Local {
my ( $self, $c ) = @_;
$c->stash->{template} = 'tt/rewrite_detail.tt';
my %messages;
my %settings;
my $setid = $c->request->params->{setid};
my $rewriteid = $c->request->params->{rewriteid};
my $direction = $c->request->params->{direction};
my $field = $c->request->params->{field};
my $a = "";
if($field eq 'caller') { $a = 'caller'.$a; }
elsif($field eq 'callee') { $a = 'callee'.$a; }
if($direction eq 'in') { $a = 'i'.$a; }
elsif($direction eq 'out') { $a = 'o'.$a; }
my $m = $a.'msg'; my $e = $a.'err';
unless(keys %messages) {
if($c->model('Provisioning')->call_prov( $c, 'voip', 'delete_rewrite_rule',
{ id => $rewriteid
},
undef
))
{
$messages{$m} = 'Server.Voip.SavedSettings';
$c->session->{messages} = \%messages;
$c->response->redirect("/rewrite/detail?set_id=$setid#$a");
return;
}
} else {
}
$c->session->{messages} = \%messages;
$c->response->redirect("/rewrite/detail?set_id=$setid#$a");
return;
}
=head2 edit_rewrite
Updates a rewrite rule
=cut
sub edit_rewrite : Local {
my ( $self, $c ) = @_;
$c->stash->{template} = 'tt/rewrite_detail.tt';
my %messages;
my %settings;
my $setid = $c->request->params->{setid};
my $rewriteid = $c->request->params->{rewriteid};
my $match_pattern = $c->request->params->{match_pattern};
my $replace_pattern = $c->request->params->{replace_pattern};
my $description = $c->request->params->{description};
my $direction = $c->request->params->{direction};
my $field = $c->request->params->{field};
my $priority = $c->request->params->{priority};
my $a = "";
if($field eq 'caller') { $a = 'caller'.$a; }
elsif($field eq 'callee') { $a = 'callee'.$a; }
if($direction eq 'in') { $a = 'i'.$a; }
elsif($direction eq 'out') { $a = 'o'.$a; }
my $m = $a.'msg'; my $e = $a.'err'; my $d = $a.'detail';
# $messages{crulerr} = 'Client.Syntax.MalformedPeerGroupName'
# unless $callee_prefix =~ /^[a-zA-Z0-9_\.\-\@\:]+/;
unless(keys %messages) {
if($c->model('Provisioning')->call_prov( $c, 'voip', 'update_rewrite_rule',
{ id => $rewriteid,
data => {
match_pattern => $match_pattern,
replace_pattern => $replace_pattern,
description => $description,
direction => $direction,
field => $field,
priority => $priority,
},
},
undef
))
{
$messages{$m} = 'Server.Voip.SavedSettings';
$c->session->{messages} = \%messages;
$c->response->redirect("/rewrite/detail?set_id=$setid#$a");
return;
}
else
{
$messages{$e} = 'Client.Voip.InputErrorFound';
if($c->session->{prov_error_object}) {
$c->flash->{$d} = $c->session->{prov_error_object};
}
}
} else {
# TODO: add proper values here and set them in tt
my %arefill = ();
# $arefill{name} = $setname;
# $arefill{desc} = $setdesc;
$c->stash->{arefill} = \%arefill;
}
$c->session->{messages} = \%messages;
$c->response->redirect("/rewrite/detail?set_id=$setid#$a");
return;
}
=head1 BUGS AND LIMITATIONS
=over
=item currently none
=back
=head1 SEE ALSO
Provisioning model, Sipwise::Provisioning::Billing, Catalyst
=head1 AUTHORS
=over
=item Andreas Granig <agranig@sipwise.com>
=back
=head1 COPYRIGHT
The rewrite controller is Copyright (c) 2009-2011 Sipwise GmbH, Austria.
You should have received a copy of the licences terms together with the
software.
=cut
# ende gelaende
1;

@ -706,6 +706,13 @@ sub preferences : Local {
\$ncoslvl
);
$c->stash->{ncos_levels} = $ncoslvl if eval { @$ncoslvl };
} elsif(!$c->stash->{rewrite_rule_sets} and $$pref{preference} eq 'rewrite_rule_set') {
my $rules;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_rewrite_rule_sets',
undef,
\$rules
);
$c->stash->{rewrite_rule_sets} = $rules if eval { @$rules };
} elsif($$pref{preference} eq 'block_in_list' or $$pref{preference} eq 'block_out_list') {
eval { @{$$preferences{$$pref{preference}}} = map { s/^([1-9])/+$1/; $_ } @{$$preferences{$$pref{preference}}} };
}

@ -271,6 +271,13 @@ sub prepare_tt_prefs {
\$ncoslvl
);
$c->stash->{ncos_levels} = $ncoslvl if eval { @$ncoslvl };
} elsif(!$c->stash->{rewrite_rule_sets} and $$pref{preference} eq 'rewrite_rule_set') {
my $rules;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_rewrite_rule_sets',
undef,
\$rules
);
$c->stash->{rewrite_rule_sets} = $rules if eval { @$rules };
} elsif($$pref{preference} eq 'block_in_list' or $$pref{preference} eq 'block_out_list') {
eval { @{$$preferences{$$pref{preference}}} = map { s/^([1-9])/+$1/; $_ } @{$$preferences{$$pref{preference}}} };
}

@ -35,6 +35,7 @@
[% IF Catalyst.config.peering_features %]
<li [% 'class="active_menu"' IF menu.active == "peering" %]><a href="/peering">SIP Peerings</a></li>
[% END %]
<li [% 'class="active_menu"' IF menu.active == "rewrite" %]><a href="/rewrite">Rewrite Rule Sets</a></li>
</ul>
</div>

@ -11,9 +11,7 @@
[% FOREACH domain = domains %]
<li class="ui-state-default">
<div class="span-10 append-5">
[% IF Catalyst.config.domain.rewrite_features %]
<a href="/domain/rewrite?domain=[% domain.domain %]">[% domain.domain %]</a>
[% ELSIF Catalyst.config.domain.preference_features %]
[% IF Catalyst.config.domain.preference_features %]
<a href="/domain/preferences?domain=[% domain.domain %]">[% domain.domain %]</a>
[% ELSIF Catalyst.config.domain.audiofile_features %]
<a href="/domain/audio?domain=[% domain.domain %]">[% domain.domain %]</a>

@ -5,9 +5,6 @@
<div class="topsubmenu">
<ul>
[% IF Catalyst.config.domain.rewrite_features %]
<li><a href="rewrite?domain=[% domain %]"><span>Rewrite Rules</span></a></li>
[% END %]
[% IF Catalyst.config.domain.preference_features %]
<li><a href="preferences?domain=[% domain %]"><span>Preferences</span></a></li>
[% END %]

@ -5,9 +5,6 @@
<div class="topsubmenu">
<ul>
[% IF Catalyst.config.domain.rewrite_features %]
<li><a href="rewrite?domain=[% domain %]"><span>Rewrite Rules</span></a></li>
[% END %]
[% IF Catalyst.config.domain.preference_features %]
<li class="selected"><a href="preferences?domain=[% domain %]"><span>Preferences</span></a></li>
[% END %]
@ -126,6 +123,28 @@
[% END %]
</div>
</li>
[% ELSIF preference.key == "rewrite_rule_set" %]
<li class="ui-state-default">
<div class="span-5" title="[% preference.description %]">[% preference.key %]:</div>
<div class="span-1"><span class="ui-icon ui-icon-help help" title="[% preference.description %]"></span></div>
<div class="span-10 last">
[% IF rewrite_rule_sets %]
<select size="1" name="[% preference.key %]"
[% IF ! edit_preferences %]class="disabled" disabled="disabled"[% END %] >
<option value="" [% IF preference.value == "" %]
selected="selected"
[% END %]></option>
[% FOREACH set = rewrite_rule_sets %]
<option value="[% set.id %]" title="[% set.description %]"
[% IF preference.value == set.id %]selected="selected"[% END %]
>[% set.name %]</option>
[% END %]
</select>
[% ELSE %]
[% IF edit_preferences %]no rewrite rule sets defined[% END %]
[% END %]
</div>
</li>
[% ELSIF preference.data_type == "boolean" %]
<li class="ui-state-default">
<div class="span-5" title="[% preference.description %]">[% preference.key %]:</div>

@ -5,9 +5,6 @@
<div class="topsubmenu">
<ul>
[% IF Catalyst.config.domain.rewrite_features %]
<li><a href="rewrite?domain=[% domain %]"><span>Rewrite Rules</span></a></li>
[% END %]
[% IF Catalyst.config.domain.preference_features %]
<li><a href="preferences?domain=[% domain %]"><span>Preferences</span></a></li>
[% END %]

@ -48,7 +48,7 @@
<a href="/peering/detail?group_id=[% grp.group.id %]"><span class="button-cancel">Cancel</span></a>
</div>
[% ELSE %]
<div class="span-4"><a href="/peering/rewrite?peerid=[% peer.id%]" class="aaction">[% peer.name %]</a></div>
<div class="span-4"><a href="/peering/preferences?peerid=[% peer.id%]" class="aaction">[% peer.name %]</a></div>
<div class="span-4">[% peer.ip %]</div>
<div class="span-3">[% peer.port %]</div>
<div class="span-3 append-1">[% peer.weight %]</div>

@ -1,6 +1,6 @@
<h2>Edit [% list_name %] for Peer Host [% peer.peer_host.name %]</h2>
<h2>Edit [% list_name %] for Peer Host [% peer.name %]</h2>
<a href="preferences?peerid=[% peer.peer_host.id %]"><span class="button-back">Back</span></a>
<a href="preferences?peerid=[% peer.id %]"><span class="button-back">Back</span></a>
<div class="list_explanation">
The subscribers are limited to the following list of IP addresses.
An empty list does not limit the subscribers at all.
@ -14,7 +14,7 @@
<div class="span-15"> [% listentry.ipnet %] </div>
<form action="do_edit_iplist" method="post">
<div class="span-1 last">
<input type="hidden" name="peerid" value="[% peer.peer_host.id %]" />
<input type="hidden" name="peerid" value="[% peer.id %]" />
<input type="hidden" name="list_name" value="[% list_name %]" />
<input type="hidden" name="list_del" value="[% listentry.ipnet %]" />
<button class="button-delete" id="listdel[% listentry.id %]">Delete</button>
@ -26,7 +26,7 @@
<div class="hspace-20"></div>
<form action="do_edit_iplist" method="post">
<input type="hidden" name="peerid" value="[% peer.peer_host.id %]" />
<input type="hidden" name="peerid" value="[% peer.id %]" />
<input type="hidden" name="list_name" value="[% list_name %]" />
<label for="listaddtxt">New entry:</label><br />
<input type="text" size="20" name="list_add" id="listaddtxt" value="[% listaddtxt %]" /> &nbsp;

@ -1,6 +1,6 @@
<h2>Edit [% list_name %] for Peer Host [% peer.peer_host.name %]</h2>
<h2>Edit [% list_name %] for Peer Host [% peer.name %]</h2>
<a href="preferences?peerid=[% peer.peer_host.id %]"><span class="button-back">Back</span></a>
<a href="preferences?peerid=[% peer.id %]"><span class="button-back">Back</span></a>
[% IF messages.nummsg %]<div class="success">[% messages.nummsg %]</div>[% END %]
[% IF messages.numerr %]<div class="error">[% messages.numerr %]</div>[% END %]
@ -48,7 +48,7 @@
<div class="span-14[% IF blockentry.active == 0 %] listentry_disabled[% END %]"> [% blockentry.number %] </div>
<form action="do_edit_list" method="post">
<div class="span-1">
<input type="hidden" name="peerid" value="[% peer.peer_host.id %]" />
<input type="hidden" name="peerid" value="[% peer.id %]" />
<input type="hidden" name="list_name" value="[% list_name %]" />
<input type="hidden" name="block_del" value="[% blockentry.number %]" />
<input type="hidden" name="block_stat" value="[% blockentry.active %]" />
@ -57,7 +57,7 @@
</form>
<form action="do_edit_list" method="post">
<div class="span-1 last">
<input type="hidden" name="peerid" value="[% peer.peer_host.id %]" />
<input type="hidden" name="peerid" value="[% peer.id %]" />
<input type="hidden" name="list_name" value="[% list_name %]" />
[% IF blockentry.active == 1 %]
<input type="hidden" name="block_act" value="[% blockentry.number %]" />
@ -76,7 +76,7 @@
<div class="hspace-20"></div>
<form action="do_edit_list" method="post">
<input type="hidden" name="peerid" value="[% peer.peer_host.id %]" />
<input type="hidden" name="peerid" value="[% peer.id %]" />
<input type="hidden" name="list_name" value="[% list_name %]" />
<label for="blockaddtxt">New entry:</label><br />
<input type="text" size="20" name="block_add" id="blockaddtxt" value="[% blockaddtxt %]" /> &nbsp;

@ -1,32 +1,34 @@
<h2> Peer Host [% peer.peer_host.name %] </h2>
<a href="detail?group_id=[% peer.peer_host.group_id %]"><span class="button-back">Back</span></a><br /><br />
<h2> Peer Host [% peer.name %] Preferences</h2>
<a href="detail?group_id=[% peer.group_id %]"><span class="button-back">Back</span></a>
[% IF 0 %]
<br /><br />
<div class="topsubmenu">
<ul>
<li><a href="rewrite?peerid=[% peer.peer_host.id %]"><span>Rewrite Rules</span></a></li>
<li><a href="rewrite?peerid=[% peer.id %]"><span>Rewrite Rules</span></a></li>
[% IF Catalyst.config.peer.preference_features %]
<li class="selected"><a href="preferences?peerid=[% peer.peer_host.id %]"><span>Preferences</span></a></li>
<li class="selected"><a href="preferences?peerid=[% peer.id %]"><span>Preferences</span></a></li>
[% END %]
</ul>
</div>
<div class="topsubmenudivider"> </div>
<h3 id="peerprefs">Peer Host Preferences</h3>
[% END %]
[% UNLESS Catalyst.session.admin.read_only %]
[% IF edit_preferences %]
<a href="preferences?peerid=[% peer.peer_host.id %]"><span class="button-cancel">Cancel</span></a>
<a href="preferences?peerid=[% peer.id %]"><span class="button-cancel">Cancel</span></a>
[% ELSE %]
<a href="preferences?peerid=[% peer.peer_host.id %]&amp;edit_preferences=1"><span class="button-edit">Edit</span></a>
<a href="preferences?peerid=[% peer.id %]&amp;edit_preferences=1"><span class="button-edit">Edit</span></a>
[% END %]
[% END %]
[% IF messages.prefmsg %]<div class="success">[% messages.prefmsg %]</div>[% END %]
[% IF messages.preferr %]<div class="error">[% messages.preferr %]</div>[% END %]
[% IF edit_preferences && prov_error %]<div class="error">[% prov_error %]</div>[% END %]
<form action="update_preferences" method="post">
<input type="hidden" name="peerid" value="[% peer.peer_host.id %]" />
<input type="hidden" name="peerid" value="[% peer.id %]" />
<div class="hspace-20"></div>
<ul class="cleanlist">
[% FOREACH preference = preferences_array %]
@ -118,6 +120,28 @@
[% END %]
</div>
</li>
[% ELSIF preference.key == "rewrite_rule_set" %]
<li class="ui-state-default">
<div class="span-5" title="[% preference.description %]">[% preference.key %]:</div>
<div class="span-1"><span class="ui-icon ui-icon-help help" title="[% preference.description %]"></span></div>
<div class="span-10 last">
[% IF rewrite_rule_sets %]
<select size="1" name="[% preference.key %]"
[% IF ! edit_preferences %]class="disabled" disabled="disabled"[% END %] >
<option value="" [% IF preference.value == "" %]
selected="selected"
[% END %]></option>
[% FOREACH set = rewrite_rule_sets %]
<option value="[% set.id %]" title="[% set.description %]"
[% IF preference.value == set.id %]selected="selected"[% END %]
>[% set.name %]</option>
[% END %]
</select>
[% ELSE %]
[% IF edit_preferences %]no rewrite rule sets defined[% END %]
[% END %]
</div>
</li>
[% ELSIF preference.data_type == "boolean" %]
<li class="ui-state-default">
<div class="span-5" title="[% preference.description %]">[% preference.key %]:</div>
@ -160,9 +184,9 @@
<div class="span-1 last">
[% IF ! edit_preferences && ! Catalyst.session.admin.read_only %]
[% IF preference.key == "allowed_ips" || preference.key == "man_allowed_ips" %]
<a href="edit_iplist?peerid=[% peer.peer_host.id %]&amp;list_name=[% preference.key %]"><span class="button-edit">Edit List</span></a>
<a href="edit_iplist?peerid=[% peer.id %]&amp;list_name=[% preference.key %]"><span class="button-edit">Edit List</span></a>
[% ELSE %]
<a href="edit_list?peerid=[% peer.peer_host.id %]&amp;list_name=[% preference.key %]"><span class="button-edit">Edit List</span></a>
<a href="edit_list?peerid=[% peer.id %]&amp;list_name=[% preference.key %]"><span class="button-edit">Edit List</span></a>
[% END %]
[% END %]
</div>

@ -1,231 +0,0 @@
<script type="text/javascript">
$(function() {
[% ids = ['icaller', 'icallee', 'ocaller', 'ocallee'] %]
[% FOREACH id = ids %]
$("#[% id %]list").sortable({
placeholder: 'ui-state-highlight',
forcePlaceholderSize: true,
stop: function(i) {
placeholder: 'ui-state-highlight'
$.ajax({
type: "POST",
url: "update_rewrite_priority",
data: $("#[% id %]list").sortable("serialize")
});
},
});
//$("#[% id %]").disableSelection();
[% END %]
});
</script>
<h2> Peer Host [% peer.peer_host.name %] </h2>
<a href="detail?group_id=[% peer.peer_host.group_id %]"><span class="button-back">Back</span></a><br /><br />
<div class="topsubmenu">
<ul>
<li class="selected"><a href="rewrite?peerid=[% peer.peer_host.id %]"><span>Rewrite Rules</span></a></li>
[% IF Catalyst.config.peer.preference_features %]
<li><a href="preferences?peerid=[% peer.peer_host.id %]"><span>Preferences</span></a></li>
[% END %]
</ul>
</div>
<div class="topsubmenudivider"> </div>
[% IF all_peers.size > 0 %]
[% UNLESS Catalyst.session.admin.read_only %]
<h3>Import Rewrite Rules from another host</h3>
[% IF messages.cpmsg %]<div class="success">[% messages.cpmsg %]</div>[% END %]
[% IF messages.cperr %]<div class="error">[% messages.cperr %]</div>[% END %]
<ul class="cleanlist">
<li class="ui-state-default">
<form action="/peering/copy_rewrite" method="post">
<div class="span-13">
<input type="hidden" name="peerid" value="[% peer.peer_host.id %]" />
<input type="hidden" name="grpid" value="[% peer.peer_host.group_id %]" />
Copy rules from peering host
<select title="string, peering host" size="1" name="rpeerid">
[% FOREACH cpeer = all_peers %]
<option value="[% cpeer.id %]">[% cpeer.name %]</option>
[% END %]
</select>
and
<select title="string, copy policy" size="1" name="policy">
<option selected>keep</option>
<option>delete</option>
</select>
existing rewrite rules.
</div>
<div class="span-1 last">
<button id="cpapply" class="button-save">Apply</button>
</div>
</form>
</li>
</ul>
<div class="hspace-20"></div>
[% END %]
[% END %]
[%
rewrites = [
{
header = 'Inbound Rewrite Rules for Caller',
id = 'icaller',
tag = 'if',
dir = 'in',
field = 'caller',
msg = messages.icallermsg,
err = messages.icallererr,
detail = icallerdetail,
rules = peer.rewrite_in_caller,
},
{
header = 'Inbound Rewrite Rules for Callee',
id = 'icallee',
tag = 'it',
dir = 'in',
field = 'callee',
msg = messages.icalleemsg,
err = messages.icalleeerr,
detail = icalleedetail,
rules = peer.rewrite_in_callee,
},
{
header = 'Outbound Rewrite Rules for Caller',
id = 'ocaller',
tag = 'of',
dir = 'out',
field = 'caller',
msg = messages.ocallermsg,
err = messages.ocallererr,
detail = ocallerdetail,
rules = peer.rewrite_out_caller,
},
{
header = 'Outbound Rewrite Rules for Callee',
id = 'ocallee',
tag = 'ot',
dir = 'out',
field = 'callee',
msg = messages.ocalleemsg,
err = messages.ocalleeerr,
detail = ocalleedetail,
rules = peer.rewrite_out_callee,
},
]
%]
[% FOREACH rw = rewrites %]
<h3 id="[% rw.id %]">[% rw.header %]</h3>
[% IF rw.msg %]<div class="success">[% rw.msg %]</div>[% END %]
[% IF rw.err %]<div class="error">[% rw.err %][% IF rw.detail %]<br/>[% rw.detail %][% END %]</div>[% END %]
<ul class="cleanlist">
<li class="ui-state-default">
<div class="span-1">&nbsp;</div>
<div class="span-4">Match Pattern</div>
<div class="span-4">Replacement Pattern</div>
<div class="span-4 append-3 last">Description</div>
</li>
</ul>
<ul id="[% rw.id %]list" class="cleanlist">
[% id = 0 %]
[% priority = 0 %]
[% FOREACH rule = rw.rules %]
[% priority = rule.priority %]
<li class="ui-state-default" id="rule_[% rule.id %]">
<div class="span-1"><span class='ui-icon ui-icon-arrowthick-2-n-s'></span></div>
[% IF rule.id == editid && !Catalyst.session.admin.read_only %]
<form action="/peering/edit_rewrite" method="post">
<input type="hidden" name="peerid" value="[% peer.peer_host.id %]" />
<input type="hidden" name="grpid" value="[% peer.peer_host.group_id %]" />
<input type="hidden" name="direction" value="[% rule.direction %]" />
<input type="hidden" name="field" value="[% rule.field %]" />
<input type="hidden" name="rewriteid" value="[% rule.id %]" />
<input type="hidden" name="priority" value="[% rule.priority %]" />
<div class="span-4">
<input type="text" size="15 id="addtxt" title="string, match pattern"
name="match_pattern" value="[% rule.match_pattern %]" />
</div>
<div class="span-4">
<input type="text" size="15" id="addtxt" title="string, replacement pattern"
name="replace_pattern" value="[% rule.replace_pattern %]" />
</div>
<div class="span-4 append-1">
<input type="text" size="15" id="addtxt" title="string, rewrite rule description"
name="description" value="[% rule.description %]" />
</div>
<div class="span-1">
<button class="button-save" id="[% rw.tag %]save[% id %]">Save</button>
</div>
</form>
<div class="prepend-1 span-1 last">
<a href="/peering/rewrite?peerid=[% peer.peer_host.id %]#[% rw.id %]"><span class="button-cancel">Cancel</span></a>
</div>
[% ELSE %]
<div class="span-4">[% rule.match_pattern %]</div>
<div class="span-4">[% rule.replace_pattern %]</div>
<div class="span-4 append-1">[% rule.description %]</div>
<div class="span-1">
[% UNLESS Catalyst.session.admin.read_only %]
<a href="/peering/rewrite?peerid=[% peer.peer_host.id %]&editid=[% rule.id %]#[% rw.id %]"><span class="button-edit">Edit</span></a>
[% END %]
</div>
<form action="/peering/delete_rewrite" method="post">
<input type="hidden" name="peerid" value="[% peer.peer_host.id %]" />
<input type="hidden" name="rewriteid" value="[% rule.id %]" />
<input type="hidden" name="direction" value="[% rule.direction %]" />
<input type="hidden" name="field" value="[% rule.field %]" />
<div class="prepend-1 span-1 last">
[% UNLESS Catalyst.session.admin.read_only %]
<button id="[% rw.tag %]del[% id %]" class="button-delete">Delete</button>
[% END %]
</div>
[% END %]
</form>
</li>
[% id = id + 1 %]
[% END %]
</ul>
[% UNLESS Catalyst.session.admin.read_only %]
<ul class="cleanlist">
<li class="ui-state-default">
<form action="/peering/create_rewrite" method="post">
<input type="hidden" name="grpid" value="[% peer.peer_host.group_id %]" />
<input type="hidden" name="peerid" value="[% peer.peer_host.id %]" />
<input type="hidden" name="direction" value="[% rw.dir %]" />
<input type="hidden" name="field" value="[% rw.field%]" />
<input type="hidden" name="priority" value="[% priority + 1 %]" />
<div class="span-1">&nbsp;</div>
<div class="span-4">
<input type="text" size="15" id="addtxt" title="string, match pattern"
name="match_pattern" value="" />
</div>
<div class="span-4">
<input type="text" size="15" id="addtxt" title="string, replacement pattern"
name="replace_pattern" value="" />
</div>
<div class="span-4 append-1">
<input type="text" size="15" id="addtxt" title="string, rule description"
name="description" value="" />
</div>
<div class="span-1 append-2 last">
<button class="button-add" id="[% rw.tag %]add">Add</button>
</div>
</form>
</li>
</ul>
<div class="hspace-20"></div>
[% END %]
[% END %]

@ -0,0 +1,73 @@
<h3 id="contract">Rewrite Rule Sets</h3>
[% IF messages.epeermsg %]<div class="success">[% messages.epeermsg %]</div>[% END %]
[% IF messages.epeererr %]<div class="error">[% messages.epeererr %]</div>[% END %]
[% IF messages.cpeermsg %]<div class="success">[% messages.cpeermsg %]</div>[% END %]
[% IF messages.cpeererr %]<div class="error">[% messages.cpeererr %]</div>[% END %]
<ul class="cleanlist">
<li class="ui-state-default">
<div class="span-5">Name</div>
<div class="span-9 last">Description</div>
</li>
[% id = 0 %]
[% FOREACH set = rule_sets %]
<li class="ui-state-default">
[% IF set.id == editid %]
<div class="span-5">[% set.name %]</div>
<form action="/rewrite/edit_set" method="post">
<input type="hidden" name="setid" value="[% set.id %]" />
<div class="span-9">
<input type="text" size="30" id="addtxt" title="string, description of rewrite rule set"
name="setdesc" value="[% set.description %]" />
</div>
<div class="span-1">
<button class="button-save" id="setsave[% id %]">Save</button>
</div>
</form>
<div class="span-1 last">
<a href="/rewrite"><span class="button-cancel">Cancel</span></a>
</div>
[% ELSE %]
<div class="span-5"><a href="/rewrite/detail?set_id=[%set.id%]">[% set.name %]</a></div>
<div class="span-9">[% set.description %]</div>
<div class="span-1">
[% UNLESS Catalyst.session.admin.read_only %]
<a href="/rewrite?editid=[% set.id %]"><span class="button-edit">Edit</span></a>
[% END %]
</div>
<form action="/rewrite/delete_set" method="post">
<input type="hidden" name="setid" value="[% set.id %]" />
<div class="span-1 last">
[% UNLESS Catalyst.session.admin.read_only %]
<button class="button-delete" id="setdel[% id %]">Delete</button>
[% END %]
</div>
[% END %]
</form>
</li>
[% id = id + 1 %]
[% END %]
[% UNLESS Catalyst.session.admin.read_only %]
<form action="/rewrite/create_set" method="post">
<li class="ui-state-default">
<div class="span-5">
<input type="text" size="20" name="setname" title="string, name of rewrite rule set"
id="addtxt" value="[% garefill.name %]" />
</div>
<div class="span-9">
<input type="text" size="30" name="setdesc" title="string, description of rewrite rule set"
id="addtxt" value="[% garefill.description %]" />
</div>
<div class="span-1 last">
<button class="button-add" id="setadd">Add</button>
</div>
</li>
</form>
</ul>
[% END %]

@ -1,7 +1,7 @@
<script type="text/javascript">
$(function() {
[% ids = ['icaller', 'icallee', 'ocaller'] %]
[% ids = ['icaller', 'icallee', 'ocaller', 'ocallee'] %]
[% FOREACH id = ids %]
$("#[% id %]list").sortable({
placeholder: 'ui-state-highlight',
@ -22,29 +22,12 @@
});
</script>
<h2> Domain [% domain.domain.domain %] </h2>
<!-- <a href="/domain"><span class="button-back">Back</span></a> -->
<h2> Rewrite Rule Set [% set.rewrite_set.name %] </h2>
<div class="topsubmenu">
<ul>
[% IF Catalyst.config.domain.rewrite_features %]
<li class="selected"><a href="rewrite?domain=[% domain.domain.domain %]"><span>Rewrite Rules</span></a></li>
[% END %]
[% IF Catalyst.config.domain.preference_features %]
<li><a href="preferences?domain=[% domain.domain.domain %]"><span>Preferences</span></a></li>
[% END %]
[% IF Catalyst.config.domain.audiofile_features %]
<li><a href="audio?domain=[% domain.domain.domain %]"><span>Announcements</span></a></li>
[% END %]
[% IF Catalyst.config.domain.vsc_features %]
<li><a href="vsc?domain=[% domain.domain.domain %]"><span>VSCs</span></a></li>
[% END %]
</ul>
</div>
<div class="topsubmenudivider"> </div>
<a href="/rewrite"><span class="button-back">Back</span></a><br /><br />
[%
[%
rewrites = [
{
header = 'Inbound Rewrite Rules for Caller',
@ -55,7 +38,7 @@
msg = messages.icallermsg,
err = messages.icallererr,
detail = icallerdetail,
rules = domain.rewrite_in_caller,
rules = set.rewrite_in_caller,
},
{
header = 'Inbound Rewrite Rules for Callee',
@ -66,7 +49,7 @@
msg = messages.icalleemsg,
err = messages.icalleeerr,
detail = icalleedetail,
rules = domain.rewrite_in_callee,
rules = set.rewrite_in_callee,
},
{
header = 'Outbound Rewrite Rules for Caller',
@ -77,7 +60,18 @@
msg = messages.ocallermsg,
err = messages.ocallererr,
detail = ocallerdetail,
rules = domain.rewrite_out_caller,
rules = set.rewrite_out_caller,
},
{
header = 'Outbound Rewrite Rules for Callee',
id = 'ocallee',
tag = 'ot',
dir = 'out',
field = 'callee',
msg = messages.ocalleemsg,
err = messages.ocalleeerr,
detail = ocalleedetail,
rules = set.rewrite_out_callee,
},
]
%]
@ -85,7 +79,6 @@
[% FOREACH rw = rewrites %]
<h3 id="[% rw.id %]">[% rw.header %]</h3>
[% IF rw.msg %]<div class="success">[% rw.msg %]</div>[% END %]
[% IF rw.err %]<div class="error">[% rw.err %][% IF rw.detail %]<br/>[% rw.detail %][% END %]</div>[% END %]
@ -106,10 +99,10 @@
<li class="ui-state-default" id="rule_[% rule.id %]">
<div class="span-1"><span class='ui-icon ui-icon-arrowthick-2-n-s'></span></div>
[% IF rule.id == editid && !Catalyst.session.admin.read_only %]
<form action="/domain/edit_rewrite" method="post">
<form action="/rewrite/edit_rewrite" method="post">
<input type="hidden" name="setid" value="[% set.rewrite_set.id %]" />
<input type="hidden" name="direction" value="[% rule.direction %]" />
<input type="hidden" name="field" value="[% rule.field %]" />
<input type="hidden" name="domain" value="[% domain.domain.domain %]" />
<input type="hidden" name="rewriteid" value="[% rule.id %]" />
<input type="hidden" name="priority" value="[% rule.priority %]" />
<div class="span-4">
@ -129,7 +122,7 @@
</div>
</form>
<div class="prepend-1 span-1 last">
<a href="/domain/rewrite?domain=[% domain.domain.domain %]#[% rw.id %]"><span class="button-cancel">Cancel</span></a>
<a href="/rewrite/detail?set_id=[% set.rewrite_set.id %]#[% rw.id %]"><span class="button-cancel">Cancel</span></a>
</div>
[% ELSE %]
<div class="span-4">[% rule.match_pattern %]</div>
@ -137,11 +130,11 @@
<div class="span-4 append-1">[% rule.description %]</div>
<div class="span-1">
[% UNLESS Catalyst.session.admin.read_only %]
<a href="/domain/rewrite?domain=[% domain.domain.domain %]&amp;editid=[% rule.id %]#[% rw.id %]"><span class="button-edit">Edit</span></a>
<a href="/rewrite/detail?set_id=[% set.rewrite_set.id %]&editid=[% rule.id %]#[% rw.id %]"><span class="button-edit">Edit</span></a>
[% END %]
</div>
<form action="/domain/delete_rewrite" method="post">
<input type="hidden" name="domain" value="[% domain.domain.domain %]" />
<form action="/rewrite/delete_rewrite" method="post">
<input type="hidden" name="setid" value="[% set.rewrite_set.id %]" />
<input type="hidden" name="rewriteid" value="[% rule.id %]" />
<input type="hidden" name="direction" value="[% rule.direction %]" />
<input type="hidden" name="field" value="[% rule.field %]" />
@ -150,7 +143,7 @@
<button id="[% rw.tag %]del[% id %]" class="button-delete">Delete</button>
[% END %]
</div>
[% END %]
[% END %]
</form>
</li>
[% id = id + 1 %]
@ -160,11 +153,11 @@
[% UNLESS Catalyst.session.admin.read_only %]
<ul class="cleanlist">
<li class="ui-state-default">
<form action="/domain/create_rewrite" method="post">
<form action="/rewrite/create_rewrite" method="post">
<input type="hidden" name="setid" value="[% set.rewrite_set.id %]" />
<input type="hidden" name="direction" value="[% rw.dir %]" />
<input type="hidden" name="field" value="[% rw.field%]" />
<input type="hidden" name="priority" value="[% priority + 1 %]" />
<input type="hidden" name="domain" value="[% domain.domain.domain %]" />
<div class="span-1">&nbsp;</div>
<div class="span-4">
<input type="text" size="15" id="addtxt" title="string, match pattern"
@ -189,5 +182,3 @@
[% END %]

@ -119,6 +119,28 @@
[% END %]
</div>
</li>
[% ELSIF preference.key == "rewrite_rule_set" %]
<li class="ui-state-default">
<div class="span-5" title="[% preference.description %]">[% preference.key %]:</div>
<div class="span-1"><span class="ui-icon ui-icon-help help" title="[% preference.description %]"></span></div>
<div class="span-10 last">
[% IF rewrite_rule_sets %]
<select size="1" name="[% preference.key %]"
[% IF ! edit_preferences %]class="disabled" disabled="disabled"[% END %] >
<option value="" [% IF preference.value == "" %]
selected="selected"
[% END %]></option>
[% FOREACH set = rewrite_rule_sets %]
<option value="[% set.id %]" title="[% set.description %]"
[% IF preference.value == set.id %]selected="selected"[% END %]
>[% set.name %]</option>
[% END %]
</select>
[% ELSE %]
[% IF edit_preferences %]no rewrite rule sets defined[% END %]
[% END %]
</div>
</li>
[% ELSIF preference.data_type == "boolean" %]
<li class="ui-state-default">
<div class="span-5" title="[% preference.description %]">[% preference.key %]:</div>

Loading…
Cancel
Save