sub mk_epoch_date($$) {
my ($name,$suffix) = @_;
- my $yyyy = $param->{ $name . '_year_' . $suffix} || return;
+ my $yyyy = $param->{ $name . '_year_' . $suffix} || return undef;
my $mm .= $param->{ $name . '_month_' . $suffix} ||
( $suffix eq 'from' ? 1 : 12);
my $dd .= $param->{ $name . '_day_' . $suffix} ||
( $suffix eq 'from' ? 1 : 31);
+
+ $yyyy =~ s/\D//g;
+ $mm =~ s/\D//g;
+ $dd =~ s/\D//g;
+
my $dt = new DateTime(
year => $yyyy,
month => $mm,
day => $dd
);
+ print STDERR "mk_epoch_date($name,$suffix) [$yyyy-$mm-$dd] = " . $dt->ymd . " " . $dt->hms . "\n";
return $dt->epoch || 'NULL';
}
- return (
+ my @ret = (
mk_epoch_date('search_backup', 'from'),
mk_epoch_date('search_backup', 'to'),
mk_epoch_date('search', 'from'),
mk_epoch_date('search', 'to'),
);
+
+ return @ret;
+
}
}
-sub getFiles($$) {
- my ($param, $offset) = @_;
+sub getFiles($) {
+ my ($param) = @_;
+
+ my $offset = $param->{'offset'} || 0;
+ $offset *= $on_page;
my $dbh = get_dbh();
files.id AS fid,
hosts.name AS hname,
shares.name AS sname,
- -- shares.share AS sharename,
files.backupnum AS backupnum,
- -- files.name AS filename,
files.path AS filepath,
files.date AS date,
files.type AS type,
- files.size AS size,
- -- dvds.name AS dvd
- null AS dvd
+ files.size AS size
};
my $sql_from = qq{
FROM files
INNER JOIN shares ON files.shareID=shares.ID
INNER JOIN hosts ON hosts.ID = shares.hostID
- INNER JOIN backups ON backups.num = files.backupnum and backups.hostID = hosts.ID AND backups.shareID = shares.ID
- };
-
- my $sql_dvd_from = qq{
- -- LEFT JOIN dvds ON dvds.ID = files.dvdid
+ INNER JOIN backups ON backups.num = files.backupnum and backups.hostID = hosts.ID AND backups.shareID = files.shareID
};
my $sql_where;
};
my $sql_count = qq{ select count(files.id) $sql_from $sql_where };
- my $sql_results = qq{ select $sql_cols $sql_from $sql_dvd_from $sql_where $sql_order };
-
- $offset ||= 0;
- $offset = ($offset * $on_page);
+ my $sql_results = qq{ select $sql_cols $sql_from $sql_where $sql_order };
my $sth = $dbh->prepare($sql_count);
$sth->execute();
return ($results, \@ret);
}
-sub getFilesHyperEstraier($$) {
- my ($param, $offset) = @_;
+sub getFilesHyperEstraier($) {
+ my ($param) = @_;
+
+ my $offset = $param->{'offset'} || 0;
+ $offset *= $on_page;
die "no index_path?" unless ($index_path);
# 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);
+ my ($backup_from, $backup_to, $files_from, $files_to) = dates_from_form($param);
- $cond->add_attr("date NUMGE $files_from") if ($files_from);
- $cond->add_attr("date NUMLE $files_to") if ($files_to);
+ $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("shareid NUMEQ $shareid") if ($shareid);
- }
+ $cond->add_attr("date NUMGE $files_from") if ($files_from);
+ $cond->add_attr("date NUMLE $files_to") if ($files_to);
- $offset ||= 0;
- $offset = ($offset * $on_page);
+ $cond->add_attr("shareid NUMEQ $shareid") if ($shareid);
# $cond->set_max( $offset + $on_page );
$cond->set_options( $HyperEstraier::Condition::SURE );
# get the result of search
my $result = $db->search($cond, 0);
- $result->get(0);
my @res;
my $hits = $result->size;
# for each document in result
- for my $i ($offset .. $result->size-1) {
+ for my $i ($offset .. ($offset + $on_page - 1)) {
+ last if ($i >= $hits);
+
my $id = $result->get($i);
my $doc = $db->get_doc($id, 0);
INNER JOIN shares ON files.shareID=shares.ID
INNER JOIN hosts ON hosts.ID = shares.hostID
INNER JOIN backups ON backups.num = files.backupnum and backups.hostID = hosts.ID AND backups.shareID = shares.ID
- WHERE
- files.dvdid IS NULL
GROUP BY
backups.hostID, backups.num
ORDER BY min(backups.date)
my ($results, $files);
if ($param->{'use_hest'}) {
- ($results, $files) = getFilesHyperEstraier($param, $offset);
+ ($results, $files) = getFilesHyperEstraier($param);
} else {
- ($results, $files) = getFiles($param, $offset);
+ ($results, $files) = getFiles($param);
}
my $dur_t = time() - $start_t;
</div>
<table style="fview" width="100%" border="0" cellpadding="2" cellspacing="0">
<tr class="fviewheader">
+ <td></td>
<td align="center">Share</td>
<td align="center">Type and Name</td>
<td align="center">#</td>
return sprintf(qq{<a href="?action=%s&host=%s&num=%d&share=%s&dir=%s">%s</a>}, $action, @_);
}
+ my $i = $offset * $on_page;
+
foreach $file (@{ $files }) {
+ $i++;
+
my $typeStr = BackupPC::Attrib::fileType2Text(undef, $file->{'type'});
$retHTML .= qq{<tr class="fviewborder">};
+ $retHTML .= qq{<td>$i</td>};
+
$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" 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>} .
- qq{<td class="fviewborder">} . $file->{'dvd'} . qq{</td>};
+ qq{<td class="fviewborder">} . '?' . qq{</td>};
$retHTML .= "</tr>";
}