\n";
print " | $text{'service_name'} | \n";
printf " | \n",
$service->{'values'}->[0];
$int = &find_value("interval", $service->{'members'});
print "$text{'service_interval'} | \n";
print "",&interval_input("interval", $int)," | \n";
$desc = &find("description", $service->{'members'});
print " | $text{'service_desc'} | \n";
printf " | \n",
$desc ? $desc->{'value'} : "";
@mons = &list_monitors();
$monitor = &find("monitor", $service->{'members'}) if (!$in{'new'});
if ($monitor->{'value'} =~ /^(\S+)\s*(.*)$/) {
$mon = $1; $args = $2;
}
$idx = &indexof($mon, @mons);
print " | $text{'service_monitor'} | \n";
printf " %s\n",
$in{'new'} || $idx >= 0 ? "checked" : "", $text{'service_mon1'};
print "\n";
printf " %s\n",
$in{'new'} || $idx >= 0 ? "" : "checked", $text{'service_mon0'};
printf "\n",
$idx >= 0 ? "" : $mon;
print " | \n";
print " | $text{'service_args'} | \n";
print " | \n";
$i = 0;
@avail = &list_alerts();
@periods = &find("period", $service->{'members'});
push(@periods, { }) if ($in{'newperiod'} || $in{'new'});
@defperiods = &find("period", $conf);
foreach $p (@periods) {
print "
| \n";
print " | ",&text($p->{'name'} ?
'service_period' : 'service_new', $i+1)," | \n";
print " ",
"$text{'service_delperiod'} | \n";
print "\n";
local ($dfrom, $dto, $hfrom, $hto, $known, $name);
if ($p->{'value'} =~ /^\s*wd\s+{(\S+)-(\S+)}\s+hr\s+{(\S+)-(\S+)}\s*$/){
$dfrom = $1; $dto = $2; $hfrom = $3; $hto = $4;
$known = 1;
}
elsif ($p->{'value'} =~ /^\s*wd\s+{(\S+)-(\S+)}\s*$/) {
$dfrom = $1; $dto = $2;
$known = 1;
}
elsif ($p->{'value'} =~ /^\s*hr\s+{(\S+)-(\S+)}\s*$/) {
$hfrom = $1; $hto = $2;
$known = 1;
}
elsif ($p->{'value'} =~ /^\s*(\S+):\s*$/) {
$name = $1;
$known = 2;
}
elsif (!$p->{'value'}) {
$hfrom = $hto = "";
$known = 1;
}
# Specified days and hours
printf " | %s | \n",
$known == 1 ? "checked" : "", "$text{'service_known1'}";
print "$text{'service_days'}\n";
printf " %s\n",
$dfrom ? "" : "checked", $text{'service_all'};
printf "\n",
$dfrom ? "checked" : "";
print &day_input("dfrom_$i", $dfrom)," - ",
&day_input("dto_$i", $dto);
print " \n";
print "$text{'service_hours'}\n";
printf " %s\n",
$hfrom ? "" : "checked", $text{'service_all'};
printf "\n",
$hfrom ? "checked" : "";
print " - ",
" | \n";
# Selected defined period
if (@defperiods || $known == 2) {
printf " | %s | \n", $known == 2 ? "checked" : "", "$text{'service_known2'}";
print " | \n";
}
# Any Time::Period string
printf " | %s | \n",
$known == 0 ? "checked" : "", "$text{'service_known0'}";
printf " | \n", $known == 0 ? $p->{'value'} : "";
print " | $text{'service_alerts'} | \n";
print "\n";
print " | $text{'service_alert'} | ",
"$text{'service_atype'} | ",
"$text{'service_aargs'} | \n";
local @alerts = ( &find("alert", $p->{'members'}),
&find("upalert", $p->{'members'}),
&find("startupalert", $p->{'members'}) );
local $j = 0;
foreach $a (@alerts, { }) {
print " | \n";
print " | \n";
$ar =~ s/"/"/g;
print " | \n";
$j++;
}
print " | \n";
local $ev = &find_value("alertevery", $p->{'members'});
print " | $text{'service_every'} | \n";
printf " %s\n",
$ev ? "" : "checked", $text{'service_every_def'};
printf " %s\n",
$ev ? "checked" : "", $text{'service_every_time'};
print &interval_input("every_$i", $ev)," | \n";
local @aa = &find_value("alertafter", $p->{'members'});
print " | $text{'service_after'} | \n";
printf " %s\n",
@aa ? "" : "checked", $text{'service_immediate'};
printf "\n",
@aa ? "checked" : "";
print &text('service_after_num',
""),"\n";
print " " x 3;
print $text{'service_aftertime'},"\n";
print &interval_input("after_interval_$i", $aa[1])," | \n";
local $na = &find_value("numalerts", $p->{'members'});
print " | $text{'service_num'} | \n";
printf " %s\n",
$na ? "" : "checked", $text{'service_unlimited'};
printf "\n",
$na ? "checked" : "";
print " | \n";
$i++;
}
if (!$in{'new'}) {
print "
| \n";
print " | ",
"$text{'service_newperiod'} | \n";
}
print " |