--- loncom/interface/domainprefs.pm 2009/03/18 21:30:05 1.76.2.7 +++ loncom/interface/domainprefs.pm 2008/12/17 21:50:29 1.78 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set domain-wide configuration settings # -# $Id: domainprefs.pm,v 1.76.2.7 2009/03/18 21:30:05 raeburn Exp $ +# $Id: domainprefs.pm,v 1.78 2008/12/17 21:50:29 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -39,7 +39,7 @@ use Apache::lonlocal; use Apache::lonmsg(); use LONCAPA qw(:DEFAULT :match); use LONCAPA::Enrollment; -use LONCAPA::lonauthcgi(); +use LONCAPA::loncgi(); use File::Copy; use Locale::Language; use DateTime::TimeZone; @@ -107,7 +107,7 @@ sub handler { 'quotas' => { text => 'User blogs, home pages and portfolios', help => 'Domain_Configuration_Quotas', - header => [{col1 => 'User type', + header => [{col1 => 'User affiliation', col2 => 'Available tools', col3 => 'Portfolio quota',}], }, @@ -175,7 +175,7 @@ sub handler { }], }, 'serverstatuses' => - {text => 'Access to Server Status Pages', + {text => 'Access to server status pages', help => 'Domain_Configuration_Server_Status', header => [{col1 => 'Status Page', col2 => 'Other named users', @@ -817,9 +817,9 @@ sub login_choices { bgs => "Background colors", links => "Link colors", font => "Font color", - pgbg => "Page", - mainbg => "Main panel", - sidebg => "Side panel", + pgbg => "Header", + mainbg => "Page", + sidebg => "Login box", link => "Link", alink => "Active link", vlink => "Visited link", @@ -1317,11 +1317,9 @@ sub print_quotas { '
'; foreach my $item (@usertools) { my $checked = 'checked="checked" '; - if (ref($settings) eq 'HASH') { - if (ref($settings->{$item}) eq 'HASH') { - if ($settings->{$item}->{'_LC_adv'} == 0) { - $checked = ''; - } + if (ref($settings->{$item}) eq 'HASH') { + if ($settings->{$item}->{'_LC_adv'} == 0) { + $checked = ''; } } $datatable .= '  '; } $datatable .= '('.&mt('overrides affiliation'). - ')'; + ')'; $$rowtotal += $typecount; return $datatable; } @@ -1571,7 +1569,7 @@ sub print_contacts { my $datatable; my @contacts = ('adminemail','supportemail'); my (%checked,%to,%otheremails); - my @mailings = ('errormail','packagesmail','lonstatusmail','helpdeskmail'); + my @mailings = ('errormail','packagesmail','helpdeskmail'); foreach my $type (@mailings) { $otheremails{$type} = ''; } @@ -1591,8 +1589,6 @@ sub print_contacts { } $otheremails{$type} = $settings->{$type}{'others'}; } - } elsif ($type eq 'lonstatusmail') { - $checked{'lonstatusmail'}{'adminemail'} = ' checked="checked" '; } } } else { @@ -1600,8 +1596,7 @@ sub print_contacts { $to{'adminemail'} = $Apache::lonnet::perlvar{'lonAdmEMail'}; $checked{'errormail'}{'adminemail'} = ' checked="checked" '; $checked{'packagesmail'}{'adminemail'} = ' checked="checked" '; - $checked{'helpdeskmail'}{'supportemail'} = ' checked="checked" '; - $checked{'lonstatusmail'}{'adminemail'} = ' checked="checked" '; + $checked{'helpdeskmail'}{'supportemail'} = ' checked="checked" '; } my ($titles,$short_titles) = &contact_titles(); my $rownum = 0; @@ -1645,8 +1640,7 @@ sub contact_titles { 'adminemail' => 'Default Server Admin E-mail address', 'errormail' => 'Error reports to be e-mailed to', 'packagesmail' => 'Package update alerts to be e-mailed to', - 'helpdeskmail' => 'Helpdesk requests to be e-mailed to', - 'lonstatusmail' => 'E-mail from nightly status check (warnings/errors)', + 'helpdeskmail' => 'Helpdesk requests to be e-mailed to' ); my %short_titles = &Apache::lonlocal::texthash ( adminemail => 'Admin E-mail address', @@ -2377,7 +2371,7 @@ sub print_serverstatuses { } } } - my $titles= &LONCAPA::lonauthcgi::serverstatus_titles(); + my $titles= &LONCAPA::loncgi::serverstatus_titles(); my $rownum = 0; my $css_class; foreach my $type (@pages) { @@ -3616,16 +3610,10 @@ sub modify_quotas { } $resulttext .= ''; } - my %newenv; foreach my $item (@usertools) { if (ref($changes{$item}) eq 'HASH') { - my $newacc = - &Apache::lonnet::usertools_access($env{'user.name'}, - $env{'user.domain'}, - $item,'reload'); - if ($env{'environment.availabletools.'.$item} ne $newacc) { - $newenv{'environment.availabletools.'.$item} = $newacc; - } + my $hashid = $env{'user.name'}.':'.$env{'user.domain'}; + &Apache::lonnet::devalidate_cache_new('usertools.'.$item,$hashid); $resulttext .= '
  • '.$titles{$item}.''; - if (keys(%newenv)) { - &Apache::lonnet::appenv(\%newenv); - } } else { $resulttext = &mt('No changes made to availability of home pages, blogs, portfolios or default quotas'); } @@ -4033,7 +4018,7 @@ sub modify_contacts { } my (%others,%to); my @contacts = ('supportemail','adminemail'); - my @mailings = ('errormail','packagesmail','helpdeskmail','lonstatusmail'); + my @mailings = ('errormail','packagesmail','helpdeskmail'); foreach my $type (@mailings) { @{$newsetting{$type}} = &Apache::loncommon::get_env_multiple('form.'.$type); @@ -4078,7 +4063,6 @@ sub modify_contacts { $default{'errormail'} = 'adminemail'; $default{'packagesmail'} = 'adminemail'; $default{'helpdeskmail'} = 'supportemail'; - $default{'lonstatusmail'} = 'adminemail'; foreach my $item (@contacts) { if ($to{$item} ne $default{$item}) { $changes{$item} = 1; @@ -4766,10 +4750,8 @@ sub modify_coursecategories { } else { $changes{'togglecats'} = 1; $changes{'categorize'} = 1; - $domconfig{'coursecategories'} = { - togglecats => $env{'form.togglecats'}, - categorize => $env{'form.categorize'}, - }; + $domconfig{'coursecategories'}{'togglecats'} = $env{'form.togglecats'}; + $domconfig{'coursecategories'}{'categorize'} = $env{'form.categorize'}; } if (ref($cathash) eq 'HASH') { if (($domconfig{'coursecategories'}{'cats'}{'instcode::0'} ne '') && ($env{'form.instcode'} == 0)) { @@ -4984,57 +4966,58 @@ sub modify_serverstatuses { my %serverstatushash = ( serverstatuses => \%newserverstatus, ); + my $putresult = &Apache::lonnet::put_dom('configuration',\%serverstatushash, + $dom); my %changes; foreach my $type (@pages) { - foreach my $setting ('namedusers','machines') { - my (@current,@new); - if (ref($currserverstatus{$type}) eq 'HASH') { - if ($currserverstatus{$type}{$setting} ne '') { - @current = split(/,/,$currserverstatus{$type}{$setting}); + if (ref($currserverstatus{$type}) eq 'HASH') { + my @currnamed = split(/,/,$currserverstatus{$type}{'namedusers'}); + my @newusers = split(/,/,$newserverstatus{$type}{'namedusers'}); + foreach my $item (@currnamed) { + if (!grep(/^\Q$item\E$/,@newusers)) { + $changes{$type}{'namedusers'} = 1; + last; } } - if ($newserverstatus{$type}{$setting} ne '') { - @new = split(/,/,$newserverstatus{$type}{$setting}); - } - if (@current > 0) { - if (@new > 0) { - foreach my $item (@current) { - if (!grep(/^\Q$item\E$/,@new)) { - $changes{$type}{$setting} = 1; - last; - } - } - foreach my $item (@new) { - if (!grep(/^\Q$item\E$/,@current)) { - $changes{$type}{$setting} = 1; - last; - } - } - } else { - $changes{$type}{$setting} = 1; + foreach my $item (@newusers) { + if (!grep(/^\Q$item\E$/,@currnamed)) { + $changes{$type}{'namedusers'} = 1; + last; + } + } + my @currmachines = split(/,/,$currserverstatus{$type}{'machines'}); + my @newmachines = split(/,/,$newserverstatus{$type}{'machines'}); + foreach my $item (@currmachines) { + if (!grep(/^\Q$item\E$/,@newmachines)) { + $changes{$type}{'machines'} = 1; + last; + } + } + foreach my $item (@newmachines) { + if (!grep(/^\Q$item\E$/,@currmachines)) { + $changes{$type}{'machines'} = 1; + last; } - } elsif (@new > 0) { - $changes{$type}{$setting} = 1; } + } } if (keys(%changes) > 0) { - my $titles= &LONCAPA::lonauthcgi::serverstatus_titles(); + my $titles= &LONCAPA::loncgi::serverstatus_titles(); my $putresult = &Apache::lonnet::put_dom('configuration', \%serverstatushash,$dom); if ($putresult eq 'ok') { $resulttext .= &mt('Changes made:').'