From ebe64d35632d7758ec327eb4e191506fc7fc79c6 Mon Sep 17 00:00:00 2001 From: Gerhard Jungwirth <gjungwirth@sipwise.com> Date: Mon, 30 Sep 2013 12:40:10 +0200 Subject: [PATCH] uri_unescape CDRs Mantis: 3413 --- Build.PL | 1 + lib/NGCP/Panel/Controller/Subscriber.pm | 11 ++++++++++- lib/NGCP/Panel/View/HTML.pm | 9 ++++++++- share/templates/widgets/subscriber_calls_overview.tt | 4 ++-- 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/Build.PL b/Build.PL index 1851536623..4c7c31a97f 100644 --- a/Build.PL +++ b/Build.PL @@ -66,6 +66,7 @@ my $builder = Local::Module::Build->new( 'Template' => 0, 'Text::CSV_XS' => 0, 'URI::Encode' => 0, + 'URI::Escape' => 0, 'UUID' => 0, 'XML::Mini' => 0, 'warnings' => 0, diff --git a/lib/NGCP/Panel/Controller/Subscriber.pm b/lib/NGCP/Panel/Controller/Subscriber.pm index a6cf4b517d..30685e7745 100644 --- a/lib/NGCP/Panel/Controller/Subscriber.pm +++ b/lib/NGCP/Panel/Controller/Subscriber.pm @@ -2,6 +2,7 @@ package NGCP::Panel::Controller::Subscriber; use Sipwise::Base; BEGIN { extends 'Catalyst::Controller'; } use HTML::Entities; +use URI::Escape qw(uri_unescape); use NGCP::Panel::Utils::Navigation; use NGCP::Panel::Utils::Contract; use NGCP::Panel::Utils::Subscriber; @@ -2171,7 +2172,15 @@ sub ajax_calls :Chained('master') :PathPart('calls/ajax') :Args(0) { destination_user_id => $c->stash->{subscriber}->uuid, }); my $rs = $out_rs->union($in_rs); - NGCP::Panel::Utils::Datatables::process($c, $rs, $c->stash->{calls_dt_columns}); + NGCP::Panel::Utils::Datatables::process( + $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 + }, + ); $c->detach( $c->view("JSON") ); } diff --git a/lib/NGCP/Panel/View/HTML.pm b/lib/NGCP/Panel/View/HTML.pm index 12e888fbd2..2eca35ec76 100644 --- a/lib/NGCP/Panel/View/HTML.pm +++ b/lib/NGCP/Panel/View/HTML.pm @@ -1,13 +1,20 @@ package NGCP::Panel::View::HTML; use Sipwise::Base; +use URI::Escape qw/uri_unescape/; + extends 'Catalyst::View::TT'; __PACKAGE__->config( TEMPLATE_EXTENSION => '.tt', render_die => 1, ENCODING => 'UTF-8', - WRAPPER => 'wrapper.tt' + WRAPPER => 'wrapper.tt', + FILTERS => { + uri_unescape => sub { + URI::Escape::uri_unescape(@_); + }, + }, ); =head1 NAME diff --git a/share/templates/widgets/subscriber_calls_overview.tt b/share/templates/widgets/subscriber_calls_overview.tt index a7fccffe63..a9bf911fcb 100644 --- a/share/templates/widgets/subscriber_calls_overview.tt +++ b/share/templates/widgets/subscriber_calls_overview.tt @@ -24,7 +24,7 @@ <i class="icon-circle-arrow-up" style="color:red"></i> [% END -%] </div> - <div class="span8">[% call.destination_user_in %]</div> + <div class="span8">[% call.destination_user_in | uri_unescape %]</div> [% ELSE -%] <div class="span1"> [% IF call.call_status == "ok" -%] @@ -33,7 +33,7 @@ <i class="icon-circle-arrow-down" style="color:red"></i> [% END -%] </div> - <div class="span8">[% call.clir ? "anonymous" : call.source_cli %]</div> + <div class="span8">[% call.clir ? "anonymous" : call.source_cli | uri_unescape %]</div> [% END -%] </div> <div class="row-fluid">