rename params to sname names as in full-text index
[BackupPC.git] / lib / BackupPC / Search.pm
index 8fe2541..43587dc 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/perl
 #!/usr/bin/perl
-package BackupPC::SearchLib;
+package BackupPC::Search;
 
 use strict;
 use BackupPC::CGI::Lib qw(:all);
 
 use strict;
 use BackupPC::CGI::Lib qw(:all);
@@ -10,7 +10,7 @@ use vars qw(%In $MyURL);
 use Time::HiRes qw/time/;
 use XML::Writer;
 use IO::File;
 use Time::HiRes qw/time/;
 use XML::Writer;
 use IO::File;
-use BackupPC::Search::Estraier;
+use Data::Dump qw(dump);
 
 my $on_page = 100;
 my $pager_pages = 10;
 
 my $on_page = 100;
 my $pager_pages = 10;
@@ -18,11 +18,23 @@ my $pager_pages = 10;
 my $dsn = $Conf{SearchDSN};
 my $db_user = $Conf{SearchUser} || '';
 
 my $dsn = $Conf{SearchDSN};
 my $db_user = $Conf{SearchUser} || '';
 
-my $hest_node_url = $Conf{HyperEstraierIndex};
+sub search_module {
 
 
-my $dbh;
+       my $bpc = BackupPC::Lib->new || die;
+       my %Conf = $bpc->Conf();
+
+       my $search_module = $Conf{SearchModule} || die "search is disabled";
+       eval "use $search_module";
+       if ( $@ ) {
+               warn "ERROR: $search_module: $!";
+       } else {
+               warn "# using $search_module for full-text search";
+       }
 
 
+       return $search_module->new( %Conf );
+}
 
 
+my $dbh;
 
 sub get_dbh {
        $dbh ||= DBI->connect($dsn, $db_user, "", { RaiseError => 1, AutoCommit => 1 } );
 
 sub get_dbh {
        $dbh ||= DBI->connect($dsn, $db_user, "", { RaiseError => 1, AutoCommit => 1 } );
@@ -134,12 +146,12 @@ my $sort_def = {
        search => {
                default => 'date_a',
                sql => {
        search => {
                default => 'date_a',
                sql => {
-                       share_d => 'shares.name DESC',
-                       share_a => 'shares.name ASC',
-                       path_d => 'files.path DESC',
-                       path_a => 'files.path ASC',
-                       num_d => 'files.backupnum DESC',
-                       num_a => 'files.backupnum ASC',
+                       sname_d => 'shares.name DESC',
+                       sname_a => 'shares.name ASC',
+                       filepath_d => 'files.path DESC',
+                       filepath_a => 'files.path ASC',
+                       backupnum_d => 'files.backupnum DESC',
+                       backupnum_a => 'files.backupnum ASC',
                        size_d => 'files.size DESC',
                        size_a => 'files.size ASC',
                        date_d => 'files.date DESC',
                        size_d => 'files.size DESC',
                        size_a => 'files.size ASC',
                        date_d => 'files.date DESC',
@@ -148,8 +160,8 @@ my $sort_def = {
        }, burn => {
                default => 'date_a',
                sql => {
        }, burn => {
                default => 'date_a',
                sql => {
-                       share_d => 'host DESC, share DESC',
-                       share_a => 'host ASC, share ASC',
+                       sname_d => 'host DESC, share DESC',
+                       sname_a => 'host ASC, share ASC',
                        num_d => 'backupnum DESC',
                        num_a => 'backupnum ASC',
                        date_d => 'date DESC',
                        num_d => 'backupnum DESC',
                        num_a => 'backupnum ASC',
                        date_d => 'date DESC',
@@ -262,7 +274,7 @@ sub getFilesHyperEstraier($) {
        my $shareid = $param->{'search_share'};
        my ($backup_from, $backup_to, $files_from, $files_to) = dates_from_form($param);
 
        my $shareid = $param->{'search_share'};
        my ($backup_from, $backup_to, $files_from, $files_to) = dates_from_form($param);
 
-       return BackupPC::Search::Estraier->new( $hest_node_url )->search(
+       return search_module->search(
                $offset, $on_page, $param->{sort},
                $q, $shareid, $backup_from, $backup_to, $files_from, $files_to
        );
                $offset, $on_page, $param->{sort},
                $q, $shareid, $backup_from, $backup_to, $files_from, $files_to
        );
@@ -952,9 +964,9 @@ sub displayGrid($) {
        }
 
        $retHTML .=
        }
 
        $retHTML .=
-               sort_header($param, 'Share', 'share', 'center') .
-               sort_header($param, 'Type and Name', 'path', 'center') .
-               sort_header($param, '#', 'num', 'center') .
+               sort_header($param, 'Share', 'sname', 'center') .
+               sort_header($param, 'Type and Name', 'filepath', 'center') .
+               sort_header($param, '#', 'backupnum', 'center') .
                sort_header($param, 'Size', 'size', 'center') .
                sort_header($param, 'Date', 'date', 'center');
 
                sort_header($param, 'Size', 'size', 'center') .
                sort_header($param, 'Date', 'date', 'center');