mirror of
https://github.com/webmin/webmin.git
synced 2025-07-21 23:40:34 +00:00
52 lines
1.6 KiB
Perl
Executable File
52 lines
1.6 KiB
Perl
Executable File
#!/usr/local/bin/perl
|
|
# Show a form for restoring an old node group backup job
|
|
|
|
require './bacula-backup-lib.pl';
|
|
&ui_print_header(undef, $text{'grestore_title'}, "", "grestore");
|
|
|
|
print &ui_form_start("grestore.cgi", "post");
|
|
print &ui_table_start($text{'grestore_header'}, undef, 2);
|
|
|
|
# Old job to restore
|
|
$dbh = &connect_to_database();
|
|
$cmd = $dbh->prepare("select JobId,Name,SchedTime from Job where Name not like 'Restore%' order by SchedTime desc") ||
|
|
&error("prepare failed : ",$dbh->errstr);
|
|
$cmd->execute();
|
|
while(my ($id, $name, $when) = $cmd->fetchrow()) {
|
|
if ($oc = &is_oc_object($name)) {
|
|
push(@opts, [ $id, "$oc ($id) ($when)" ]);
|
|
}
|
|
}
|
|
$cmd->finish();
|
|
print &ui_table_row($text{'restore_job'},
|
|
&ui_select("job", undef, \@opts));
|
|
|
|
# Files to restore
|
|
print &ui_table_row($text{'restore_files'},
|
|
&ui_textarea("files", undef, 8, 50)."\n".
|
|
&bacula_file_button("files", "job"));
|
|
|
|
# Destination client
|
|
@clients = sort { lc($a->{'name'}) cmp lc($b->{'name'}) }
|
|
grep { &is_oc_object($_, 1) } &get_bacula_clients();
|
|
print &ui_table_row($text{'restore_client'},
|
|
&ui_select("client", undef,
|
|
[ map { [ $_->{'name'},
|
|
&text('clientstatus_on', $_->{'name'}, $_->{'address'}) ] }
|
|
@clients ]));
|
|
|
|
# Storage device
|
|
@storages = sort { lc($a->{'name'}) cmp lc($b->{'name'}) }
|
|
&get_bacula_storages();
|
|
print &ui_table_row($text{'restore_storage'},
|
|
&ui_select("storage", undef,
|
|
[ map { [ $_->{'name'},
|
|
&text('storagestatus_on', $_->{'name'}, $_->{'address'}) ] }
|
|
@storages ]));
|
|
|
|
print &ui_table_end();
|
|
print &ui_form_end([ [ "restore", $text{'restore_ok'} ] ]);
|
|
|
|
&ui_print_footer("", $text{'index_return'});
|
|
|