--- trunk/lib/BackupPC/SearchLib.pm 2005/09/22 09:27:17 127 +++ trunk/lib/BackupPC/SearchLib.pm 2005/10/10 14:04:49 166 @@ -288,11 +288,42 @@ $ret =~ s/\\h/$host/ge; $ret =~ s/\\s/$share/ge; $ret =~ s/\\n/$backupnum/ge; - + + $ret =~ s/__+/_/g; + return $ret; } +sub getGzipSize($$) +{ + my ($hostID, $backupNum) = @_; + my $ret; + my $sql; + my $dbh = get_dbh(); + + $sql = q{ + SELECT hosts.name as host, + shares.name as share, + backups.num as backupnum + FROM hosts, backups, shares + WHERE shares.id=backups.shareid AND + hosts.id =backups.hostid AND + hosts.id=? AND + backups.num=? + }; + my $sth = $dbh->prepare($sql); + $sth->execute($hostID, $backupNum); + + my $row = $sth->fetchrow_hashref(); + + my (undef,undef,undef,undef,undef,undef,undef,$ret,undef,undef,undef,undef,undef) = + stat( $Conf{InstallDir}.'/'.$Conf{GzipTempDir}.'/'. + getGzipName($row->{'host'}, $row->{share}, $row->{'backupnum'})); + + return $ret; +} + sub getBackupsNotBurned() { my $dbh = get_dbh(); @@ -302,15 +333,17 @@ backups.hostID AS hostID, hosts.name AS host, shares.name AS share, - backups.id AS backupnum, + backups.num AS backupnum, backups.type AS type, backups.date AS date, - backups.size AS size + backups.size AS size, + backups.id AS id, + backups.inc_size AS inc_size FROM backups INNER JOIN shares ON backups.shareID=shares.ID INNER JOIN hosts ON backups.hostID = hosts.ID - LEFT OUTER JOIN archive_backup ON archive_backup.backup_id = backups.id AND archive_backup.backup_id IS NULL - WHERE backups.size > 0 + LEFT OUTER JOIN archive_backup ON archive_backup.backup_id = backups.id + WHERE backups.size > 0 AND backups.inc_size > 0 AND backups.inc_deleted is false AND archive_backup.backup_id IS NULL GROUP BY backups.hostID, hosts.name, @@ -320,7 +353,8 @@ backups.id, backups.type, backups.date, - backups.size + backups.size, + backups.inc_size ORDER BY backups.date }; my $sth = $dbh->prepare( $sql ); @@ -330,10 +364,9 @@ while ( my $row = $sth->fetchrow_hashref() ) { $row->{'age'} = sprintf("%0.1f", ( (time() - $row->{'date'}) / 86400 ) ); $row->{'size'} = sprintf("%0.2f", $row->{'size'} / 1024 / 1024); - my (undef,undef,undef,undef,undef,undef,undef,$fs_size,undef,undef,undef,undef,undef) = - stat( $Conf{InstallDir}.'/'.$Conf{GzipTempDir}.'/'. - getGzipName($row->{'host'}, $row->{share}, $row->{'backupnum'})); - $row->{'fs_size'} = $fs_size; + + # do some cluster calculation (approximate) and convert to kB + $row->{'inc_size'} = int(($row->{'inc_size'} + 1023 ) / ( 2 * 1024 ) * 2); push @ret, $row; } @@ -343,56 +376,122 @@ sub displayBackupsGrid() { my $retHTML .= q{ -
+ }; $retHTML .= <<'EOF3'; - -
-Size: - +Size: kB + +
+
 
+
 
+
0%
+

+ Note: -
- -
- + + +
+ EOF3 $retHTML .= q{ @@ -503,7 +689,7 @@ date age/days size/MB - gzip size + gzip size/kB }; @@ -521,18 +707,17 @@ } my $ftype = ""; + my $checkbox_key = $backup->{'hostid'}. '_' .$backup->{'backupnum'} . '_' . $backup->{'id'}; + $retHTML .= ' '; - # FIXME - #$backup->{'fs_size'} = int($backup->{'size'} * 1024); - if (($backup->{'fs_size'} || 0) > 0) { + + if (($backup->{'inc_size'} || 0) > 0) { $retHTML .= ' - '; + '; } + $retHTML .= '' . '' . $backup->{'host'} . ':' . $backup->{'share'} . '' . @@ -541,8 +726,8 @@ '' . epoch_to_iso( $backup->{'date'} ) . '' . '' . $backup->{'age'} . '' . '' . $backup->{'size'} . '' . - '' . $backup->{'fs_size'} . - '' . + '' . $backup->{'inc_size'} . + '' . "\n"; }