From 5b98b1233c467554f2529803aedb0e566d6c47c2 Mon Sep 17 00:00:00 2001 From: dpavlin Date: Thu, 13 Oct 2005 18:33:00 +0000 Subject: [PATCH] r8507@llin: dpavlin | 2005-10-13 20:32:53 +0200 added support for multiple parts to user interface git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/BackupPC/trunk@197 8392b6e1-25fa-0310-8288-cc32f8e212ea --- lib/BackupPC/CGI/BurnMedia.pm | 19 ++++++++++++++--- lib/BackupPC/SearchLib.pm | 40 +++++++++++++++++++++++++++++------ 2 files changed, 50 insertions(+), 9 deletions(-) diff --git a/lib/BackupPC/CGI/BurnMedia.pm b/lib/BackupPC/CGI/BurnMedia.pm index 922485a..e01f9cb 100644 --- a/lib/BackupPC/CGI/BurnMedia.pm +++ b/lib/BackupPC/CGI/BurnMedia.pm @@ -38,18 +38,31 @@ EOF my @selected_backup_ids; my $total_size = 0; - + my $selected = 0; + foreach my $key(keys(%In)) { if ($key =~ m/^fcb([0-9]+)_([0-9]+)_([0-9]+)$/gi) { my ($host_id, $backup_num, $backup_id) = ($1,$2,$3); push @selected_backup_ids, $backup_id; $total_size += BackupPC::SearchLib::getGzipSize($host_id, $backup_num); + $selected++; } } - if (($total_size / 1024) > $Conf{MaxArchiveSize}) { + my $total_kb = int($total_size / 1024); + + # and now a little magic to check multi-volume increments + my $parts = 1; + if ($#selected_backup_ids == 0) { + ($parts) = $dbh->selectrow_array("select parts from backups where id = ?", undef, $selected_backup_ids[0]); + } + + if ($total_kb > ($Conf{MaxArchiveSize} * $parts)) { + $cont .= eval( q{ ${h2(Error)}}); + $cont .= "Selected backups size $total_kb Kb exceed max archive size $Conf{MaxArchiveSize} Kb."; + } elsif ($total_size == 0) { $cont .= eval( q{ ${h2(Error)}}); - $cont .= "Selected backups size $total_size exceed max archive size $Conf{MaxArchiveSize}."; + $cont .= "No backups selected."; } else { # create new archive diff --git a/lib/BackupPC/SearchLib.pm b/lib/BackupPC/SearchLib.pm index 11478f8..6719ab9 100644 --- a/lib/BackupPC/SearchLib.pm +++ b/lib/BackupPC/SearchLib.pm @@ -369,7 +369,8 @@ sub getBackupsNotBurned() { backups.date AS date, backups.size AS size, backups.id AS id, - backups.inc_size AS inc_size + backups.inc_size AS inc_size, + backups.parts AS parts FROM backups INNER JOIN shares ON backups.shareID=shares.ID INNER JOIN hosts ON backups.hostID = hosts.ID @@ -385,7 +386,8 @@ sub getBackupsNotBurned() { backups.type, backups.date, backups.size, - backups.inc_size + backups.inc_size, + backups.parts ORDER BY backups.date }; my $sth = $dbh->prepare( $sql ); @@ -511,6 +513,15 @@ DIV#fixedBox #submitBurner { z-index: 3; background-color: transparent; } + +#parts { + padding: 0.4em; + display: none; + width: 100%; + font-size: 80%; + color: #ff0000; + text-align: center; +} -->