';
$itemcount ++;
}
if (ref($rowtotal)) {
@@ -3136,7 +3279,13 @@ sub print_usersessions {
if ($position eq 'top') {
if (keys(%serverhomes) > 1) {
my %spareid = ¤t_offloads_to($dom,$settings,\%servers);
- $datatable .= &spares_row($dom,\%servers,\%spareid,\%serverhomes,\%altids,$rowtotal);
+ my $curroffloadnow;
+ if (ref($settings) eq 'HASH') {
+ if (ref($settings->{'offloadnow'}) eq 'HASH') {
+ $curroffloadnow = $settings->{'offloadnow'};
+ }
+ }
+ $datatable .= &spares_row($dom,\%servers,\%spareid,\%serverhomes,\%altids,$curroffloadnow,$rowtotal);
} else {
$datatable .= '
'.
&mt('Nothing to set here, as the cluster to which this domain belongs only contains one server.');
@@ -3386,7 +3535,7 @@ sub current_offloads_to {
}
sub spares_row {
- my ($dom,$servers,$spareid,$serverhomes,$altids,$rowtotal) = @_;
+ my ($dom,$servers,$spareid,$serverhomes,$altids,$curroffloadnow,$rowtotal) = @_;
my $css_class;
my $numinrow = 4;
my $itemcount = 1;
@@ -3406,12 +3555,21 @@ sub spares_row {
}
}
next unless (ref($spareid->{$server}) eq 'HASH');
+ my $checkednow;
+ if (ref($curroffloadnow) eq 'HASH') {
+ if ($curroffloadnow->{$server}) {
+ $checkednow = ' checked="checked"';
+ }
+ }
$css_class = $itemcount%2 ? ' class="LC_odd_row"' : '';
$datatable .= '
'.
&mt('[_1] when busy, offloads to:'
- ,''.$server.'').
+ ,''.$server.'').' '.
+ ''."\n".
+ ''.
"\n";
my (%current,%canselect);
my @choices =
@@ -3635,9 +3793,10 @@ sub print_loadbalancing {
$disabled = ' disabled="disabled"';
}
$targettable .=
- '
';
+ '';
my $rem = $i%($numinrow);
if ($rem == 0) {
if (($i > 0) && ($i < $numspares-1)) {
@@ -3727,7 +3886,7 @@ sub loadbalancing_rules {
if (ref($currrules) eq 'HASH') {
$current = $currrules->{$type};
}
- if (($type eq '_LC_external') || ($type eq '_LC_internetdom') || ($type eq '_LC_ipchange')) {
+ if (($type eq '_LC_external') || ($type eq '_LC_internetdom')) {
if ($dom ne &Apache::lonnet::host_domain($lonhost)) {
$current = '';
}
@@ -3779,7 +3938,7 @@ sub loadbalance_rule_row {
my @rulenames;
my %ruletitles = &offloadtype_text();
if (($type eq '_LC_ipchangesso') || ($type eq '_LC_ipchange')) {
- @rulenames = ('balancer','offloadedto');
+ @rulenames = ('balancer','offloadedto','specific');
} else {
@rulenames = ('default','homeserver');
if ($type eq '_LC_external') {
@@ -3790,7 +3949,7 @@ sub loadbalance_rule_row {
push(@rulenames,'none');
}
my $style = $targets_div_style;
- if (($type eq '_LC_external') || ($type eq '_LC_internetdom') || ($type eq '_LC_ipchange')) {
+ if (($type eq '_LC_external') || ($type eq '_LC_internetdom')) {
$style = $homedom_div_style;
}
my $space;
@@ -3841,8 +4000,13 @@ sub loadbalance_rule_row {
' '.$ruletitles{$rulenames[$i]}.
- ''.$extra.' '."\n";
+ ')"'.$checked.' /> ';
+ if (($rulenames[$i] eq 'specific') && ($type =~ /^_LC_ipchange/)) {
+ $output .= $ruletitles{'particular'};
+ } else {
+ $output .= $ruletitles{$rulenames[$i]};
+ }
+ $output .= ''.$extra.' '."\n";
}
$output .= '
'."\n";
return $output;
@@ -3857,6 +4021,7 @@ sub offloadtype_text {
'none' => 'No offload',
'balancer' => 'Session hosted on Load Balancer, after re-authentication',
'offloadedto' => 'Session hosted on offload server, after re-authentication',
+ 'particular' => 'Session hosted (after re-auth) on server:',
);
return %ruletitles;
}
@@ -4139,8 +4304,10 @@ sub print_selfcreation {
$datatable .= '
';
}
my $currval;
- if (ref($createsettings->{'shibenv'}) eq 'HASH') {
- $currval = $createsettings->{'shibenv'}{$fields[$i]};
+ if (ref($createsettings) eq 'HASH') {
+ if (ref($createsettings->{'shibenv'}) eq 'HASH') {
+ $currval = $createsettings->{'shibenv'}{$fields[$i]};
+ }
}
$datatable .= '
'.
''.
@@ -5139,19 +5306,19 @@ sub serverstatus_pages {
return ('userstatus','lonstatus','loncron','server-status','codeversions',
'checksums','clusterstatus','metadata_keywords','metadata_harvest',
'takeoffline','takeonline','showenv','toggledebug','ping','domconf',
- 'uniquecodes','diskusage');
+ 'uniquecodes','diskusage','coursecatalog');
}
sub defaults_javascript {
my ($settings) = @_;
- my ($output,$jstext);
+ return unless (ref($settings) eq 'HASH');
if ((ref($settings->{'inststatusorder'}) eq 'ARRAY') && (ref($settings->{'inststatustypes'}) eq 'HASH')) {
my $maxnum = scalar(@{$settings->{'inststatusorder'}});
if ($maxnum eq '') {
$maxnum = 0;
}
$maxnum ++;
- $jstext = ' var inststatuses = Array('."'".join("','",@{$settings->{'inststatusorder'}})."'".');';
+ my $jstext = ' var inststatuses = Array('."'".join("','",@{$settings->{'inststatusorder'}})."'".');';
return <<"ENDSCRIPT";