r124@klaxLaptop: klax | 2005-09-15 15:46:19 +0200
[BackupPC.git] / lib / BackupPC / CGI / BurnMedia.pm
index df1a36b..0161259 100644 (file)
@@ -18,7 +18,7 @@ sub action() {
        my $dbh = DBI->connect($dsn, $db_user, "", { RaiseError => 1, AutoCommit => 1 } );
 
        BackupPC::CGI::Lib::NewRequest();
-       $cont = Dumper(%In);
+#      $cont = Dumper(%In);
        if (!defined($In{submitBurner})) {
                $title = eval(q{ ${h1($Lang->{Burn_media})}});
                $cont = Dumper(%In);
@@ -30,62 +30,64 @@ sub action() {
        
 EOF
              
-               $cont .= "Backups that have files not archived:<br>";
+               $cont .= "Backups that have not been archived:<br>";
                $cont .= BackupPC::SearchLib::displayBackupsGrid();
            
        } else {
 
-               my $mediumName = "DVD";
+               my @selectedBackups;
 
-               $title = eval(q{ ${h1($Lang->{Burn_media})}});
-               $subtitle = eval(q{ ${h2($Lang->{Burn_media_assign})}});
-               $cont = <<EOF;
+               foreach my $key(keys(%In))
+               {
+                       if ($key =~ m/fcb([0-9]+)_([0-9]+)/gi)
+                       {
+                               my $hostID = $1;
+                               my $backupnum = $2;
+                               push(@selectedBackups, ($hostID, $backupnum));
+                       }
+               }
 
-       $title
-       $subtitle
+               # 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());";
 
-EOF
-           
-               # insert DVD first,
-               my $sql = q{ SELECT MAX(num)+1 AS maxNum FROM dvds; };
 
-               my $sth = $dbh->prepare($sql);
-               $sth->execute();
+               $dbh->do($kveri);                                        
 
-               my ($mediumNum) = $sth->fetchrow_array();
-               $mediumNum ||= '0';
+               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);
 
-               $mediumName = "DVD".$mediumNum;
-               $sth = $dbh->prepare (q{ 
-                               INSERT INTO dvds (num, name) 
-                               VALUES
-                               (?,?)                                   
-               });
+                       # insertaj u archive_backup
+                       
 
-               $sth->execute($mediumNum, $mediumName);
+                       my $kveri = q{
+                                                       INSERT INTO archive_backup
+                                                       SELECT
+                                                               (SELECT last_value FROM archive_id_seq),}.
+                                                               $backup.',\'ok\';';
 
-               my $dvdid = $dbh->last_insert_id(undef,undef,'dvds',undef);         
-           
-               my $updateSQL = q{
-                       UPDATE files
-                       SET dvdid=?
-                       WHERE files.shareID IN (
-                               SELECT ID FROM shares WHERE hostID=?
-                       ) AND
-                               files.backupNum=?
-               };
-
-               my $update_sth = $dbh->prepare($updateSQL);
-               my $orQuery = "";
-           
-               # then, assign dvdid to files
-               foreach my $key (keys(%In)) {
-                       if ($key =~ /fcb/) {                    
-                               my ($hID, $bNo) = split(/_/, $In{$key});
-                               $update_sth->execute($dvdid, $hID, $bNo);
-                       }
+                       $dbh->do($kveri);
                }
-               $cont .= "Backups assigned to media ".$mediumName;
+
+
+               # insertaj u workflows
+               my $kveri = q{
+                                               INSERT INTO workflows
+                                               SELECT
+                                                       (SELECT step_id FROM workflow_step WHERE code='start' LIMIT 1),
+                                                       NOW(),
+                                                       NULL,
+                                                       'dummy',
+                                                       (SELECT last_value FROM archive_id_seq),
+                                                       true
+                                       };
        }
       
        Header($Lang->{Burn_media}, "", 1, "", $cont);