MT#8279 Deflate numbers in call list.

agranig/8279-csc-normalize-number
Andreas Granig 12 years ago
parent 145291a23e
commit 953142d4f0

@ -2861,10 +2861,21 @@ sub ajax_calls :Chained('master') :PathPart('calls/ajax') :Args(0) {
$c, $rs, $c->stash->{calls_dt_columns},
sub {
my ($result) = @_;
my %data = (source_user => uri_unescape($result->source_user),
destination_user => uri_unescape($result->destination_user));
return %data
},
my %data = ();
if($c->user->roles eq "subscriberadmin" || $c->user->roles eq "subscriber") {
$data{duration} = POSIX::ceil($result->duration);
$data{source_user} = uri_unescape(NGCP::Panel::Utils::Subscriber::apply_rewrite(
c => $c, subscriber => $c->stash->{subscriber}, number => $result->source_user, direction => 'caller_out'
));
$data{destination_user} = uri_unescape(NGCP::Panel::Utils::Subscriber::apply_rewrite(
c => $c, subscriber => $c->stash->{subscriber}, number => $result->destination_user, direction => 'caller_out'
));
} else {
$data{source_user} = uri_unescape($result->source_user);
$data{destination_user} = uri_unescape($result->destination_user);
}
return %data;
}
);
$c->detach( $c->view("JSON") );
@ -3223,9 +3234,24 @@ sub ajax_speeddial :Chained('base') :PathPart('preferences/speeddial/ajax') :Arg
my $prov_subscriber = $c->stash->{subscriber}->provisioning_voip_subscriber;
my $sd_rs = $prov_subscriber->voip_speed_dials;
NGCP::Panel::Utils::Datatables::process($c, $sd_rs, $c->stash->{sd_dt_columns}, undef,
{
denormalize_uri => ($c->user->roles eq "subscriberadmin" || $c->user->roles eq "subscriber") ? "destination" : undef,
NGCP::Panel::Utils::Datatables::process($c, $sd_rs, $c->stash->{sd_dt_columns},
sub {
my ($result) = @_;
my %data = ();
my $sub = $c->stash->{subscriber};
if($c->user->roles eq "subscriberadmin" || $c->user->roles eq "subscriber") {
my ($user, $domain) = split(/\@/, $result->destination);
$user =~ s/^sips?://;
$user = uri_unescape(NGCP::Panel::Utils::Subscriber::apply_rewrite(
c => $c, subscriber => $sub, number => $user, direction => 'caller_out'
));
if($domain eq $sub->domain->domain) {
$data{destination} = $user;
} else {
$data{destination} = $user . '@' . $domain;
}
}
return %data;
}
);

@ -8,8 +8,7 @@ use Scalar::Util qw/blessed/;
use DateTime::Format::Strptime;
sub process {
my ($c, $rs, $cols, $row_func, $opts) = @_;
$opts->{c} = $c;
my ($c, $rs, $cols, $row_func) = @_;
my $use_rs_cb = ('CODE' eq (ref $rs));
my $aaData = [];
@ -94,7 +93,7 @@ sub process {
my $topId = $c->request->params->{iIdOnTop};
if(defined $topId) {
if(defined(my $row = $rs->find($topId))) {
push @{ $aaData }, _prune_row($opts, $cols, $row->get_inflated_columns);
push @{ $aaData }, _prune_row($cols, $row->get_inflated_columns);
if (defined $row_func) {
$aaData->[-1]->put($row_func->($row));
}
@ -148,7 +147,7 @@ sub process {
}
for my $row ($rs->all) {
push @{ $aaData }, _prune_row($opts, $cols, $row->get_inflated_columns);
push @{ $aaData }, _prune_row($cols, $row->get_inflated_columns);
if (defined $row_func) {
$aaData->[-1]->put($row_func->($row));
}
@ -175,26 +174,12 @@ sub set_columns {
}
sub _prune_row {
my ($opts, $columns, %row) = @_;
my $c = $opts->{c};
my ($columns, %row) = @_;
while (my ($k,$v) = each %row) {
unless (first { $_->{accessor} eq $k && $_->{title} } @{ $columns }) {
delete $row{$k};
next;
}
if(defined $opts->{denormalize_uri} && $k eq $opts->{denormalize_uri} && defined $c->stash->{subscriber}) {
my $sub = $c->stash->{subscriber};
$row{$k} =~ s/^sips?://;
my ($user, $domain) = split(/\@/, $row{$k});
$user = NGCP::Panel::Utils::Subscriber::apply_rewrite(
c => $c, subscriber => $sub, number => $user, direction => 'caller_out'
);
if($domain eq $sub->domain->domain) {
$row{$k} = $user;
} else {
$row{$k} = $user . '@' . $domain;
}
}
if(blessed($v) && $v->isa('DateTime')) {
$row{$k} = $v->ymd('-') . ' ' . $v->hms(':');
$row{$k} .= '.'.$v->millisecond if $v->millisecond > 0.0;

@ -32,9 +32,18 @@ around handle => sub {
order_by => { -desc => 'me.start_time' },
})->slice(0, 4);
$c->stash(
calls => $calls_rs,
);
my $sub = $c->user->voip_subscriber;
my $calls = [ map {
my $call = { $_->get_inflated_columns };
$call->{destination_user_in} = NGCP::Panel::Utils::Subscriber::apply_rewrite(
c => $c, subscriber => $sub, number => $call->{destination_user_in}, direction => 'caller_out'
);
$call->{source_cli} = NGCP::Panel::Utils::Subscriber::apply_rewrite(
c => $c, subscriber => $sub, number => $call->{source_cli}, direction => 'caller_out'
);
$call;
} $calls_rs->all ];
$c->stash(calls => $calls);
return;
};

@ -10,10 +10,10 @@
</div>
<div class="plan-features large">
<ul>
[% IF calls.count == 0 -%]
[% IF calls.size == 0 -%]
<li>[% c.loc('No calls yet') %]</li>
[% ELSE -%]
[% FOR call IN calls.all -%]
[% FOR call IN calls -%]
<li>
<div class="row-fluid">
[% IF call.source_user_id == c.user.uuid -%]

Loading…
Cancel
Save