--- loncom/interface/domainprefs.pm 2009/10/06 18:24:29 1.111 +++ loncom/interface/domainprefs.pm 2009/10/20 14:29:44 1.114 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set domain-wide configuration settings # -# $Id: domainprefs.pm,v 1.111 2009/10/06 18:24:29 jms Exp $ +# $Id: domainprefs.pm,v 1.114 2009/10/20 14:29:44 jms Exp $ # # Copyright Michigan State University Board of Trustees # @@ -657,8 +657,9 @@ sub print_login { 'coursecatalog' => 'on', 'adminmail' => 'off', 'newuser' => 'off', + 'submitbugs' => 'on', ); - my @toggles = ('coursecatalog','adminmail','newuser'); + my @toggles = ('coursecatalog','adminmail','newuser','submitbugs'); my (%checkedon,%checkedoff); foreach my $item (@toggles) { if ($defaultchecked{$item} eq 'on') { @@ -790,6 +791,7 @@ sub login_choices { coursecatalog => 'Display Course Catalog link?', adminmail => "Display Administrator's E-mail Address?", disallowlogin => "Login page requests redirected", + submitbugs => "Display "Submit Bug" link?", hostid => "Server", serverurl => "Redirect to log-in via:", directlogin => "No redirect", @@ -2721,7 +2723,7 @@ sub print_serverstatuses { sub serverstatus_pages { return ('userstatus','lonstatus','loncron','server-status','codeversions', 'clusterstatus','metadata_keywords','metadata_harvest', - 'takeoffline','takeonline','showenv'); + 'takeoffline','takeonline','showenv','toggledebug'); } sub coursecategories_javascript { @@ -3137,12 +3139,21 @@ sub modify_login { my %title = ( coursecatalog => 'Display course catalog', adminmail => 'Display administrator E-mail address', newuser => 'Link for visitors to create a user account', + submitbugs => 'Link for users to submit a bug', loginheader => 'Log-in box header'); my @offon = ('off','on'); + my %curr_loginvia; + if (ref($domconfig{login}) eq 'HASH') { + if (ref($domconfig{login}{loginvia}) eq 'HASH') { + foreach my $lonhost (keys(%{$domconfig{login}{loginvia}})) { + $curr_loginvia{$lonhost} = $domconfig{login}{loginvia}{$lonhost}; + } + } + } my %loginhash; ($errors,%colchanges) = &modify_colors($r,$dom,$confname,['login'], \%domconfig,\%loginhash); - my @toggles = ('coursecatalog','adminmail','newuser'); + my @toggles = ('coursecatalog','adminmail','newuser','submitbugs'); foreach my $item (@toggles) { $loginhash{login}{$item} = $env{'form.'.$item}; } @@ -3155,10 +3166,15 @@ sub modify_login { my %servers = &Apache::lonnet::get_servers($dom); if (keys(%servers) > 1) { foreach my $lonhost (keys(%servers)) { - if ($env{'form.'.$lonhost.'_serverurl'} ne '') { + next if ($env{'form.'.$lonhost.'_serverurl'} eq $curr_loginvia{$lonhost}); + next if ($env{'form.'.$lonhost.'_serverurl'} eq $lonhost); + if ($curr_loginvia{$lonhost} ne '') { + $loginhash{login}{loginvia}{$lonhost} = $env{'form.'.$lonhost.'_serverurl'}; + $changes{'loginvia'}{$lonhost} = 1; + } else { if (defined($servers{$env{'form.'.$lonhost.'_serverurl'}})) { $loginhash{login}{loginvia}{$lonhost} = $env{'form.'.$lonhost.'_serverurl'}; - $changes{$item} = 1; + $changes{'loginvia'}{$lonhost} = 1; } } } @@ -3167,11 +3183,12 @@ 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','newuser','submitbugs'); my %defaultchecked = ( 'coursecatalog' => 'on', 'adminmail' => 'off', 'newuser' => 'off', + 'submitbugs' => 'on', ); if (ref($domconfig{'login'}) eq 'HASH') { foreach my $item (@toggles) { @@ -3210,6 +3227,18 @@ sub modify_login { foreach my $item (sort(keys(%changes))) { if ($item eq 'loginheader') { $resulttext .= '
  • '.&mt("$title{$item} set to $env{'form.loginheader'}").'
  • '; + } elsif ($item eq 'loginvia') { + if (ref($changes{$item}) eq 'HASH') { + $resulttext .= '
  • '.&mt('Log-in page availability:').'
  • '; + } } else { $resulttext .= '
  • '.&mt("$title{$item} set to $offon[$env{'form.'.$item}]").'
  • '; }