--- loncom/interface/domainprefs.pm 2014/05/23 08:32:55 1.244 +++ loncom/interface/domainprefs.pm 2014/10/06 00:48:39 1.254 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set domain-wide configuration settings # -# $Id: domainprefs.pm,v 1.244 2014/05/23 08:32:55 raeburn Exp $ +# $Id: domainprefs.pm,v 1.254 2014/10/06 00:48:39 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -762,8 +762,9 @@ sub print_config_box { $output .= &print_login('help',$dom,$confname,$phase,$settings,\$rowtotal); } } elsif ($action eq 'requestcourses') { - $output .= &print_requestmail($dom,$action,$settings,\$rowtotal). - &print_studentcode($settings,\$rowtotal).' + $output .= &print_requestmail($dom,$action,$settings,\$rowtotal); + $rowtotal ++; + $output .= &print_studentcode($settings,\$rowtotal).' @@ -798,6 +799,7 @@ sub print_config_box { &print_validation_rows('requestcourses',$dom,$settings,\$rowtotal); } elsif ($action eq 'requestauthor') { $output .= &print_requestmail($dom,$action,$settings,\$rowtotal); + $rowtotal ++; } elsif ($action eq 'rolecolors') { $output .= &print_rolecolors($phase,'coordinator',$dom,$confname,$settings,\$rowtotal).' @@ -2074,7 +2076,6 @@ sub print_requestmail { $datatable .= &mt('There are no active Domain Coordinators'); } $datatable .=''; - $$rowtotal += $rows; return $datatable; } @@ -2083,9 +2084,11 @@ sub print_studentcode { my $rownum = 0; my ($output,%current); my @crstypes = ('official','unofficial','community','textbook'); - if (ref($settings->{'uniquecode'}) eq 'HASH') { - foreach my $type (@crstypes) { - $current{$type} = $settings->{'uniquecode'}{$type}; + if (ref($settings) eq 'HASH') { + if (ref($settings->{'uniquecode'}) eq 'HASH') { + foreach my $type (@crstypes) { + $current{$type} = $settings->{'uniquecode'}{$type}; + } } } $output .= ''. @@ -2519,13 +2522,15 @@ sub print_autocreate { $createoff{'req'}.' value="0" />'.&mt('No').''; my ($numdc,$dctable,$rows) = &active_dc_picker($dom,$numinrow,'radio', 'autocreate_xmldc',%currhash); + $datatable .= ''; if ($numdc > 1) { - $datatable .= ''. - &mt('Course creation processed as: (choose Dom. Coord.)'). - ''.$dctable.''; + $datatable .= &mt('Course creation processed as: (choose Dom. Coord.)'). + ''; } else { - $datatable .= $dctable.''; + $datatable .= &mt('Course creation processed as:'). + ''; } + $datatable .= $dctable.''; $$rowtotal += $rows; return $datatable; } @@ -3117,21 +3122,24 @@ sub print_validation_rows { } if ($caller eq 'requestcourses') { my %currhash; - if (ref($settings->{'validation'}) eq 'HASH') { - if ($settings->{'validation'}{'dc'} ne '') { - $currhash{$settings->{'validation'}{'dc'}} = 1; + if (ref($settings) eq 'HASH') { + if (ref($settings->{'validation'}) eq 'HASH') { + if ($settings->{'validation'}{'dc'} ne '') { + $currhash{$settings->{'validation'}{'dc'}} = 1; + } } } my $numinrow = 2; my ($numdc,$dctable,$rows) = &active_dc_picker($dom,$numinrow,'radio', 'validationdc',%currhash); + my $css_class = $itemcount%2 ? ' class="LC_odd_row"' : ''; + $datatable .= ''; if ($numdc > 1) { - $datatable .= ''. - &mt('Course creation processed as: (choose Dom. Coord.)'). - ''.$dctable.''; + $datatable .= &mt('Course creation processed as: (choose Dom. Coord.)'); } else { - $datatable .= $dctable.''; + $datatable .= &mt('Course creation processed as: '); } + $datatable .= ''.$dctable.''; $itemcount ++; } if (ref($rowtotal)) { @@ -3653,9 +3661,10 @@ sub print_loadbalancing { $disabled = ' disabled="disabled"'; } $targettable .= - ''; my $rem = $i%($numinrow); if ($rem == 0) { if (($i > 0) && ($i < $numspares-1)) { @@ -3745,7 +3754,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 = ''; } @@ -3797,7 +3806,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') { @@ -3808,7 +3817,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; @@ -3859,8 +3868,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; @@ -3875,6 +3889,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; } @@ -4157,8 +4172,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 .= ''. ''. @@ -5162,14 +5179,14 @@ sub serverstatus_pages { 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";