'.$title.'
'."\n".
- ''."\n";
+ '
'.$space.
+ ''.$title.'
'."\n".
+ ''.$space.
+ ''."\n";
for (my $i=0; $i<@rulenames; $i++) {
my $rule = $rulenames[$i];
my ($checked,$extra);
@@ -3062,17 +3190,20 @@ sub loadbalance_rule_row {
unless ($checked) {
$default = ' selected="selected"';
}
- $extra = ':
'."\n".
- ' '."\n";
- foreach my $lonhost (sort(keys(%{$servers}))) {
- next if ($lonhost eq $currbalancer);
+ $extra =
+ ': '."\n".
+ ' '."\n";
+ foreach my $server (sort(keys(%{$servers}))) {
+ if (ref($currbalancer) eq 'HASH') {
+ next if (exists($currbalancer->{$server}));
+ }
my $selected;
- if ($lonhost eq $current) {
+ if ($server eq $current) {
$selected = ' selected="selected"';
}
- $extra .= ''.$lonhost.' ';
+ $extra .= ''.$server.' ';
}
$extra .= ' ';
}
@@ -3080,9 +3211,9 @@ sub loadbalance_rule_row {
$checked = ' checked="checked"';
}
$output .= ''.
- ' '.$ruletitles{$rulenames[$i]}.
' '.$extra.' '."\n";
}
@@ -3118,6 +3249,7 @@ sub contact_titles {
'helpdeskmail' => 'Helpdesk requests to be e-mailed to',
'lonstatusmail' => 'E-mail from nightly status check (warnings/errors)',
'requestsmail' => 'E-mail from course requests requiring approval',
+ 'updatesmail' => 'E-mail from nightly check of LON-CAPA module integrity/updates',
);
my %short_titles = &Apache::lonlocal::texthash (
adminemail => 'Admin E-mail address',
@@ -4080,7 +4212,7 @@ sub print_serverstatuses {
sub serverstatus_pages {
return ('userstatus','lonstatus','loncron','server-status','codeversions',
- 'clusterstatus','metadata_keywords','metadata_harvest',
+ 'checksums','clusterstatus','metadata_keywords','metadata_harvest',
'takeoffline','takeonline','showenv','toggledebug','ping','domconf');
}
@@ -4535,6 +4667,7 @@ sub modify_login {
%curr_loginvia,%loginhash,@currlangs,@newlangs,$addedfile,%title,@offon);
%title = ( coursecatalog => 'Display course catalog',
adminmail => 'Display administrator E-mail address',
+ helpdesk => 'Display "Contact Helpdesk" link',
newuser => 'Link for visitors to create a user account',
loginheader => 'Log-in box header');
@offon = ('off','on');
@@ -4547,7 +4680,7 @@ sub modify_login {
}
($errors,%colchanges) = &modify_colors($r,$dom,$confname,['login'],
\%domconfig,\%loginhash);
- my @toggles = ('coursecatalog','adminmail','newuser');
+ my @toggles = ('coursecatalog','adminmail','helpdesk','newuser');
foreach my $item (@toggles) {
$loginhash{login}{$item} = $env{'form.'.$item};
}
@@ -4735,9 +4868,10 @@ sub modify_login {
my $putresult = &Apache::lonnet::put_dom('configuration',\%loginhash,
$dom);
if ($putresult eq 'ok') {
- my @toggles = ('coursecatalog','adminmail','newuser');
+ my @toggles = ('coursecatalog','adminmail','helpdesk','newuser');
my %defaultchecked = (
'coursecatalog' => 'on',
+ 'helpdesk' => 'on',
'adminmail' => 'off',
'newuser' => 'off',
);
@@ -5482,7 +5616,7 @@ sub write_metadata {
print $logfile "\nWrite metadata file for ".$targetdir.'/'.$file;
my $mfh;
if (open($mfh,'>'.$targetdir.'/'.$file.'.meta')) {
- foreach (sort keys %metadatafields) {
+ foreach (sort(keys(%metadatafields))) {
unless ($_=~/\./) {
my $unikey=$_;
$unikey=~/^([A-Za-z]+)/;
@@ -5566,7 +5700,7 @@ sub check_switchserver {
my @ids=&Apache::lonnet::current_machine_ids();
foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } }
if (!$allowed) {
- $switchserver=''.&mt('Switch Server').' ';
+ $switchserver=''.&mt('Switch Server').' ';
}
return $switchserver;
}
@@ -5836,6 +5970,10 @@ sub modify_quotas {
$cond = $conditions{$inconf{$type}};
}
$resulttext .= ''.&mt('Set to be available to [_1].',$typetitle).' '.$cond.' ';
+ } elsif ($context eq 'requestauthor') {
+ $resulttext .= ''.&mt('Set to "[_1]" for "[_2]".',
+ $titles{$inconf{$type}},$typetitle);
+
} else {
$resulttext .= ' '.&mt('Set to be available to [_1]',$typetitle).' ';
}
@@ -6209,13 +6347,16 @@ sub modify_autocreate {
foreach my $item (@types) {
if ($changes{$item}) {
my $newtxt = $offon[$newvals{$item}];
- $resulttext .= ''.&mt("$title{$item} set to [_1]$newtxt [_2]",'',' ').' ';
+ $resulttext .= ''.
+ &mt("$title{$item} set to [_1]$newtxt [_2]",
+ '',' ').
+ ' ';
}
}
if ($changes{'xmldc'}) {
my ($dcname,$dcdom) = split(':',$newvals{'xmldc'});
my $newtxt = &Apache::loncommon::plainname($dcname,$dcdom);
- $resulttext .= ''.&mt("$title{'xmldc'} set to [_1]$newtxt [_2]",'',' ').' ';
+ $resulttext .= ''.&mt("$title{'xmldc'} set to [_1]",''.$newtxt.' ').' ';
}
$resulttext .= '';
} else {
@@ -6361,7 +6502,11 @@ sub modify_directorysrch {
} else {
$chgtext =~ s/\; $//;
}
- $resulttext .= ''.&mt("Users from domain '[_1] ' permitted to search the institutional directory set to: [_2]",$dom,$chgtext).' ';
+ $resulttext .=
+ ''.
+ &mt("Users from domain '[_1]' permitted to search the institutional directory set to: [_2]",
+ ''.$dom.' ',$chgtext).
+ ' ';
}
}
}
@@ -6389,7 +6534,7 @@ sub modify_directorysrch {
}
}
$chgtext =~ s/\; $//;
- $resulttext .= ''.&mt("$title{'searchtypes'} set to: \"[_1]\"",$chgtext).' ';
+ $resulttext .= ''.&mt($title{'searchtypes'}.' set to: "[_1]"',$chgtext).' ';
}
$resulttext .= '';
} else {
@@ -6413,7 +6558,7 @@ sub modify_contacts {
my (%others,%to,%bcc);
my @contacts = ('supportemail','adminemail');
my @mailings = ('errormail','packagesmail','helpdeskmail','lonstatusmail',
- 'requestsmail');
+ 'requestsmail','updatesmail');
foreach my $type (@mailings) {
@{$newsetting{$type}} =
&Apache::loncommon::get_env_multiple('form.'.$type);
@@ -6469,6 +6614,7 @@ sub modify_contacts {
$default{'helpdeskmail'} = 'supportemail';
$default{'lonstatusmail'} = 'adminemail';
$default{'requestsmail'} = 'adminemail';
+ $default{'updatesmail'} = 'adminemail';
foreach my $item (@contacts) {
if ($to{$item} ne $default{$item}) {
$changes{$item} = 1;
@@ -6975,10 +7121,12 @@ sub process_captcha {
if (ref($current->{'recaptchakeys'}) eq 'HASH') {
$currpub = $current->{'recaptchakeys'}{'public'};
$currpriv = $current->{'recaptchakeys'}{'private'};
- $newsettings->{'recaptchakeys'} = {
- public => '',
- private => '',
- }
+ unless ($newsettings->{'captcha'} eq 'recaptcha') {
+ $newsettings->{'recaptchakeys'} = {
+ public => '',
+ private => '',
+ }
+ }
}
if (($newpub ne $currpub) || ($newpriv ne $currpriv)) {
if ($container eq 'cancreate') {
@@ -8064,186 +8212,192 @@ sub modify_loadbalancing {
my @sparestypes = ('primary','default');
my %typetitles = &sparestype_titles();
my $resulttext;
- if (keys(%servers) > 1) {
- my ($currbalancer,$currtargets,$currrules);
- if (ref($domconfig{'loadbalancing'}) eq 'HASH') {
- $currbalancer = $domconfig{'loadbalancing'}{'lonhost'};
- $currtargets = $domconfig{'loadbalancing'}{'targets'};
- $currrules = $domconfig{'loadbalancing'}{'rules'};
- } else {
- ($currbalancer,$currtargets) =
- &Apache::lonnet::get_lonbalancer_config(\%servers);
- }
- my ($saveloadbalancing,%defaultshash,%changes);
- my ($alltypes,$othertypes,$titles) =
- &loadbalancing_titles($dom,$intdom,$usertypes,$types);
- my %ruletitles = &offloadtype_text();
- my $balancer = $env{'form.loadbalancing_lonhost'};
- if (!$servers{$balancer}) {
- undef($balancer);
- }
- if ($currbalancer ne $balancer) {
- $changes{'lonhost'} = 1;
- }
- $defaultshash{'loadbalancing'}{'lonhost'} = $balancer;
- if ($balancer ne '') {
- unless (ref($domconfig{'loadbalancing'}) eq 'HASH') {
- $saveloadbalancing = 1;
+ my (%currbalancer,%currtargets,%currrules,%existing);
+ if (ref($domconfig{'loadbalancing'}) eq 'HASH') {
+ %existing = %{$domconfig{'loadbalancing'}};
+ }
+ &get_loadbalancers_config(\%servers,\%existing,\%currbalancer,
+ \%currtargets,\%currrules);
+ my ($saveloadbalancing,%defaultshash,%changes);
+ my ($alltypes,$othertypes,$titles) =
+ &loadbalancing_titles($dom,$intdom,$usertypes,$types);
+ my %ruletitles = &offloadtype_text();
+ my @deletions = &Apache::loncommon::get_env_multiple('form.loadbalancing_delete');
+ for (my $i=0; $i<$env{'form.loadbalancing_total'}; $i++) {
+ my $balancer = $env{'form.loadbalancing_lonhost_'.$i};
+ if ($balancer eq '') {
+ next;
+ }
+ if (!exists($servers{$balancer})) {
+ if (exists($currbalancer{$balancer})) {
+ push(@{$changes{'delete'}},$balancer);
}
- foreach my $sparetype (@sparestypes) {
- my @targets = &Apache::loncommon::get_env_multiple('form.loadbalancing_target_'.$sparetype);
- my @offloadto;
- foreach my $target (@targets) {
- if (($servers{$target}) && ($target ne $balancer)) {
- if ($sparetype eq 'default') {
- if (ref($defaultshash{'loadbalancing'}{'targets'}{'primary'}) eq 'ARRAY') {
- next if (grep(/^\Q$target\E$/,@{$defaultshash{'loadbalancing'}{'targets'}{'primary'}}));
- }
- }
- unless(grep(/^\Q$target\E$/,@offloadto)) {
- push(@offloadto,$target);
+ next;
+ }
+ if ((@deletions > 0) && (grep(/^\Q$i\E$/,@deletions))) {
+ push(@{$changes{'delete'}},$balancer);
+ next;
+ }
+ if (!exists($currbalancer{$balancer})) {
+ push(@{$changes{'add'}},$balancer);
+ }
+ $defaultshash{'loadbalancing'}{$balancer}{'targets'}{'primary'} = [];
+ $defaultshash{'loadbalancing'}{$balancer}{'targets'}{'default'} = [];
+ $defaultshash{'loadbalancing'}{$balancer}{'rules'} = {};
+ unless (ref($domconfig{'loadbalancing'}) eq 'HASH') {
+ $saveloadbalancing = 1;
+ }
+ foreach my $sparetype (@sparestypes) {
+ my @targets = &Apache::loncommon::get_env_multiple('form.loadbalancing_target_'.$i.'_'.$sparetype);
+ my @offloadto;
+ foreach my $target (@targets) {
+ if (($servers{$target}) && ($target ne $balancer)) {
+ if ($sparetype eq 'default') {
+ if (ref($defaultshash{'loadbalancing'}{$balancer}{'targets'}{'primary'}) eq 'ARRAY') {
+ next if (grep(/^\Q$target\E$/,@{$defaultshash{'loadbalancing'}{$balancer}{'targets'}{'primary'}}));
}
}
- $defaultshash{'loadbalancing'}{'targets'}{$sparetype} = \@offloadto;
+ unless(grep(/^\Q$target\E$/,@offloadto)) {
+ push(@offloadto,$target);
+ }
}
- }
- } else {
- foreach my $sparetype (@sparestypes) {
- $defaultshash{'loadbalancing'}{'targets'}{$sparetype} = [];
+ $defaultshash{'loadbalancing'}{$balancer}{'targets'}{$sparetype} = \@offloadto;
}
}
- if (ref($currtargets) eq 'HASH') {
+ if (ref($currtargets{$balancer}) eq 'HASH') {
foreach my $sparetype (@sparestypes) {
- if (ref($currtargets->{$sparetype}) eq 'ARRAY') {
- my @targetdiffs = &Apache::loncommon::compare_arrays($currtargets->{$sparetype},$defaultshash{'loadbalancing'}{'targets'}{$sparetype});
+ if (ref($currtargets{$balancer}{$sparetype}) eq 'ARRAY') {
+ my @targetdiffs = &Apache::loncommon::compare_arrays($currtargets{$balancer}{$sparetype},$defaultshash{'loadbalancing'}{$balancer}{'targets'}{$sparetype});
if (@targetdiffs > 0) {
- $changes{'targets'} = 1;
+ $changes{'curr'}{$balancer}{'targets'} = 1;
}
- } elsif (ref($defaultshash{'loadbalancing'}{'targets'}{$sparetype}) eq 'ARRAY') {
- if (@{$defaultshash{'loadbalancing'}{'targets'}{$sparetype}} > 0) {
- $changes{'targets'} = 1;
+ } elsif (ref($defaultshash{'loadbalancing'}{$balancer}{'targets'}{$sparetype}) eq 'ARRAY') {
+ if (@{$defaultshash{'loadbalancing'}{$balancer}{'targets'}{$sparetype}} > 0) {
+ $changes{'curr'}{$balancer}{'targets'} = 1;
}
}
}
} else {
- foreach my $sparetype (@sparestypes) {
- if (ref($defaultshash{'loadbalancing'}{'targets'}{$sparetype}) eq 'ARRAY') {
- if (@{$defaultshash{'loadbalancing'}{'targets'}{$sparetype}} > 0) {
- $changes{'targets'} = 1;
+ if (ref($defaultshash{'loadbalancing'}{$balancer}) eq 'HASH') {
+ foreach my $sparetype (@sparestypes) {
+ if (ref($defaultshash{'loadbalancing'}{$balancer}{'targets'}{$sparetype}) eq 'ARRAY') {
+ if (@{$defaultshash{'loadbalancing'}{$balancer}{'targets'}{$sparetype}} > 0) {
+ $changes{'curr'}{$balancer}{'targets'} = 1;
+ }
}
}
}
}
my $ishomedom;
- if ($balancer ne '') {
- if (&Apache::lonnet::host_domain($balancer) eq $dom) {
- $ishomedom = 1;
- }
+ if (&Apache::lonnet::host_domain($balancer) eq $dom) {
+ $ishomedom = 1;
}
if (ref($alltypes) eq 'ARRAY') {
foreach my $type (@{$alltypes}) {
my $rule;
- if ($balancer ne '') {
- unless ((($type eq '_LC_external') || ($type eq '_LC_internetdom')) &&
+ unless ((($type eq '_LC_external') || ($type eq '_LC_internetdom')) &&
(!$ishomedom)) {
- $rule = $env{'form.loadbalancing_rules_'.$type};
- }
- if ($rule eq 'specific') {
- $rule = $env{'form.loadbalancing_singleserver_'.$type};
- }
+ $rule = $env{'form.loadbalancing_rules_'.$i.'_'.$type};
+ }
+ if ($rule eq 'specific') {
+ $rule = $env{'form.loadbalancing_singleserver_'.$i.'_'.$type};
}
- $defaultshash{'loadbalancing'}{'rules'}{$type} = $rule;
- if (ref($currrules) eq 'HASH') {
- if ($rule ne $currrules->{$type}) {
- $changes{'rules'}{$type} = 1;
+ $defaultshash{'loadbalancing'}{$balancer}{'rules'}{$type} = $rule;
+ if (ref($currrules{$balancer}) eq 'HASH') {
+ if ($rule ne $currrules{$balancer}{$type}) {
+ $changes{'curr'}{$balancer}{'rules'}{$type} = 1;
}
} elsif ($rule ne '') {
- $changes{'rules'}{$type} = 1;
+ $changes{'curr'}{$balancer}{'rules'}{$type} = 1;
}
}
}
- my $nochgmsg = &mt('No changes made to Load Balancer settings.');
- if ((keys(%changes) > 0) || ($saveloadbalancing)) {
- my $putresult = &Apache::lonnet::put_dom('configuration',
- \%defaultshash,$dom);
- if ($putresult eq 'ok') {
- if (keys(%changes) > 0) {
- if ($changes{'lonhost'}) {
- if ($currbalancer ne '') {
- &Apache::lonnet::remote_devalidate_cache($currbalancer,'loadbalancing',$dom);
- }
- if ($balancer eq '') {
- $resulttext .= ''.&mt('Load Balancing with dedicated server discontinued').' ';
- } else {
- &Apache::lonnet::remote_devalidate_cache($balancer,'loadbalancing',$dom);
- $resulttext .= ''.&mt('Dedicated Load Balancer server set to [_1]',$balancer);
- }
- } else {
+ }
+ my $nochgmsg = &mt('No changes made to Load Balancer settings.');
+ if ((keys(%changes) > 0) || ($saveloadbalancing)) {
+ unless (ref($defaultshash{'loadbalancing'}) eq 'HASH') {
+ $defaultshash{'loadbalancing'} = {};
+ }
+ my $putresult = &Apache::lonnet::put_dom('configuration',
+ \%defaultshash,$dom);
+
+ if ($putresult eq 'ok') {
+ if (keys(%changes) > 0) {
+ if (ref($changes{'delete'}) eq 'ARRAY') {
+ foreach my $balancer (sort(@{$changes{'delete'}})) {
+ $resulttext .= ' '.&mt('Load Balancing discontinued for: [_1]',$balancer).' ';
&Apache::lonnet::remote_devalidate_cache($balancer,'loadbalancing',$dom);
}
- if (($changes{'targets'}) && ($balancer ne '')) {
- my %offloadstr;
- foreach my $sparetype (@sparestypes) {
- if (ref($defaultshash{'loadbalancing'}{'targets'}{$sparetype}) eq 'ARRAY') {
- if (@{$defaultshash{'loadbalancing'}{'targets'}{$sparetype}} > 0) {
- $offloadstr{$sparetype} = join(', ',@{$defaultshash{'loadbalancing'}{'targets'}{$sparetype}});
+ }
+ if (ref($changes{'add'}) eq 'ARRAY') {
+ foreach my $balancer (sort(@{$changes{'add'}})) {
+ $resulttext .= ''.&mt('Load Balancing enabled for: [_1]',$balancer);
+ }
+ }
+ if (ref($changes{'curr'}) eq 'HASH') {
+ foreach my $balancer (sort(keys(%{$changes{'curr'}}))) {
+ if (ref($changes{'curr'}{$balancer}) eq 'HASH') {
+ if ($changes{'curr'}{$balancer}{'targets'}) {
+ my %offloadstr;
+ foreach my $sparetype (@sparestypes) {
+ if (ref($defaultshash{'loadbalancing'}{$balancer}{'targets'}{$sparetype}) eq 'ARRAY') {
+ if (@{$defaultshash{'loadbalancing'}{$balancer}{'targets'}{$sparetype}} > 0) {
+ $offloadstr{$sparetype} = join(', ',@{$defaultshash{'loadbalancing'}{$balancer}{'targets'}{$sparetype}});
+ }
+ }
}
- }
- }
- if (keys(%offloadstr) == 0) {
- $resulttext .= ' '.&mt("Servers to which Load Balance server offloads set to 'None', by default").' ';
- } else {
- my $showoffload;
- foreach my $sparetype (@sparestypes) {
- $showoffload .= ''.$typetitles{$sparetype}.' : ';
- if (defined($offloadstr{$sparetype})) {
- $showoffload .= $offloadstr{$sparetype};
+ if (keys(%offloadstr) == 0) {
+ $resulttext .= ''.&mt("Servers to which Load Balance server offloads set to 'None', by default").' ';
} else {
- $showoffload .= &mt('None');
+ my $showoffload;
+ foreach my $sparetype (@sparestypes) {
+ $showoffload .= ''.$typetitles{$sparetype}.' : ';
+ if (defined($offloadstr{$sparetype})) {
+ $showoffload .= $offloadstr{$sparetype};
+ } else {
+ $showoffload .= &mt('None');
+ }
+ $showoffload .= (' 'x3);
+ }
+ $resulttext .= ''.&mt('By default, Load Balancer: [_1] set to offload to - [_2]',$balancer,$showoffload).' ';
}
- $showoffload .= (' 'x3);
}
- $resulttext .= ''.&mt('By default, Load Balancer server set to offload to: [_1]',$showoffload).' ';
}
- }
- if ((ref($changes{'rules'}) eq 'HASH') && ($balancer ne '')) {
- if ((ref($alltypes) eq 'ARRAY') && (ref($titles) eq 'HASH')) {
- foreach my $type (@{$alltypes}) {
- if ($changes{'rules'}{$type}) {
- my $rule = $defaultshash{'loadbalancing'}{'rules'}{$type};
- my $balancetext;
- if ($rule eq '') {
- $balancetext = $ruletitles{'default'};
- } elsif (($rule eq 'homeserver') || ($rule eq 'externalbalancer')) {
- $balancetext = $ruletitles{$rule};
- } else {
- $balancetext = &mt('offload to [_1]',$defaultshash{'loadbalancing'}{'rules'}{$type});
+ if (ref($changes{'curr'}{$balancer}{'rules'}) eq 'HASH') {
+ if ((ref($alltypes) eq 'ARRAY') && (ref($titles) eq 'HASH')) {
+ foreach my $type (@{$alltypes}) {
+ if ($changes{'curr'}{$balancer}{'rules'}{$type}) {
+ my $rule = $defaultshash{'loadbalancing'}{$balancer}{'rules'}{$type};
+ my $balancetext;
+ if ($rule eq '') {
+ $balancetext = $ruletitles{'default'};
+ } elsif (($rule eq 'homeserver') || ($rule eq 'externalbalancer')) {
+ $balancetext = $ruletitles{$rule};
+ } else {
+ $balancetext = &mt('offload to [_1]',$defaultshash{'loadbalancing'}{$balancer}{'rules'}{$type});
+ }
+ $resulttext .= ''.&mt('Load Balancer: [_1] -- balancing for [_2] set to - "[_3]"',$balancer,$titles->{$type},$balancetext).' ';
}
- $resulttext .= ''.&mt('Load Balancing for [_1] set to: [_2]',$titles->{$type},$balancetext).' ';
}
}
}
+ &Apache::lonnet::remote_devalidate_cache($balancer,'loadbalancing',$dom);
}
- if ($resulttext ne '') {
- $resulttext = &mt('Changes made:').'';
- } else {
- $resulttext = $nochgmsg;
- }
+ }
+ if ($resulttext ne '') {
+ $resulttext = &mt('Changes made:').'';
} else {
$resulttext = $nochgmsg;
- if ($balancer ne '') {
- &Apache::lonnet::remote_devalidate_cache($balancer,'loadbalancing',$dom);
- }
}
} else {
- $resulttext = ''.
- &mt('An error occurred: [_1]',$putresult).' ';
+ $resulttext = $nochgmsg;
}
} else {
- $resulttext = $nochgmsg;
+ $resulttext = ''.
+ &mt('An error occurred: [_1]',$putresult).' ';
}
} else {
- $resulttext = &mt('Load Balancing unavailable as this domain only has one server.');
+ $resulttext = $nochgmsg;
}
return $resulttext;
}
@@ -8348,6 +8502,7 @@ sub active_dc_picker {
' '.
&Apache::loncommon::plainname($dcname,$dcdom).
+ ' ('.$dcname.':'.$dcdom.')'.
' ';
}
$datatable .= '';
@@ -8399,7 +8554,7 @@ sub count_servers {
}
sub lonbalance_targets_js {
- my ($dom,$types,$servers) = @_;
+ my ($dom,$types,$servers,$settings) = @_;
my $select = &mt('Select');
my ($alltargets,$allishome,$allinsttypes,@alltypes);
if (ref($servers) eq 'HASH') {
@@ -8421,39 +8576,71 @@ sub lonbalance_targets_js {
}
push(@alltypes,'default','_LC_adv','_LC_author','_LC_internetdom','_LC_external');
$allinsttypes = join("','",@alltypes);
+ my (%currbalancer,%currtargets,%currrules,%existing);
+ if (ref($settings) eq 'HASH') {
+ %existing = %{$settings};
+ }
+ &get_loadbalancers_config($servers,\%existing,\%currbalancer,
+ \%currtargets,\%currrules);
+ my $balancers = join("','",sort(keys(%currbalancer)));
return <<"END";