mirror of https://github.com/sipwise/www_admin.git
parent
711644bc23
commit
c9de68f1c6
@ -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} = 'Server.Voip.RewriteRuleSetDeleted';
|
||||||
|
$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;
|
||||||
@ -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-4">Name</div>
|
||||||
|
<div class="span-10 last">Description</div>
|
||||||
|
</li>
|
||||||
|
[% id = 0 %]
|
||||||
|
[% FOREACH set = rule_sets %]
|
||||||
|
<li class="ui-state-default">
|
||||||
|
[% IF set.id == editid %]
|
||||||
|
<div class="span-4">[% set.name %]</div>
|
||||||
|
<form action="/rewrite/edit_set" method="post">
|
||||||
|
<input type="hidden" name="setid" value="[% set.id %]" />
|
||||||
|
<div class="span-10">
|
||||||
|
<input type="text" 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-4"><a href="/rewrite/detail?set_id=[%set.id%]">[% set.name %]</a></div>
|
||||||
|
<div class="span-10">[% 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-4">
|
||||||
|
<input type="text" size="20" name="setname" title="string, name of rewrite rule set"
|
||||||
|
id="addtxt" value="[% garefill.name %]" />
|
||||||
|
</div>
|
||||||
|
<div class="span-10">
|
||||||
|
<input type="text" size="20" 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 %]
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,184 @@
|
|||||||
|
<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> Rewrite Rule Set [% set.rewrite_set.name %] </h2>
|
||||||
|
|
||||||
|
<a href="/rewrite"><span class="button-back">Back</span></a><br /><br />
|
||||||
|
|
||||||
|
[%
|
||||||
|
rewrites = [
|
||||||
|
{
|
||||||
|
header = 'Inbound Rewrite Rules for Caller',
|
||||||
|
id = 'icaller',
|
||||||
|
tag = 'if',
|
||||||
|
dir = 'in',
|
||||||
|
field = 'caller',
|
||||||
|
msg = messages.icallermsg,
|
||||||
|
err = messages.icallererr,
|
||||||
|
detail = icallerdetail,
|
||||||
|
rules = set.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 = set.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 = 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,
|
||||||
|
},
|
||||||
|
]
|
||||||
|
%]
|
||||||
|
|
||||||
|
[% 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"> </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="/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="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="/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>
|
||||||
|
<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="/rewrite/detail?set_id=[% set.rewrite_set.id %]&editid=[% rule.id %]#[% rw.id %]"><span class="button-edit">Edit</span></a>
|
||||||
|
[% END %]
|
||||||
|
</div>
|
||||||
|
<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 %]" />
|
||||||
|
<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="/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 %]" />
|
||||||
|
<div class="span-1"> </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 %]
|
||||||
|
|
||||||
Loading…
Reference in new issue