mirror of
https://github.com/webmin/webmin.git
synced 2025-07-23 00:30:33 +00:00
Add missing CGIs
This commit is contained in:
54
minecraft/edit_backup.cgi
Executable file
54
minecraft/edit_backup.cgi
Executable 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
49
minecraft/save_backup.cgi
Executable 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("");
|
Reference in New Issue
Block a user