# HG changeset patch # User Vincent Tondellier # Date 1451344538 -3600 # Node ID d84db31dd51cafa308de19dcf65c59024558436e # Parent c82f5589db1101313b6975a464c6edbe135a394e Restore searching on extra columns diff -r c82f5589db11 -r d84db31dd51c lib/CrashTest/Plugin/Storage/Sql/Model/CrashGroup.pm --- a/lib/CrashTest/Plugin/Storage/Sql/Model/CrashGroup.pm Mon Dec 28 23:08:23 2015 +0100 +++ b/lib/CrashTest/Plugin/Storage/Sql/Model/CrashGroup.pm Tue Dec 29 00:15:38 2015 +0100 @@ -13,8 +13,10 @@ package CrashTest::Plugin::Storage::Sql::Model::CrashGroup; use Mojo::Base -base; +use Data::Page; #use DBI::Log; #$DBI::Log::trace = 0; +use Search::QueryParser::SQL; use Storable 'dclone'; use CrashTest::Model::Thread; @@ -34,7 +36,7 @@ } sub _build_query_from_search_string { - my ($self, $search) = @_; + my ($self, $search, $extra_columns) = @_; my @values; @@ -57,6 +59,10 @@ function => { callback => $cb, name => 'crash_group.crash_thread_signature_bt', type => "fuzzy" }, }; + foreach my $extra_col(@$extra_columns) { + $search_fields->{$extra_col->{id}} = { callback => $cb, name => $extra_col->{db_column} }; + } + my $parser = Search::QueryParser::SQL->new( columns => $search_fields, default_column => "function", @@ -79,7 +85,7 @@ my $where = ""; my @values = (); if(defined($search_str) && $search_str ne "") { - my $q = $self->_build_query_from_search_string($search_str); + my $q = $self->_build_query_from_search_string($search_str, $self->app->config->{WebInterface}->{ExtraColumns}->{Index}); $where = "WHERE " . $q->[0]; @values = @{$q->[1]}; } diff -r c82f5589db11 -r d84db31dd51c lib/CrashTest/Plugin/Storage/Sql/Model/CrashReport.pm --- a/lib/CrashTest/Plugin/Storage/Sql/Model/CrashReport.pm Mon Dec 28 23:08:23 2015 +0100 +++ b/lib/CrashTest/Plugin/Storage/Sql/Model/CrashReport.pm Tue Dec 29 00:15:38 2015 +0100 @@ -37,7 +37,7 @@ } sub _build_query_from_search_string { - my ($self, $search) = @_; + my ($self, $search, $extra_columns) = @_; my @values; @@ -61,6 +61,10 @@ function => { callback => $cb, name => 'crash_group.crash_thread_signature_bt', type => "fuzzy" }, }; + foreach my $extra_col(@$extra_columns) { + $search_fields->{$extra_col->{id}} = { callback => $cb, name => $extra_col->{db_column} }; + } + my $parser = Search::QueryParser::SQL->new( columns => $search_fields, default_column => "function", @@ -83,7 +87,7 @@ my $where = ""; my @values = (); if(defined($search_str) && $search_str ne "") { - my $q = $self->_build_query_from_search_string($search_str); + my $q = $self->_build_query_from_search_string($search_str, $self->app->config->{WebInterface}->{ExtraColumns}->{Index}); $where = "WHERE " . $q->[0]; @values = @{$q->[1]}; }