/[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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 6 - (hide annotations)
Thu Jun 23 09:47:59 2005 UTC (18 years, 11 months ago) by dpavlin
File size: 2521 byte(s)
lot of fixes to make search work

1 dpavlin 4 package BackupPC::CGI::BurnMedia;
2    
3     use strict;
4     use BackupPC::CGI::Lib qw(:all);
5     use BackupPC::SearchLib;
6     use Data::Dumper;
7     use vars qw($Cgi %In $MyURL $User %Conf $TopDir $BinDir $bpc);
8    
9     sub action()
10     {
11     my $cont = "";
12     my $title;
13     my $subtitle;
14     my @files;
15 dpavlin 6 my $dbh = DBI->connect( "dbi:SQLite:dbname=$TopDir/$Conf{SearchDB}",
16 dpavlin 4 "", "", { RaiseError => 1, AutoCommit => 1 } );
17    
18     BackupPC::CGI::Lib::NewRequest();
19     $cont = Dumper(%In);
20     if (!defined($In{submitBurner}))
21     {
22     $title = eval(q{ ${h1($Lang->{Burn_media})}});
23     $cont = Dumper(%In);
24     $subtitle = eval(q{ ${h2($Lang->{Burn_media_select})}});
25     $cont = <<EOF;
26    
27    
28     $title
29     $subtitle
30    
31     EOF
32    
33     $cont .= "Backups that have files not archived:<br>";
34     $cont .= BackupPC::SearchLib::displayBackupsGrid();
35    
36     }
37     else
38     {
39     my $mediumName = "DVD";
40     my $mediumNum;
41    
42     $title = eval(q{ ${h1($Lang->{Burn_media})}});
43     $subtitle = eval(q{ ${h2($Lang->{Burn_media_assign})}});
44     $cont = <<EOF;
45    
46     $title
47     $subtitle
48    
49    
50     EOF
51    
52     # insert DVD first,
53     my $sql = q{ SELECT MAX(num)+1 AS maxNum FROM dvds; };
54     my $st = $dbh -> prepare($sql);
55     $st -> execute();
56     my $tmp = $st -> fetchrow_hashref();
57     $mediumNum = $tmp->{'maxNum'};
58     if ($mediumNum ne "")
59     {
60     $mediumNum = $tmp->{'maxNum'};
61     }
62     else
63     {
64     $mediumNum = "0";
65     }
66     $mediumName = "DVD".$mediumNum;
67     $st = $dbh -> prepare (q{
68     INSERT INTO dvds (num, name)
69     VALUES
70     (?,?)
71     });
72     $st -> bind_param(1,$mediumNum);
73     $st -> bind_param(2,$mediumName);
74     $st -> execute();
75     my $dvdid = $dbh->func('last_insert_rowid');
76    
77     my $updateSQL = q{
78     UPDATE files
79     SET dvdid=?
80     WHERE files.shareID IN (
81     SELECT ID FROM shares WHERE hostID=?
82     ) AND
83     files.backupNum=?
84     };
85     my $updateStatement = $dbh -> prepare($updateSQL);
86     my $orQuery = "";
87    
88     # then, assign dvdid to files
89     foreach my $key (keys(%In))
90     {
91     if ($key =~ /fcb/)
92     {
93     my ($hID, $bNo) = split(/_/, $In{$key});
94    
95     $updateStatement->bind_param(1, $dvdid);
96     $updateStatement->bind_param(2, $hID);
97     $updateStatement->bind_param(3, $bNo);
98     $updateStatement->execute();
99     }
100     }
101     $cont .= "Backups assigned to media ".$mediumName;
102     }
103    
104     Header($Lang->{Burn_media}, "", 1, "", $cont);
105     Trailer();
106     $dbh -> disconnect();
107     }
108    
109     1;

  ViewVC Help
Powered by ViewVC 1.1.26