--- trunk/lib/BackupPC/CGI/BurnMedia.pm 2005/10/07 10:28:55 144 +++ trunk/lib/BackupPC/CGI/BurnMedia.pm 2005/10/07 11:15:28 145 @@ -3,7 +3,6 @@ use strict; use BackupPC::CGI::Lib qw(:all); use BackupPC::SearchLib; -use BackupPC::Workflow::Create; use Data::Dumper; use vars qw($Cgi %In $MyURL $User %Conf $TopDir $BinDir $bpc); @@ -36,88 +35,72 @@ } else { - my @selectedBackups; + my @selected_backup_ids; + my $total_size = 0; - foreach my $key(keys(%In)) - { - if ($key =~ m/fcb([0-9]+)_([0-9]+)/gi) - { - my $hostID = $1; - my $backupnum = $2; - push(@selectedBackups, ($hostID, $backupnum)); - $total_size += getGzipSize($hostID, $backupnum); + 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 += getGzipSize($host_id, $backup_num); } } - if ($total_size > $Conf{MaxArchiveSize}) - { + # create new archive + my $sth = $dbh->prepare(q{ + INSERT INTO archive ( + id, + dvd_nr, + note, + username, + date + ) VALUES ( + nextVal('archive_id_seq'), + nextVal('dvd_nr'), + ?, + ?, + NOW() + ) + }); + + # FIXME insert user here + $sth->execute($In{'note'}, 'dummy_user'); + + if ($total_size > $Conf{MaxArchiveSize}) { $cont .= eval( q{ ${h2(Error)}}); - $cont .= "Selected backups exceed max archive size."; - } - else - { - # kreiraj arhivu - my $kveri = q{ - INSERT INTO archive - (id, dvd_nr, note, username, date) - VALUES} - . - "(nextVal('archive_id_seq'), nextVal('dvd_nr'), '".%In->{'note'}."', 'dummy', NOW());"; + $cont .= "Selected backups exceed max archive size."; + } else { + foreach my $backup_id (@selected_backup_ids) { - $dbh->do($kveri); - - for (my $i = 0; $i <= @selectedBackups /2; $i++) - { - my $host = $selectedBackups[$i*2]; - my $backup = $selectedBackups[$i*2+1]; - last if ($host == undef && $backup == undef); - - # insertaj u archive_backup - - - my $kveri = q{ - INSERT INTO archive_backup - SELECT - (SELECT last_value FROM archive_id_seq),}. - $backup.',\'ok\';'; - - $dbh->do($kveri); + # link backups with archive + my $sth = $dbh->prepare(q{ + INSERT INTO archive_backup ( + archive_id, backup_id, status + ) VALUES ( + (SELECT last_value FROM archive_id_seq), ?, ? + ) + }); + + $sth->execute($backup_id, 'ok'); + + $dbh->commit(); + + $cont .= qq{ + Archived following backups: + } . join(",", @selected_backup_ids) . qq{ +
with following message: +
+ } . $In{'note'} . qq{ +
+ }; } - - my $kveri = q{ - INSERT INTO workflow_step(step_id, code, next_step, stop) - VALUES - ( - nextVal('workflow_step_id_seq'), - 'start', - NULL, - false - ); - }; - $dbh->do($kveri); - - - # insertaj u workflows - my $kveri = q{ - INSERT INTO workflows( id, step_id, start, stop, username, archive_id , running) - SELECT - nextVal('workflows_id_seq'), - (SELECT currVal('workflow_step_id_seq')), - NOW(), - NULL, - 'dummy', - (SELECT last_value FROM archive_id_seq), - true; - }; - $dbh->do($kveri); - - $dbh->commit(); } } - + Header($Lang->{Burn_media}, "", 1, "", $cont); + Trailer(); $dbh->disconnect(); }