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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

1 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 my $dbh = DBI->connect( "dbi:SQLite:dbname=$TopDir/$Conf{SearchDB}",
16 "", "", { 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