version 1.245, 2014/05/30 00:11:06
|
version 1.252, 2014/10/04 02:41:44
|
Line 762 sub print_config_box {
|
Line 762 sub print_config_box {
|
$output .= &print_login('help',$dom,$confname,$phase,$settings,\$rowtotal); |
$output .= &print_login('help',$dom,$confname,$phase,$settings,\$rowtotal); |
} |
} |
} elsif ($action eq 'requestcourses') { |
} elsif ($action eq 'requestcourses') { |
$output .= &print_requestmail($dom,$action,$settings,\$rowtotal). |
$output .= &print_requestmail($dom,$action,$settings,\$rowtotal); |
&print_studentcode($settings,\$rowtotal).' |
$rowtotal ++; |
|
$output .= &print_studentcode($settings,\$rowtotal).' |
</table> |
</table> |
</td> |
</td> |
</tr> |
</tr> |
Line 798 sub print_config_box {
|
Line 799 sub print_config_box {
|
&print_validation_rows('requestcourses',$dom,$settings,\$rowtotal); |
&print_validation_rows('requestcourses',$dom,$settings,\$rowtotal); |
} elsif ($action eq 'requestauthor') { |
} elsif ($action eq 'requestauthor') { |
$output .= &print_requestmail($dom,$action,$settings,\$rowtotal); |
$output .= &print_requestmail($dom,$action,$settings,\$rowtotal); |
|
$rowtotal ++; |
} elsif ($action eq 'rolecolors') { |
} elsif ($action eq 'rolecolors') { |
$output .= &print_rolecolors($phase,'coordinator',$dom,$confname,$settings,\$rowtotal).' |
$output .= &print_rolecolors($phase,'coordinator',$dom,$confname,$settings,\$rowtotal).' |
</table> |
</table> |
Line 2074 sub print_requestmail {
|
Line 2076 sub print_requestmail {
|
$datatable .= &mt('There are no active Domain Coordinators'); |
$datatable .= &mt('There are no active Domain Coordinators'); |
} |
} |
$datatable .='</td></tr>'; |
$datatable .='</td></tr>'; |
$$rowtotal += $rows; |
|
return $datatable; |
return $datatable; |
} |
} |
|
|
Line 2083 sub print_studentcode {
|
Line 2084 sub print_studentcode {
|
my $rownum = 0; |
my $rownum = 0; |
my ($output,%current); |
my ($output,%current); |
my @crstypes = ('official','unofficial','community','textbook'); |
my @crstypes = ('official','unofficial','community','textbook'); |
if (ref($settings->{'uniquecode'}) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
foreach my $type (@crstypes) { |
if (ref($settings->{'uniquecode'}) eq 'HASH') { |
$current{$type} = $settings->{'uniquecode'}{$type}; |
foreach my $type (@crstypes) { |
|
$current{$type} = $settings->{'uniquecode'}{$type}; |
|
} |
} |
} |
} |
} |
$output .= '<tr>'. |
$output .= '<tr>'. |
Line 2519 sub print_autocreate {
|
Line 2522 sub print_autocreate {
|
$createoff{'req'}.' value="0" />'.&mt('No').'</label></span>'; |
$createoff{'req'}.' value="0" />'.&mt('No').'</label></span>'; |
my ($numdc,$dctable,$rows) = &active_dc_picker($dom,$numinrow,'radio', |
my ($numdc,$dctable,$rows) = &active_dc_picker($dom,$numinrow,'radio', |
'autocreate_xmldc',%currhash); |
'autocreate_xmldc',%currhash); |
|
$datatable .= '</td></tr><tr class="LC_odd_row"><td>'; |
if ($numdc > 1) { |
if ($numdc > 1) { |
$datatable .= '</td></tr><tr class="LC_odd_row"><td>'. |
$datatable .= &mt('Course creation processed as: (choose Dom. Coord.)'). |
&mt('Course creation processed as: (choose Dom. Coord.)'). |
'</td><td class="LC_left_item">'; |
'</td><td class="LC_left_item">'.$dctable.'</td></tr>'; |
|
} else { |
} else { |
$datatable .= $dctable.'</td></tr>'; |
$datatable .= &mt('Course creation processed as:'). |
|
'</td><td class="LC_right_item">'; |
} |
} |
|
$datatable .= $dctable.'</td></tr>'; |
$$rowtotal += $rows; |
$$rowtotal += $rows; |
return $datatable; |
return $datatable; |
} |
} |
Line 3117 sub print_validation_rows {
|
Line 3122 sub print_validation_rows {
|
} |
} |
if ($caller eq 'requestcourses') { |
if ($caller eq 'requestcourses') { |
my %currhash; |
my %currhash; |
if (ref($settings->{'validation'}) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
if ($settings->{'validation'}{'dc'} ne '') { |
if (ref($settings->{'validation'}) eq 'HASH') { |
$currhash{$settings->{'validation'}{'dc'}} = 1; |
if ($settings->{'validation'}{'dc'} ne '') { |
|
$currhash{$settings->{'validation'}{'dc'}} = 1; |
|
} |
} |
} |
} |
} |
my $numinrow = 2; |
my $numinrow = 2; |
my ($numdc,$dctable,$rows) = &active_dc_picker($dom,$numinrow,'radio', |
my ($numdc,$dctable,$rows) = &active_dc_picker($dom,$numinrow,'radio', |
'validationdc',%currhash); |
'validationdc',%currhash); |
|
my $css_class = $itemcount%2 ? ' class="LC_odd_row"' : ''; |
|
$datatable .= '</td></tr><tr'.$css_class.'><td>'; |
if ($numdc > 1) { |
if ($numdc > 1) { |
$datatable .= '</td></tr><tr class="LC_odd_row"><td>'. |
$datatable .= &mt('Course creation processed as: (choose Dom. Coord.)'); |
&mt('Course creation processed as: (choose Dom. Coord.)'). |
|
'</td><td class="LC_left_item">'.$dctable.'</td></tr>'; |
|
} else { |
} else { |
$datatable .= $dctable.'</td></tr>'; |
$datatable .= &mt('Course creation processed as: '); |
} |
} |
|
$datatable .= '</td><td class="LC_left_item">'.$dctable.'</td></tr>'; |
$itemcount ++; |
$itemcount ++; |
} |
} |
if (ref($rowtotal)) { |
if (ref($rowtotal)) { |
Line 4157 sub print_selfcreation {
|
Line 4165 sub print_selfcreation {
|
$datatable .= '<tr>'; |
$datatable .= '<tr>'; |
} |
} |
my $currval; |
my $currval; |
if (ref($createsettings->{'shibenv'}) eq 'HASH') { |
if (ref($createsettings) eq 'HASH') { |
$currval = $createsettings->{'shibenv'}{$fields[$i]}; |
if (ref($createsettings->{'shibenv'}) eq 'HASH') { |
|
$currval = $createsettings->{'shibenv'}{$fields[$i]}; |
|
} |
} |
} |
$datatable .= '<td class="LC_left_item">'. |
$datatable .= '<td class="LC_left_item">'. |
'<span class="LC_nobreak">'. |
'<span class="LC_nobreak">'. |
Line 5162 sub serverstatus_pages {
|
Line 5172 sub serverstatus_pages {
|
|
|
sub defaults_javascript { |
sub defaults_javascript { |
my ($settings) = @_; |
my ($settings) = @_; |
my ($output,$jstext); |
return unless (ref($settings) eq 'HASH'); |
if ((ref($settings->{'inststatusorder'}) eq 'ARRAY') && (ref($settings->{'inststatustypes'}) eq 'HASH')) { |
if ((ref($settings->{'inststatusorder'}) eq 'ARRAY') && (ref($settings->{'inststatustypes'}) eq 'HASH')) { |
my $maxnum = scalar(@{$settings->{'inststatusorder'}}); |
my $maxnum = scalar(@{$settings->{'inststatusorder'}}); |
if ($maxnum eq '') { |
if ($maxnum eq '') { |
$maxnum = 0; |
$maxnum = 0; |
} |
} |
$maxnum ++; |
$maxnum ++; |
$jstext = ' var inststatuses = Array('."'".join("','",@{$settings->{'inststatusorder'}})."'".');'; |
my $jstext = ' var inststatuses = Array('."'".join("','",@{$settings->{'inststatusorder'}})."'".');'; |
return <<"ENDSCRIPT"; |
return <<"ENDSCRIPT"; |
<script type="text/javascript"> |
<script type="text/javascript"> |
// <![CDATA[ |
// <![CDATA[ |
Line 6062 sub modify_login {
|
Line 6072 sub modify_login {
|
if (!$privkey) { |
if (!$privkey) { |
$chgtxt .= '<li>'.&mt('Private key deleted').'</li>'; |
$chgtxt .= '<li>'.&mt('Private key deleted').'</li>'; |
} else { |
} else { |
$chgtxt .= '<li>'.&mt('Private key set to [_1]',$pubkey).'</li>'; |
$chgtxt .= '<li>'.&mt('Private key set to [_1]',$privkey).'</li>'; |
} |
} |
$chgtxt .= '</ul>'; |
$chgtxt .= '</ul>'; |
$resulttext .= '<li>'.$chgtxt.'</li>'; |
$resulttext .= '<li>'.$chgtxt.'</li>'; |
Line 9066 sub process_captcha {
|
Line 9076 sub process_captcha {
|
if ($newsettings->{'captcha'} eq 'recaptcha') { |
if ($newsettings->{'captcha'} eq 'recaptcha') { |
$newpub = $env{'form.'.$container.'_recaptchapub'}; |
$newpub = $env{'form.'.$container.'_recaptchapub'}; |
$newpriv = $env{'form.'.$container.'_recaptchapriv'}; |
$newpriv = $env{'form.'.$container.'_recaptchapriv'}; |
$newpub =~ s/\W//g; |
$newpub =~ s/[^\w\-]//g; |
$newpriv =~ s/\W//g; |
$newpriv =~ s/[^\w\-]//g; |
$newsettings->{'recaptchakeys'} = { |
$newsettings->{'recaptchakeys'} = { |
public => $newpub, |
public => $newpub, |
private => $newpriv, |
private => $newpriv, |
Line 9767 sub modify_coursecategories {
|
Line 9777 sub modify_coursecategories {
|
} |
} |
$resulttext .= '</ul>'; |
$resulttext .= '</ul>'; |
if ($changes{'unauth'} || $changes{'auth'}) { |
if ($changes{'unauth'} || $changes{'auth'}) { |
&Apache::loncommon::devalidate_domconfig_cache($dom); |
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom); |
|
if ($changes{'auth'}) { |
|
$domdefaults{'catauth'} = $domconfig{'coursecategories'}{'auth'}; |
|
} |
|
if ($changes{'unauth'}) { |
|
$domdefaults{'catunauth'} = $domconfig{'coursecategories'}{'unauth'}; |
|
} |
|
my $cachetime = 24*60*60; |
|
&Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime); |
if (ref($lastactref) eq 'HASH') { |
if (ref($lastactref) eq 'HASH') { |
$lastactref->{'domainconfig'} = 1; |
$lastactref->{'domdefaults'} = 1; |
} |
} |
} |
} |
} else { |
} else { |
Line 10775 sub modify_loadbalancing {
|
Line 10793 sub modify_loadbalancing {
|
\%defaultshash,$dom); |
\%defaultshash,$dom); |
if ($putresult eq 'ok') { |
if ($putresult eq 'ok') { |
if (keys(%changes) > 0) { |
if (keys(%changes) > 0) { |
|
my %toupdate; |
if (ref($changes{'delete'}) eq 'ARRAY') { |
if (ref($changes{'delete'}) eq 'ARRAY') { |
foreach my $balancer (sort(@{$changes{'delete'}})) { |
foreach my $balancer (sort(@{$changes{'delete'}})) { |
$resulttext .= '<li>'.&mt('Load Balancing discontinued for: [_1]',$balancer).'</li>'; |
$resulttext .= '<li>'.&mt('Load Balancing discontinued for: [_1]',$balancer).'</li>'; |
my $cachekey = &escape('loadbalancing').':'.&escape($dom); |
$toupdate{$balancer} = 1; |
&Apache::lonnet::remote_devalidate_cache($balancer,[$cachekey]); |
|
} |
} |
} |
} |
if (ref($changes{'add'}) eq 'ARRAY') { |
if (ref($changes{'add'}) eq 'ARRAY') { |
foreach my $balancer (sort(@{$changes{'add'}})) { |
foreach my $balancer (sort(@{$changes{'add'}})) { |
$resulttext .= '<li>'.&mt('Load Balancing enabled for: [_1]',$balancer); |
$resulttext .= '<li>'.&mt('Load Balancing enabled for: [_1]',$balancer); |
|
$toupdate{$balancer} = 1; |
} |
} |
} |
} |
if (ref($changes{'curr'}) eq 'HASH') { |
if (ref($changes{'curr'}) eq 'HASH') { |
Line 10827 sub modify_loadbalancing {
|
Line 10846 sub modify_loadbalancing {
|
} elsif (($rule eq 'homeserver') || ($rule eq 'externalbalancer') || |
} elsif (($rule eq 'homeserver') || ($rule eq 'externalbalancer') || |
($rule eq 'balancer') || ($rule eq 'offloadedto')) { |
($rule eq 'balancer') || ($rule eq 'offloadedto')) { |
$balancetext = $ruletitles{$rule}; |
$balancetext = $ruletitles{$rule}; |
|
if (($rule eq 'balancer') || ($rule eq 'offloadedto')) { |
|
foreach my $sparetype (@sparestypes) { |
|
if (ref($defaultshash{'loadbalancing'}{$balancer}{'targets'}{$sparetype}) eq 'ARRAY') { |
|
map { $toupdate{$_} = 1; } (@{$defaultshash{'loadbalancing'}{$balancer}{'targets'}{$sparetype}}); |
|
} |
|
} |
|
} |
} else { |
} else { |
$balancetext = &mt('offload to [_1]',$defaultshash{'loadbalancing'}{$balancer}{'rules'}{$type}); |
$balancetext = &mt('offload to [_1]',$defaultshash{'loadbalancing'}{$balancer}{'rules'}{$type}); |
} |
} |
Line 10835 sub modify_loadbalancing {
|
Line 10861 sub modify_loadbalancing {
|
} |
} |
} |
} |
} |
} |
my $cachekey = &escape('loadbalancing').':'.&escape($dom); |
if (keys(%toupdate)) { |
&Apache::lonnet::remote_devalidate_cache($balancer,[$cachekey]); |
my %thismachine; |
|
my $updatedhere; |
|
my $cachetime = 60*60*24; |
|
map { $thismachine{$_} = 1; } &Apache::lonnet::current_machine_ids(); |
|
foreach my $lonhost (keys(%toupdate)) { |
|
if ($thismachine{$lonhost}) { |
|
unless ($updatedhere) { |
|
&Apache::lonnet::do_cache_new('loadbalancing',$dom, |
|
$defaultshash{'loadbalancing'}, |
|
$cachetime); |
|
$updatedhere = 1; |
|
} |
|
} else { |
|
my $cachekey = &escape('loadbalancing').':'.&escape($dom); |
|
&Apache::lonnet::remote_devalidate_cache($lonhost,[$cachekey]); |
|
} |
|
} |
|
} |
} |
} |
} |
} |
if ($resulttext ne '') { |
if ($resulttext ne '') { |
Line 10977 sub active_dc_picker {
|
Line 11020 sub active_dc_picker {
|
my ($dcname,$dcdom) = split(':',$domcoord[0]); |
my ($dcname,$dcdom) = split(':',$domcoord[0]); |
my $user = &Apache::loncommon::plainname($dcname,$dcdom); |
my $user = &Apache::loncommon::plainname($dcname,$dcdom); |
if ($inputtype eq 'radio') { |
if ($inputtype eq 'radio') { |
$table .= '<input type="hidden" name="'.$name.'" value="'.$domcoord[0].'" />'.$user; |
$table = '<input type="hidden" name="'.$name.'" value="'.$domcoord[0].'" />'.$user; |
if ($user ne $dcname.':'.$dcdom) { |
if ($user ne $dcname.':'.$dcdom) { |
$table .= ' ('.$dcname.':'.$dcdom.')'; |
$table .= ' ('.$dcname.':'.$dcdom.')'; |
} |
} |
Line 10986 sub active_dc_picker {
|
Line 11029 sub active_dc_picker {
|
if (exists($currhash{$domcoord[0]})) { |
if (exists($currhash{$domcoord[0]})) { |
$check = ' checked="checked"'; |
$check = ' checked="checked"'; |
} |
} |
$table .= '<span class="LC_nobreak"><label>'. |
$table = '<span class="LC_nobreak"><label>'. |
'<input type="checkbox" name="'.$name.'" '. |
'<input type="checkbox" name="'.$name.'" '. |
'value="'.$domcoord[0].'"'.$check.' />'.$user; |
'value="'.$domcoord[0].'"'.$check.' />'.$user; |
if ($user ne $dcname.':'.$dcdom) { |
if ($user ne $dcname.':'.$dcdom) { |
$table .= ' ('.$dcname.':'.$dcdom.')'; |
$table .= ' ('.$dcname.':'.$dcdom.')'; |
} |
} |