r8368@llin: dpavlin | 2005-10-07 13:15:21 +0200
authordpavlin <dpavlin@8392b6e1-25fa-0310-8288-cc32f8e212ea>
Fri, 7 Oct 2005 11:15:28 +0000 (11:15 +0000)
committerdpavlin <dpavlin@8392b6e1-25fa-0310-8288-cc32f8e212ea>
Fri, 7 Oct 2005 11:15:28 +0000 (11:15 +0000)
 refactor code a lot. Probably broken now.

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/BackupPC/trunk@145 8392b6e1-25fa-0310-8288-cc32f8e212ea

lib/BackupPC/CGI/BurnMedia.pm
lib/BackupPC/SearchLib.pm

index 022721b..6f47cc1 100644 (file)
@@ -3,7 +3,6 @@ package BackupPC::CGI::BurnMedia;
 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 @@ EOF
            
        } 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());";
-
-
-                       $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);
+                       $cont .= "Selected backups exceed max archive size.";
+               } else {
+
+                       foreach my $backup_id (@selected_backup_ids) {
+
+                               # 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{
+                                       <br/>with following message:
+                                       <div style="border: 1px solid #e0e0e0">
+                               } . $In{'note'} . qq{
+                                       </div>
+                               };
                        }
-       
-                       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();
 }
index 07273d3..fdcad2a 100644 (file)
@@ -308,11 +308,12 @@ sub getGzipSize($$)
                                WHERE shares.id=backups.shareid AND
                                          hosts.id =backups.hostid AND
                                          hosts.id=? AND
-                                         backups.num=?;
+                                         backups.num=?
                        };
        my $sth = $dbh->prepare($sql);
-       $sth->execute($hostID, $backupNUM);
-       my $row = $res->fetchrow_hashref();
+       $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}.'/'.
@@ -330,10 +331,11 @@ sub getBackupsNotBurned() {
                        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
                FROM backups 
                INNER JOIN shares       ON backups.shareID=shares.ID
                INNER JOIN hosts        ON backups.hostID = hosts.ID
@@ -697,18 +699,20 @@ EOF3
                }
                my $ftype = "";
 
+               my $checkbox_key = $backup->{'hostid'}. '_' .$backup->{'backupnum'} . '_' . $backup->{'id'};
+
                $retHTML .=
                        '<tr' . $color[$i %2 ] . '>
                        <td class="fview">';
+
                # FIXME
                $backup->{'fs_size'} = int($backup->{'size'} * 1024);
+
                if (($backup->{'fs_size'} || 0) > 0) {
                        $retHTML .= '
-                       <input type="checkbox" name="fcb' .
-                       $backup->{'hostid'}.'_'.$backup->{'backupnum'} . 
-                       '" value="' . $backup->{'hostid'}.'_'.$backup->{'backupnum'} .
-                       '" onClick="sumiraj(this);">';
+                       <input type="checkbox" name="fcb' . $checkbox_key . '" value="' . $checkbox_key . '" onClick="sumiraj(this);">';
                }
+
                $retHTML .=
                        '</td>' .
                        '<td align="right">' . $backup->{'host'} . ':' . $backup->{'share'} . '</td>' .
@@ -718,7 +722,7 @@ EOF3
                        '<td align="center">' . $backup->{'age'} . '</td>' .
                        '<td align="right">' . $backup->{'size'} . '</td>' .
                        '<td align="right">' . $backup->{'fs_size'} .
-                       '<input type="hidden" iD="fss'.$backup->{'hostid'}.'_'.$backup->{'backupnum'} . '" value="'. $backup->{'fs_size'} .'"></td>' .
+                       '<input type="hidden" iD="fss'.$checkbox_key .'" value="'. $backup->{'fs_size'} .'"></td>' .
 
                        "</tr>\n";
        }