Add missing CGIs

This commit is contained in:
Jamie Cameron
2014-07-06 08:30:31 -07:00
parent 2fa3753bbf
commit 9cf786e000
2 changed files with 103 additions and 0 deletions

54
minecraft/edit_backup.cgi Executable file
View File

@ -0,0 +1,54 @@
#!/usr/local/bin/perl
# Show a form for setting up scheduled backups
use strict;
use warnings;
require './minecraft-lib.pl';
&foreign_require("webmincron");
our (%in, %text, %config);
&ui_print_header(undef, $text{'backup_title'}, "");
print $text{'backup_desc'},"<p>\n";
print &ui_form_start("save_backup.cgi", "post");
print &ui_table_start($text{'backup_header'}, undef, 2);
# Backup enabled
my $job = &get_backup_job();
print &ui_table_row($text{'backup_enabled'},
&ui_yesno_radio("enabled", $job ? 1 : 0));
# Schedule
print &ui_table_row($text{'backup_sched'},
&webmincron::show_times_input(
$job || { 'mins' => 0,
'hours' => 0,
'days' => '*',
'months' => '*',
'weekdays' => '*' }, 0));
# Destination directory
print &ui_table_row($text{'backup_dir'},
&ui_textbox("dir", $config{'backup_dir'}, 50));
# Worlds to include
my @worlds = &list_worlds();
print &ui_table_row($text{'backup_worlds'},
&ui_radio("worlds_def", $config{'backup_worlds'} ? 0 : 1,
[ [ 1, $text{'backup_worlds1'} ],
[ 0, $text{'backup_worlds0'} ] ])."<br>\n".
&ui_select("worlds", [ split(/\s+/, $config{'backup_worlds'}) ],
[ map { $_->{'name'} } @worlds ], 5, 1, 1));
# Send backup report to
print &ui_table_row($text{'backup_email'},
&ui_opt_textbox("email", $config{'backup_email'}, 40,
$text{'backup_noemail'}, $text{'backup_emailto'})."<br>\n".
&ui_checkbox("email_err", 1, $text{'backup_email_err'},
$config{'backup_email_err'} ? 1 : 0));
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
&ui_print_footer("", $text{'index_return'});

49
minecraft/save_backup.cgi Executable file
View File

@ -0,0 +1,49 @@
#!/usr/local/bin/perl
# Enable or disable scheduled backups
use strict;
use warnings;
require './minecraft-lib.pl';
&foreign_require("webmincron");
our (%in, %text, %config, $module_config_file, $module_name);
&ReadParse();
&error_setup($text{'backup_err'});
my $job = &get_backup_job();
if (!$in{'enabled'}) {
# Delete scheduled job, if any
if ($job) {
&webmincron::delete_webmin_cron($job);
}
&webmin_log("disable", "backup");
}
else {
# Validate inputs
$job ||= { 'module' => $module_name,
'func' => 'backup_worlds' };
&webmincron::parse_times_input($job, \%in);
$in{'dir'} =~ /^\// || &error($text{'backup_edir'});
$config{'backup_dir'} = $in{'dir'};
if ($in{'worlds_def'}) {
$config{'backup_worlds'} = '';
}
else {
$in{'worlds'} || &error($text{'backup_eworlds'});
$config{'backup_worlds'} =
join(' ', split(/\0/, $in{'worlds'}));
}
if ($in{'email_def'}) {
$config{'backup_email'} = '';
}
else {
$in{'email'} =~ /^\S+\@\S+$/ || &error($text{'backup_eemail'});
$config{'backup_email'} = $in{'email'};
$config{'backup_email_err'} = $in{'email_err'};
}
&lock_file($module_config_file);
&save_module_config();
&unlock_file($module_config_file);
&webmincron::save_webmin_cron($job);
&webmin_log("enable", "backup", $in{'backup_dir'});
}
&redirect("");