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);
} 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();
}
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}.'/'.
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
}
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>' .
'<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";
}