|
|
|
|
@ -38,14 +38,67 @@ sub search : Local {
|
|
|
|
|
$c->stash->{template} = 'tt/subscriber.tt';
|
|
|
|
|
|
|
|
|
|
my $limit = 10;
|
|
|
|
|
my %filter;
|
|
|
|
|
my %exact;
|
|
|
|
|
|
|
|
|
|
if($c->request->params->{use_session}) {
|
|
|
|
|
%filter = %{ $c->session->{search_filter} };
|
|
|
|
|
%exact = %{ $c->session->{exact_filter} };
|
|
|
|
|
} else {
|
|
|
|
|
if(defined $c->request->params->{search_user} and length $c->request->params->{search_user}) {
|
|
|
|
|
$filter{username} = $c->request->params->{search_user};
|
|
|
|
|
unless($c->request->params->{exact_user}) {
|
|
|
|
|
$filter{username} =~ s/^\%*/\%/;
|
|
|
|
|
$filter{username} =~ s/\%*$/\%/;
|
|
|
|
|
} else {
|
|
|
|
|
$exact{username} = 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(defined $c->request->params->{search_e164} and length $c->request->params->{search_e164}) {
|
|
|
|
|
$filter{number} = $c->request->params->{search_e164};
|
|
|
|
|
unless($c->request->params->{exact_e164}) {
|
|
|
|
|
$filter{number} =~ s/^\%*/\%/;
|
|
|
|
|
$filter{number} =~ s/\%*$/\%/;
|
|
|
|
|
} else {
|
|
|
|
|
$exact{number} = 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(defined $c->request->params->{search_uuid} and length $c->request->params->{search_uuid}) {
|
|
|
|
|
$filter{uuid} = $c->request->params->{search_uuid};
|
|
|
|
|
unless($c->request->params->{exact_uuid}) {
|
|
|
|
|
$filter{uuid} =~ s/^\%*/\%/;
|
|
|
|
|
$filter{uuid} =~ s/\%*$/\%/;
|
|
|
|
|
} else {
|
|
|
|
|
$exact{uuid} = 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$c->session->{search_filter} = \%filter;
|
|
|
|
|
$c->session->{exact_filter} = \%exact;
|
|
|
|
|
|
|
|
|
|
$c->stash->{exact_user} = $exact{username};
|
|
|
|
|
$c->stash->{exact_e164} = $exact{number};
|
|
|
|
|
$c->stash->{exact_uuid} = $exact{uuid};
|
|
|
|
|
|
|
|
|
|
$c->stash->{search_user} = $filter{username};
|
|
|
|
|
$c->stash->{search_e164} = $filter{number};
|
|
|
|
|
$c->stash->{search_uuid} = $filter{uuid};
|
|
|
|
|
$c->stash->{search_user} =~ s/^\%*(.*?)\%*$/$1/ if defined $c->stash->{search_user};
|
|
|
|
|
$c->stash->{search_e164} =~ s/^\%*(.*?)\%*$/$1/ if defined $c->stash->{search_e164};
|
|
|
|
|
$c->stash->{search_uuid} =~ s/^\%*(.*?)\%*$/$1/ if defined $c->stash->{search_uuid};
|
|
|
|
|
|
|
|
|
|
unless(keys %filter) {
|
|
|
|
|
$c->session->{messages}{toperr} = 'Web.MissingSearchString';
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
my $searchstring = $c->request->params->{search_string};
|
|
|
|
|
my $offset = $c->request->params->{offset} || 0;
|
|
|
|
|
$offset = 0 if $offset !~ /^\d+$/;
|
|
|
|
|
|
|
|
|
|
my $subscriber_list;
|
|
|
|
|
return unless $c->model('Provisioning')->call_prov( $c, 'billing', 'search_subscribers',
|
|
|
|
|
{ filter => { username => '%'.$searchstring.'%',
|
|
|
|
|
{ filter => { %filter,
|
|
|
|
|
limit => $limit,
|
|
|
|
|
offset => $limit * $offset,
|
|
|
|
|
},
|
|
|
|
|
@ -53,7 +106,6 @@ sub search : Local {
|
|
|
|
|
\$subscriber_list
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
$c->stash->{search_string} = $searchstring;
|
|
|
|
|
$c->stash->{searched} = 1;
|
|
|
|
|
if(ref $$subscriber_list{subscribers} eq 'ARRAY' and @{$$subscriber_list{subscribers}}) {
|
|
|
|
|
$c->stash->{subscriber_list} = $$subscriber_list{subscribers};
|
|
|
|
|
|