diff --git a/Build.PL b/Build.PL index 3833fae30c..6e98dfc5db 100644 --- a/Build.PL +++ b/Build.PL @@ -60,6 +60,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 72130d3e4a..81e54528e0 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; @@ -1918,7 +1919,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