|
|
|
@ -1114,7 +1114,7 @@ sub apply_query_params {
|
|
|
|
|
$item_rs = $param->{new_rs}($c,$q,$item_rs);
|
|
|
|
|
} elsif (defined $param->{query} || defined $param->{query_type}) {
|
|
|
|
|
#regular chaining:
|
|
|
|
|
my($sub_where,$sub_attributes) = $self->get_query_callbacks($p);
|
|
|
|
|
my($sub_where,$sub_attributes) = $self->get_query_callbacks($param);
|
|
|
|
|
$item_rs = $item_rs->search($sub_where->($q,$c), $sub_attributes->($q,$c));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -1159,22 +1159,22 @@ sub get_query_callbacks {
|
|
|
|
|
my ($self, $param) = @_;
|
|
|
|
|
my($sub_where,$sub_attributes);
|
|
|
|
|
if ($param->{query_type}){
|
|
|
|
|
my $param = $param->{param};
|
|
|
|
|
if ($param !~ /\./) {
|
|
|
|
|
$param = 'me.' . $param;
|
|
|
|
|
my $p = $param->{param};
|
|
|
|
|
if ($p !~ /\./) {
|
|
|
|
|
$p = 'me.' . $p;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ('string_like' eq $param->{query_type}) {
|
|
|
|
|
$sub_where = sub {my ($q, $c) = @_; $q =~ s/\*/\%/g; { $param => { like => $q } }; };
|
|
|
|
|
$sub_where = sub {my ($q, $c) = @_; $q =~ s/\*/\%/g; { $p => { like => $q } }; };
|
|
|
|
|
} elsif ('string_eq' eq $param->{query_type}) {
|
|
|
|
|
$sub_where = sub {my ($q, $c) = @_; { $param => $q };};
|
|
|
|
|
$sub_where = sub {my ($q, $c) = @_; { $p => $q };};
|
|
|
|
|
} elsif ('wildcard' eq $param->{query_type}) {
|
|
|
|
|
$sub_where = sub {my ($q, $c) = @_; { wildcard_search(
|
|
|
|
|
search_string => $q,
|
|
|
|
|
search => 1,
|
|
|
|
|
exact_search => 0,
|
|
|
|
|
int_search => 0,
|
|
|
|
|
col_name => $param,
|
|
|
|
|
col_name => $p,
|
|
|
|
|
) };};
|
|
|
|
|
} elsif ('wildcard_optional' eq $param->{query_type}) {
|
|
|
|
|
$sub_where = sub {my ($q, $c) = @_; { wildcard_search(
|
|
|
|
@ -1182,7 +1182,7 @@ sub get_query_callbacks {
|
|
|
|
|
search => 1,
|
|
|
|
|
exact_search => check_wildcard_search($c->req->params),
|
|
|
|
|
int_search => 0,
|
|
|
|
|
col_name => $param,
|
|
|
|
|
col_name => $p,
|
|
|
|
|
) };};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|