4 |
use strict; |
use strict; |
5 |
use BackupPC::CGI::Lib qw(:all); |
use BackupPC::CGI::Lib qw(:all); |
6 |
use BackupPC::Attrib qw(:all); |
use BackupPC::Attrib qw(:all); |
|
use Data::Dumper; |
|
7 |
use DBI; |
use DBI; |
8 |
|
|
9 |
sub getUnits() { |
sub getUnits() { |
52 |
|
|
53 |
push( @conditions, ' backups.hostID = ' . $param->{'search_host'} ) if ($param->{'search_host'}); |
push( @conditions, ' backups.hostID = ' . $param->{'search_host'} ) if ($param->{'search_host'}); |
54 |
|
|
55 |
push (@conditions, " files.name LIKE '".$param->{'search_filename'}."%'") if ($param->{'search_filename'}); |
push (@conditions, " upper(files.name) LIKE upper('%".$param->{'search_filename'}."%')") if ($param->{'search_filename'}); |
56 |
|
|
57 |
return ( |
return ( |
58 |
join(" and ", @conditions), |
join(" and ", @conditions), |
86 |
FROM files |
FROM files |
87 |
INNER JOIN shares ON files.shareID=shares.ID |
INNER JOIN shares ON files.shareID=shares.ID |
88 |
INNER JOIN hosts ON hosts.ID = shares.hostID |
INNER JOIN hosts ON hosts.ID = shares.hostID |
89 |
INNER JOIN backups ON backups.num = files.backupNum |
INNER JOIN backups ON backups.num = files.backupNum and backups.hostID = hosts.ID |
90 |
LEFT JOIN dvds ON dvds.ID = files.dvdid |
LEFT JOIN dvds ON dvds.ID = files.dvdid |
91 |
}; |
}; |
92 |
|
|
278 |
$retHTML .= qq{ |
$retHTML .= qq{ |
279 |
<table style="fview" width="100%"> |
<table style="fview" width="100%"> |
280 |
<tr> |
<tr> |
281 |
<td class="tableheader">Host</td> |
<td class="tableheader">Share</td> |
|
<td class="tableheader">Type</td> |
|
282 |
<td class="tableheader">Name</td> |
<td class="tableheader">Name</td> |
283 |
<td class="tableheader">backup no.</td> |
<td class="tableheader">Type</td> |
284 |
<td class="tableheader">size</td> |
<td class="tableheader">#</td> |
285 |
<td class="tableheader">date</td> |
<td class="tableheader">Size</td> |
286 |
|
<td class="tableheader">Date</td> |
287 |
<td class="tableheader">Media</td> |
<td class="tableheader">Media</td> |
288 |
</tr> |
</tr> |
289 |
}; |
}; |
296 |
return $html; |
return $html; |
297 |
} |
} |
298 |
|
|
299 |
foreach $file (@files) { |
sub restore_link($$$$$$) { |
300 |
my $ftype = "file"; |
my $type = shift; |
301 |
$ftype = "dir" if ($file->{'type'} == BPC_FTYPE_DIR); |
my $action = 'RestoreFile'; |
302 |
|
$action = 'browse' if (lc($type) eq 'dir'); |
303 |
|
return sprintf(qq{<a href="?action=%s&host=%s&num=%d&share=%s&dir=%s">%s</a>}, $action, @_); |
304 |
|
} |
305 |
|
|
306 |
|
foreach $file (@files) { |
307 |
|
my $typeStr = BackupPC::Attrib::fileType2Text(undef, $file->{'type'}); |
308 |
$retHTML .= "<tr>"; |
$retHTML .= "<tr>"; |
309 |
|
|
310 |
foreach my $v (( |
foreach my $v (( |
311 |
$file->{'hname'}, |
$file->{'sharename'}, |
312 |
$ftype, |
qq{<img src="$Conf{CgiImageDirURL}/icon-$typeStr.gif" align="center"> } . hilite_html( $file->{'fpath'}, $hilite ), |
313 |
hilite_html( $file->{'fpath'}, $hilite ), |
$typeStr, |
314 |
$file->{'backupno'}, |
restore_link( $typeStr, $file->{'hname'}, $file->{'backupno'}, $file->{'sname'}, $file->{'fpath'}, $file->{'backupno'} ), |
315 |
$file->{'size'}, |
$file->{'size'}, |
316 |
$file->{'date'}, |
$file->{'date'}, |
317 |
$file->{'dvd'} |
$file->{'dvd'} |