/[BackupPC]/trunk/lib/BackupPC/CGI/BurnMedia.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/BackupPC/CGI/BurnMedia.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 4 by dpavlin, Wed Jun 22 19:22:51 2005 UTC revision 121 by iklaric, Thu Sep 15 13:54:29 2005 UTC
# Line 6  use BackupPC::SearchLib; Line 6  use BackupPC::SearchLib;
6  use Data::Dumper;  use Data::Dumper;
7  use vars qw($Cgi %In $MyURL $User %Conf $TopDir $BinDir $bpc);  use vars qw($Cgi %In $MyURL $User %Conf $TopDir $BinDir $bpc);
8    
9  sub action()  my $dsn = $Conf{SearchDSN};
10    {  my $db_user = $Conf{SearchUser} || '';
11        my $cont = "";  
12        my $title;  sub action() {
13        my $subtitle;          my $cont = "";
14        my @files;          my $title;
15        my $dbh = DBI->connect( "dbi:SQLite:dbname=$Conf{SearchDB}",          my $subtitle;
16          "", "", { RaiseError => 1, AutoCommit => 1 } );          my @files;
17    
18        BackupPC::CGI::Lib::NewRequest();          my $dbh = DBI->connect($dsn, $db_user, "", { RaiseError => 1, AutoCommit => 1 } );
19        $cont = Dumper(%In);  
20        if (!defined($In{submitBurner}))          BackupPC::CGI::Lib::NewRequest();
21          {  #       $cont = Dumper(%In);
22              $title = eval(q{ ${h1($Lang->{Burn_media})}});          if (!defined($In{submitBurner})) {
23              $cont = Dumper(%In);                  $title = eval(q{ ${h1($Lang->{Burn_media})}});
24              $subtitle = eval(q{ ${h2($Lang->{Burn_media_select})}});                  $cont = Dumper(%In);
25              $cont = <<EOF;                  $subtitle = eval(q{ ${h2($Lang->{Burn_media_select})}});
26                                $cont = <<EOF;
27                
28              $title          $title
29                $subtitle          $subtitle
30                    
31  EOF  EOF
32                                
33              $cont .= "Backups that have files not archived:<br>";                  $cont .= "Backups that have not been archived:<br>";
34              $cont .= BackupPC::SearchLib::displayBackupsGrid();                  $cont .= BackupPC::SearchLib::displayBackupsGrid();
               
         }  
       else  
         {  
             my $mediumName = "DVD";  
             my $mediumNum;  
   
             $title = eval(q{ ${h1($Lang->{Burn_media})}});  
             $subtitle = eval(q{ ${h2($Lang->{Burn_media_assign})}});  
             $cont = <<EOF;  
35                            
36              $title          } else {
             $subtitle  
                 
37    
38  EOF                  my @selectedBackups;
39                
40              # insert DVD first,                  foreach my $key(keys(%In))
41              my $sql = q{ SELECT MAX(num)+1 AS maxNum FROM dvds; };                  {
42              my $st = $dbh -> prepare($sql);                          if ($key =~ m/fcb([0-9]+)_([0-9]+)/gi)
43              $st -> execute();                          {
44              my $tmp = $st -> fetchrow_hashref();                                  my $hostID = $1;
45              $mediumNum = $tmp->{'maxNum'};                                  my $backupnum = $2;
46              if ($mediumNum ne "")                                  push(@selectedBackups, ($hostID, $backupnum));
47              {                          }
48                $mediumNum = $tmp->{'maxNum'};                              }
49              }  
50              else                  # kreiraj arhivu
51              {                  my $kveri = q{
52                $mediumNum = "0";                                                          INSERT INTO archive
53              }                                                  (id, dvd_nr, note, username, date)
54              $mediumName = "DVD".$mediumNum;                                                  VALUES}
55              $st = $dbh -> prepare (q{                                                  .
56                                          INSERT INTO dvds (num, name)                                                  "(nextVal('archive_id_seq'), nextVal('dvd_nr'), '".%In->{'note'}."', 'dummy', NOW());";
57                                          VALUES  
58                                          (?,?)                                    
59                                      });                  $dbh->do($kveri);                                        
60              $st -> bind_param(1,$mediumNum);  
61              $st -> bind_param(2,$mediumName);                  for (my $i = 0; $i <= @selectedBackups /2; $i++)
62              $st -> execute();                  {
63              my $dvdid = $dbh->func('last_insert_rowid');                                      my $host = $selectedBackups[$i*2];
64                                        my $backup = $selectedBackups[$i*2+1];
65              my $updateSQL = q{                          last if ($host == undef && $backup == undef);
66                  UPDATE files  
67                  SET dvdid=?                          # insertaj u archive_backup
68                  WHERE files.shareID IN (                          
69                      SELECT ID FROM shares WHERE hostID=?  
70                      ) AND                          my $kveri = q{
71                      files.backupNum=?                                                          INSERT INTO archive_backup
72              };                                                          SELECT
73              my $updateStatement = $dbh -> prepare($updateSQL);                                                                  (SELECT last_value FROM archive_id_seq),}.
74              my $orQuery = "";                                                                  $backup.',\'ok\';';
75                
76              # then, assign dvdid to files                          $dbh->do($kveri);
77              foreach my $key (keys(%In))                  }
78                {  
79                    if ($key =~ /fcb/)  
80                      {                                    # insertaj u workflows
81                          my ($hID, $bNo) = split(/_/, $In{$key});                  my $kveri = q{
82                                                    INSERT INTO workflows
83                          $updateStatement->bind_param(1, $dvdid);                                                  SELECT
84                          $updateStatement->bind_param(2, $hID);                                                          (SELECT step_id FROM workflow_step WHERE code='start' LIMIT 1),
85                          $updateStatement->bind_param(3, $bNo);                                                          NOW(),
86                          $updateStatement->execute();                                                          NULL,
87                      }                                                          'dummy',
88                }                                                          (SELECT last_value FROM archive_id_seq),
89              $cont .= "Backups assigned to media ".$mediumName;                                                          true
90                                            };
91          }          }
92                
93      Header($Lang->{Burn_media}, "", 1, "", $cont);          Header($Lang->{Burn_media}, "", 1, "", $cont);
94      Trailer();          Trailer();
95      $dbh -> disconnect();          $dbh->disconnect();
96    }  }
97    
98  1;  1;

Legend:
Removed from v.4  
changed lines
  Added in v.121

  ViewVC Help
Powered by ViewVC 1.1.26