MT#11549 Search by alias too, but aliases aren't shown

Change-Id: I866c7a1bf54a2c4d7bca40d42c66fde498722eb0
changes/56/1056/1
Irina Peshinskaya 11 years ago
parent 21acf4fbac
commit ac9b5ff871

@ -119,8 +119,8 @@ sub sub_list :Chained('/') :PathPart('subscriber') :CaptureArgs(0) {
{ name => "domain.domain", search => 1, title => $c->loc('Domain') },
{ name => "uuid", search => 1, title => $c->loc('UUID') },
{ name => "status", search => 1, title => $c->loc('Status') },
{ name => "number", search => 1, title => $c->loc('Number'), literal_sql => "concat(primary_number.cc, primary_number.ac, primary_number.sn)"},
{ name => "primary_number.cc", search => 1, title => "" }, #need this to get the relationship
{ name => "number", search => 1, title => $c->loc('Number'), literal_sql => "concat(primary_number.cc, primary_number.ac, primary_number.sn)",'join' => 'primary_number'},
{ name => "voip_subscriber_aliases_csv.aliases", search => 1, },
{ name => "provisioning_voip_subscriber.voip_subscriber_profile.name", search => 1, title => $c->loc('Profile') },
]);
}

@ -27,8 +27,11 @@ sub process {
}
my @parts = split /\./, $col->{name};
if($col->{literal_sql}) {
$rs = $rs->search_rs(undef, {
'+select' => { '' => \[$col->{literal_sql}], -as => $col->{accessor} },
$rs = $rs->search_rs(undef, {
$col->{join} ? ( join => $col->{join} ) : (),
'+select' => { '' => \[$col->{literal_sql}], -as => $col->{accessor}
},
'+as' => [ $col->{accessor} ],
});
} elsif( @parts > 1 ) {
@ -52,15 +55,17 @@ sub process {
my $searchString = $c->request->params->{sSearch} // "";
foreach my $col(@{ $cols }) {
# avoid amigious column names if we have the same column in different joined tables
my $name = _get_joined_column_name_($col->{name});
my $stmt;
if($col->{literal_sql}){
#we can't use just accessor because of the count query
$stmt = \[$col->{literal_sql} . " LIKE ?", [ {} => '%'.$searchString.'%'] ];
}else{
$stmt = { $name => { like => '%'.$searchString.'%' } };
}
push @searchColumns, $stmt if $col->{search};
if($col->{search}){
my $name = _get_joined_column_name_($col->{name});
my $stmt;
if($col->{literal_sql}){
#we can't use just accessor because of the count query
$stmt = \[$col->{literal_sql} . " LIKE ?", [ {} => '%'.$searchString.'%'] ];
}else{
$stmt = { $name => { like => '%'.$searchString.'%' } };
}
push @searchColumns, $stmt;
}
}
if($searchString && ! $use_rs_cb) {
$rs = $rs->search([@searchColumns]);

Loading…
Cancel
Save