use Time::HiRes qw/time/;
use XML::Writer;
use IO::File;
+use BackupPC::Search::Estraier;
my $on_page = 100;
my $pager_pages = 10;
date_d => 'files.date DESC',
date_a => 'files.date ASC',
},
- est => {
- share_d => 'sname STRD',
- share_a => 'sname STRA',
- path_d => 'filepath STRD',
- path_a => 'filepath STRA',
- num_d => 'backupnum NUMD',
- num_a => 'backupnum NUMA',
- size_d => 'size NUMD',
- size_a => 'size NUMA',
- date_d => 'date NUMD',
- date_a => 'date NUMA',
- }
}, burn => {
default => 'date_a',
sql => {
return ($results, \@ret);
}
-sub getHyperEstraier_url($) {
- my ($use_hest) = @_;
-
- return unless $use_hest;
-
- use Search::Estraier 0.04;
- die "direct access to Hyper Estraier datatase is no longer supported. Please use estmaster\n"
- unless ($use_hest =~ m#^http://#);
-
- return $use_hest;
-}
-
sub getFilesHyperEstraier($) {
my ($param) = @_;
my $offset = $param->{'offset'} || 0;
$offset *= $on_page;
- die "no Hyper Estraier node URL?" unless ($hest_node_url);
-
- # open the database
- my $db;
- if ($hest_node_url) {
- $db ||= Search::Estraier::Node->new($hest_node_url);
- $db->set_auth('admin', 'admin');
- } else {
- die "BUG: unimplemented";
- }
-
- # create a search condition object
- my $cond = Search::Estraier::Condition->new();
-
my $q = $param->{'search_filename'};
my $shareid = $param->{'search_share'};
-
- if (length($q) > 0) {
- # exact match
- $cond->add_attr("filepath ISTRINC $q");
-
- $q =~ s/(.)/$1 /g;
- # set the search phrase to the search condition object
- $cond->set_phrase($q);
- }
-
my ($backup_from, $backup_to, $files_from, $files_to) = dates_from_form($param);
- $cond->add_attr("backup_date NUMGE $backup_from") if ($backup_from);
- $cond->add_attr("backup_date NUMLE $backup_to") if ($backup_to);
-
- $cond->add_attr("date NUMGE $files_from") if ($files_from);
- $cond->add_attr("date NUMLE $files_to") if ($files_to);
-
- $cond->add_attr("shareid NUMEQ $shareid") if ($shareid);
-
- $cond->set_max( $offset + $on_page );
- $cond->set_options( 'SURE' );
- $cond->set_order( getSort('search', 'est', $param->{'sort'} ) );
-
- # get the result of search
- my @res;
- my ($result, $hits);
-
- if ($hest_node_url) {
- $result = $db->search($cond, 0);
- if ($result) {
- $hits = $result->hits;
- } else {
- $hits = 0;
- return ($hits,[]);
- }
- } else {
- die "BUG: unimplemented";
- }
-
- # for each document in result
- for my $i ($offset .. ($offset + $on_page - 1)) {
- last if ($i >= $result->doc_num);
-
- my $doc;
- if ($hest_node_url) {
- $doc = $result->get_doc($i);
- } else {
- die "BUG: unimplemented";
- }
-
- my $row;
- foreach my $c (qw/fid hname sname backupnum filepath date type size/) {
- $row->{$c} = $doc->attr($c);
- }
- push @res, $row;
- }
-
- return ($hits, \@res);
+ return BackupPC::Search::Estraier->new( $hest_node_url )->search(
+ $offset, $on_page, $param->{sort},
+ $q, $shareid, $backup_from, $backup_to, $files_from, $files_to
+ );
+
}
sub getGzipName($$$)
$retHTML .=
qq{<td class="fviewborder" align="right">} . $file->{'hname'} . ':' . $file->{'sname'} . qq{</td>} .
- qq{<td class="fviewborder"><img src="$Conf{CgiImageDirURL}/icon-$typeStr.gif" alt="$typeStr" align="middle"> } . hilite_html( $file->{'filepath'}, $hilite ) . qq{</td>} .
+ qq{<td class="fviewborder"><img src="$Conf{CgiImageDirURL}/icon-$typeStr.png" alt="$typeStr" align="middle"> } . hilite_html( $file->{'filepath'}, $hilite ) . qq{</td>} .
qq{<td class="fviewborder" align="center">} . restore_link( $typeStr, ${EscURI( $file->{'hname'} )}, $file->{'backupnum'}, ${EscURI( $file->{'sname'})}, ${EscURI( $file->{'filepath'} )}, $file->{'backupnum'} ) . qq{</td>} .
qq{<td class="fviewborder" align="right">} . $file->{'size'} . qq{</td>} .
qq{<td class="fviewborder">} . epoch_to_iso( $file->{'date'} ) . qq{</td>} .