diff --git a/status/delete_mons.cgi b/status/delete_mons.cgi
index 652e154e0..9a175363d 100755
--- a/status/delete_mons.cgi
+++ b/status/delete_mons.cgi
@@ -4,22 +4,40 @@
require './status-lib.pl';
&ReadParse();
$in{'d'} || &error($text{'deletes_enone'});
+
+# Get the monitors
@d = split(/\0/, $in{'d'});
+foreach $d (@d) {
+ $serv = &get_service($d);
+ $serv || &error($text{'deletes_egone'});
+ push(@dels, $serv);
+ }
if ($in{'delete'}) {
# Deleting
$access{'edit'} || &error($text{'mon_ecannot'});
- foreach $d (@d) {
- $serv = &get_service($d);
- $serv || &error($text{'deletes_egone'});
- push(@dels, $serv);
- }
foreach $serv (@dels) {
&delete_service($serv);
}
&webmin_log("deletes", undef, scalar(@dels));
&redirect("");
}
+elsif ($in{'disable'} || $in{'enable'}) {
+ # Disabling or enabling scheduled check
+ $access{'edit'} || &error($text{'mon_ecannot'});
+ foreach $serv (@dels) {
+ if ($in{'disable'} && $serv->{'nosched'} != 1) {
+ $serv->{'old_nosched'} = $serv->{'nosched'};
+ $serv->{'nosched'} = 1;
+ }
+ elsif ($in{'enable'} && $serv->{'nosched'} == 1) {
+ $serv->{'nosched'} = $serv->{'old_nosched'} || 0;
+ }
+ &save_service($serv);
+ }
+ &webmin_log($in{'enable'} ? 'enables' : 'disables', undef, scalar(@dels));
+ &redirect("");
+ }
else {
# Refreshing
&ui_print_unbuffered_header(undef, $text{'refresh_title'}, "");
diff --git a/status/edit_sched.cgi b/status/edit_sched.cgi
index de875cb96..3077be90a 100755
--- a/status/edit_sched.cgi
+++ b/status/edit_sched.cgi
@@ -50,7 +50,8 @@ print &ui_table_row($text{'sched_warn'},
[ [ 1, $text{'sched_warn1'} ],
[ 0, $text{'sched_warn0'} ],
[ 3, $text{'sched_warn3'} ],
- [ 2, $text{'sched_warn2'} ] ]), 3);
+ [ 2, $text{'sched_warn2'} ],
+ [ 4, $text{'sched_warn4'} ] ]), 3);
# Send email to
my $e = $config{'sched_email'};
diff --git a/status/index.cgi b/status/index.cgi
index d56fc8b59..6075f4d72 100755
--- a/status/index.cgi
+++ b/status/index.cgi
@@ -67,8 +67,13 @@ if (@serv) {
}
print &ui_links_row(\@links);
if ($access{'edit'}) {
- print &ui_form_end([ [ "delete", $text{'index_delete'} ],
- [ "refresh", $text{'index_refsel'} ] ]);
+ my @buts = ( [ "delete", $text{'index_delete'} ],
+ [ "refresh", $text{'index_refsel'} ] );
+ if (!$config{'index_status'}) {
+ push(@buts, [ "disable", $text{'index_disable'} ],
+ [ "enable", $text{'index_enable'} ]);
+ }
+ print &ui_form_end(\@buts);
}
}
else {
diff --git a/status/lang/en b/status/lang/en
index 354504d96..f47451c95 100644
--- a/status/lang/en
+++ b/status/lang/en
@@ -16,6 +16,8 @@ index_refresh=Refresh Status
index_refreshdesc=Perform an immediate refresh of all monitor statuses, instead of waiting for the next scheduled update.
index_delete=Delete Selected
index_refsel=Refresh Selected
+index_disable=Disable Selected
+index_enable=Enable Selected
index_group=Members of $1
index_tmpls=Edit Email Templates
index_tmplsdesc=View and edit templates used to construct email messages sent when monitored services go down.
@@ -328,6 +330,8 @@ log_modify=Modified monitor $1
log_delete=Deleted monitor $1
log_sched=Changed scheduled monitoring
log_deletes=Deleted $1 monitors
+log_disables=Disabled $1 monitors
+log_enables=Enabled $1 monitors
log_tmpl_create=Created email template $1
log_tmpl_modify=Modified email template $1
log_tmpl_delete=Deleted email template $1
diff --git a/status/log_parser.pl b/status/log_parser.pl
index b2e9cbe74..de01b5bfe 100755
--- a/status/log_parser.pl
+++ b/status/log_parser.pl
@@ -15,8 +15,8 @@ elsif ($type eq "template") {
return &text("log_tmpl_${action}",
"".&html_escape($p->{'desc'})."");
}
-elsif ($action eq "deletes") {
- return &text("log_deletes", $object);
+elsif ($action eq "deletes" || $action eq "disables" || $action eq "enables") {
+ return &text("log_".$action, $object);
}
else {
return &text("log_${action}", "".&html_escape($p->{'desc'})."");