version 1.202, 2013/08/08 00:53:32
|
version 1.205, 2013/09/07 00:19:00
|
Line 416 sub handler {
|
Line 416 sub handler {
|
my $confname = $dom.'-domainconfig'; |
my $confname = $dom.'-domainconfig'; |
|
|
if ($phase eq 'process') { |
if ($phase eq 'process') { |
&Apache::lonconfigsettings::make_changes($r,$dom,$phase,$context,\@prefs_order,\%prefs,\%domconfig,$confname,\@roles); |
if (&Apache::lonconfigsettings::make_changes($r,$dom,$phase,$context,\@prefs_order, |
|
\%prefs,\%domconfig,$confname,\@roles) eq 'update') { |
|
$r->rflush(); |
|
&devalidate_remote_domconfs($dom); |
|
} |
} elsif ($phase eq 'display') { |
} elsif ($phase eq 'display') { |
my $js = &recaptcha_js(). |
my $js = &recaptcha_js(). |
&credits_js(); |
&credits_js(); |
Line 498 sub handler {
|
Line 502 sub handler {
|
} |
} |
|
|
sub process_changes { |
sub process_changes { |
my ($r,$dom,$confname,$action,$roles,$values) = @_; |
my ($r,$dom,$confname,$action,$roles,$values,$lastactref) = @_; |
my %domconfig; |
my %domconfig; |
if (ref($values) eq 'HASH') { |
if (ref($values) eq 'HASH') { |
%domconfig = %{$values}; |
%domconfig = %{$values}; |
} |
} |
my $output; |
my $output; |
if ($action eq 'login') { |
if ($action eq 'login') { |
$output = &modify_login($r,$dom,$confname,%domconfig); |
$output = &modify_login($r,$dom,$confname,$lastactref,%domconfig); |
} elsif ($action eq 'rolecolors') { |
} elsif ($action eq 'rolecolors') { |
$output = &modify_rolecolors($r,$dom,$confname,$roles, |
$output = &modify_rolecolors($r,$dom,$confname,$roles, |
%domconfig); |
$lastactref,%domconfig); |
} elsif ($action eq 'quotas') { |
} elsif ($action eq 'quotas') { |
$output = &modify_quotas($dom,$action,%domconfig); |
$output = &modify_quotas($dom,$action,%domconfig); |
} elsif ($action eq 'autoenroll') { |
} elsif ($action eq 'autoenroll') { |
$output = &modify_autoenroll($dom,%domconfig); |
$output = &modify_autoenroll($dom,$lastactref,%domconfig); |
} elsif ($action eq 'autoupdate') { |
} elsif ($action eq 'autoupdate') { |
$output = &modify_autoupdate($dom,%domconfig); |
$output = &modify_autoupdate($dom,%domconfig); |
} elsif ($action eq 'autocreate') { |
} elsif ($action eq 'autocreate') { |
Line 524 sub process_changes {
|
Line 528 sub process_changes {
|
} elsif ($action eq 'usermodification') { |
} elsif ($action eq 'usermodification') { |
$output = &modify_usermodification($dom,%domconfig); |
$output = &modify_usermodification($dom,%domconfig); |
} elsif ($action eq 'contacts') { |
} elsif ($action eq 'contacts') { |
$output = &modify_contacts($dom,%domconfig); |
$output = &modify_contacts($dom,$lastactref,%domconfig); |
} elsif ($action eq 'defaults') { |
} elsif ($action eq 'defaults') { |
$output = &modify_defaults($dom,$r); |
$output = &modify_defaults($dom,$r,%domconfig); |
} elsif ($action eq 'scantron') { |
} elsif ($action eq 'scantron') { |
$output = &modify_scantron($r,$dom,$confname,%domconfig); |
$output = &modify_scantron($r,$dom,$confname,$lastactref,%domconfig); |
} elsif ($action eq 'coursecategories') { |
} elsif ($action eq 'coursecategories') { |
$output = &modify_coursecategories($dom,%domconfig); |
$output = &modify_coursecategories($dom,%domconfig); |
} elsif ($action eq 'serverstatuses') { |
} elsif ($action eq 'serverstatuses') { |
Line 2309 sub print_contacts {
|
Line 2313 sub print_contacts {
|
my @contacts = ('adminemail','supportemail'); |
my @contacts = ('adminemail','supportemail'); |
my (%checked,%to,%otheremails,%bccemails); |
my (%checked,%to,%otheremails,%bccemails); |
my @mailings = ('errormail','packagesmail','lonstatusmail','helpdeskmail', |
my @mailings = ('errormail','packagesmail','lonstatusmail','helpdeskmail', |
'requestsmail','updatesmail'); |
'requestsmail','updatesmail','idconflictsmail'); |
foreach my $type (@mailings) { |
foreach my $type (@mailings) { |
$otheremails{$type} = ''; |
$otheremails{$type} = ''; |
} |
} |
Line 2346 sub print_contacts {
|
Line 2350 sub print_contacts {
|
$checked{'lonstatusmail'}{'adminemail'} = ' checked="checked" '; |
$checked{'lonstatusmail'}{'adminemail'} = ' checked="checked" '; |
$checked{'requestsmail'}{'adminemail'} = ' checked="checked" '; |
$checked{'requestsmail'}{'adminemail'} = ' checked="checked" '; |
$checked{'updatesmail'}{'adminemail'} = ' checked="checked" '; |
$checked{'updatesmail'}{'adminemail'} = ' checked="checked" '; |
|
$checked{'idconflictsmail'}{'adminemail'} = ' checked="checked" '; |
} |
} |
my ($titles,$short_titles) = &contact_titles(); |
my ($titles,$short_titles) = &contact_titles(); |
my $rownum = 0; |
my $rownum = 0; |
my $css_class; |
my $css_class; |
foreach my $item (@contacts) { |
foreach my $item (@contacts) { |
$rownum ++; |
|
$css_class = $rownum%2?' class="LC_odd_row"':''; |
$css_class = $rownum%2?' class="LC_odd_row"':''; |
$datatable .= '<tr'.$css_class.'>'. |
$datatable .= '<tr'.$css_class.'>'. |
'<td><span class="LC_nobreak">'.$titles->{$item}. |
'<td><span class="LC_nobreak">'.$titles->{$item}. |
'</span></td><td class="LC_right_item">'. |
'</span></td><td class="LC_right_item">'. |
'<input type="text" name="'.$item.'" value="'. |
'<input type="text" name="'.$item.'" value="'. |
$to{$item}.'" /></td></tr>'; |
$to{$item}.'" /></td></tr>'; |
|
$rownum ++; |
} |
} |
foreach my $type (@mailings) { |
foreach my $type (@mailings) { |
$rownum ++; |
|
$css_class = $rownum%2?' class="LC_odd_row"':''; |
$css_class = $rownum%2?' class="LC_odd_row"':''; |
$datatable .= '<tr'.$css_class.'>'. |
$datatable .= '<tr'.$css_class.'>'. |
'<td><span class="LC_nobreak">'. |
'<td><span class="LC_nobreak">'. |
Line 2383 sub print_contacts {
|
Line 2387 sub print_contacts {
|
'value="'.$bccemails{$type}.'" />'; |
'value="'.$bccemails{$type}.'" />'; |
} |
} |
$datatable .= '</td></tr>'."\n"; |
$datatable .= '</td></tr>'."\n"; |
|
$rownum ++; |
} |
} |
|
my %choices; |
|
$choices{'reporterrors'} = &mt('E-mail error reports to [_1]', |
|
&Apache::loncommon::modal_link('http://loncapa.org/core.html', |
|
&mt('LON-CAPA core group - MSU'),600,500)); |
|
$choices{'reportupdates'} = &mt('E-mail record of completed LON-CAPA updates to [_1]', |
|
&Apache::loncommon::modal_link('http://loncapa.org/core.html', |
|
&mt('LON-CAPA core group - MSU'),600,500)); |
|
my @toggles = ('reporterrors','reportupdates'); |
|
my %defaultchecked = ('reporterrors' => 'on', |
|
'reportupdates' => 'on'); |
|
(my $reports,$rownum) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked, |
|
\%choices,$rownum); |
|
$datatable .= $reports; |
$$rowtotal += $rownum; |
$$rowtotal += $rownum; |
return $datatable; |
return $datatable; |
} |
} |
Line 3301 sub contact_titles {
|
Line 3319 sub contact_titles {
|
'lonstatusmail' => 'E-mail from nightly status check (warnings/errors)', |
'lonstatusmail' => 'E-mail from nightly status check (warnings/errors)', |
'requestsmail' => 'E-mail from course requests requiring approval', |
'requestsmail' => 'E-mail from course requests requiring approval', |
'updatesmail' => 'E-mail from nightly check of LON-CAPA module integrity/updates', |
'updatesmail' => 'E-mail from nightly check of LON-CAPA module integrity/updates', |
|
'idconflictsmail' => 'E-mail from bi-nightly check for multiple users sharing same student/employee ID', |
); |
); |
my %short_titles = &Apache::lonlocal::texthash ( |
my %short_titles = &Apache::lonlocal::texthash ( |
adminemail => 'Admin E-mail address', |
adminemail => 'Admin E-mail address', |
Line 4422 sub build_category_rows {
|
Line 4441 sub build_category_rows {
|
if (ref($cats->[$depth]{$parent}) eq 'ARRAY') { |
if (ref($cats->[$depth]{$parent}) eq 'ARRAY') { |
my $numchildren = @{$cats->[$depth]{$parent}}; |
my $numchildren = @{$cats->[$depth]{$parent}}; |
my $css_class = $itemcount%2?' class="LC_odd_row"':''; |
my $css_class = $itemcount%2?' class="LC_odd_row"':''; |
$text .= '<td><table class="LC_datatable">'; |
$text .= '<td><table class="LC_data_table">'; |
my ($idxnum,$parent_name,$parent_item); |
my ($idxnum,$parent_name,$parent_item); |
my $higher = $depth - 1; |
my $higher = $depth - 1; |
if ($higher == 0) { |
if ($higher == 0) { |
Line 4714 sub usertype_update_row {
|
Line 4733 sub usertype_update_row {
|
} |
} |
|
|
sub modify_login { |
sub modify_login { |
my ($r,$dom,$confname,%domconfig) = @_; |
my ($r,$dom,$confname,$lastactref,%domconfig) = @_; |
my ($resulttext,$errors,$colchgtext,%changes,%colchanges,%newfile,%newurl, |
my ($resulttext,$errors,$colchgtext,%changes,%colchanges,%newfile,%newurl, |
%curr_loginvia,%loginhash,@currlangs,@newlangs,$addedfile,%title,@offon); |
%curr_loginvia,%loginhash,@currlangs,@newlangs,$addedfile,%title,@offon); |
%title = ( coursecatalog => 'Display course catalog', |
%title = ( coursecatalog => 'Display course catalog', |
Line 4952 sub modify_login {
|
Line 4971 sub modify_login {
|
} |
} |
if (keys(%changes) > 0 || $colchgtext) { |
if (keys(%changes) > 0 || $colchgtext) { |
&Apache::loncommon::devalidate_domconfig_cache($dom); |
&Apache::loncommon::devalidate_domconfig_cache($dom); |
|
$$lastactref = 'update'; |
$resulttext = &mt('Changes made:').'<ul>'; |
$resulttext = &mt('Changes made:').'<ul>'; |
foreach my $item (sort(keys(%changes))) { |
foreach my $item (sort(keys(%changes))) { |
if ($item eq 'loginvia') { |
if ($item eq 'loginvia') { |
Line 5084 sub color_font_choices {
|
Line 5104 sub color_font_choices {
|
} |
} |
|
|
sub modify_rolecolors { |
sub modify_rolecolors { |
my ($r,$dom,$confname,$roles,%domconfig) = @_; |
my ($r,$dom,$confname,$roles,$lastactref,%domconfig) = @_; |
my ($resulttext,%rolehash); |
my ($resulttext,%rolehash); |
$rolehash{'rolecolors'} = {}; |
$rolehash{'rolecolors'} = {}; |
if (ref($domconfig{'rolecolors'}) ne 'HASH') { |
if (ref($domconfig{'rolecolors'}) ne 'HASH') { |
Line 5099 sub modify_rolecolors {
|
Line 5119 sub modify_rolecolors {
|
if ($putresult eq 'ok') { |
if ($putresult eq 'ok') { |
if (keys(%changes) > 0) { |
if (keys(%changes) > 0) { |
&Apache::loncommon::devalidate_domconfig_cache($dom); |
&Apache::loncommon::devalidate_domconfig_cache($dom); |
|
$$lastactref = 'update'; |
$resulttext = &display_colorchgs($dom,\%changes,$roles, |
$resulttext = &display_colorchgs($dom,\%changes,$roles, |
$rolehash{'rolecolors'}); |
$rolehash{'rolecolors'}); |
} else { |
} else { |
Line 6143 sub modify_quotas {
|
Line 6164 sub modify_quotas {
|
} |
} |
|
|
sub modify_autoenroll { |
sub modify_autoenroll { |
my ($dom,%domconfig) = @_; |
my ($dom,$lastactref,%domconfig) = @_; |
my ($resulttext,%changes); |
my ($resulttext,%changes); |
my %currautoenroll; |
my %currautoenroll; |
if (ref($domconfig{'autoenroll'}) eq 'HASH') { |
if (ref($domconfig{'autoenroll'}) eq 'HASH') { |
Line 6211 sub modify_autoenroll {
|
Line 6232 sub modify_autoenroll {
|
if ($changes{'coowners'}) { |
if ($changes{'coowners'}) { |
$resulttext .= '<li>'.&mt("$title{'coowners'} set to $offon[$env{'form.autoassign_coowners'}]").'</li>'; |
$resulttext .= '<li>'.&mt("$title{'coowners'} set to $offon[$env{'form.autoassign_coowners'}]").'</li>'; |
&Apache::loncommon::devalidate_domconfig_cache($dom); |
&Apache::loncommon::devalidate_domconfig_cache($dom); |
|
$$lastactref = 'update'; |
} |
} |
$resulttext .= '</ul>'; |
$resulttext .= '</ul>'; |
} else { |
} else { |
Line 6662 sub modify_directorysrch {
|
Line 6684 sub modify_directorysrch {
|
} |
} |
|
|
sub modify_contacts { |
sub modify_contacts { |
my ($dom,%domconfig) = @_; |
my ($dom,$lastactref,%domconfig) = @_; |
my ($resulttext,%currsetting,%newsetting,%changes,%contacts_hash); |
my ($resulttext,%currsetting,%newsetting,%changes,%contacts_hash); |
if (ref($domconfig{'contacts'}) eq 'HASH') { |
if (ref($domconfig{'contacts'}) eq 'HASH') { |
foreach my $key (keys(%{$domconfig{'contacts'}})) { |
foreach my $key (keys(%{$domconfig{'contacts'}})) { |
Line 6672 sub modify_contacts {
|
Line 6694 sub modify_contacts {
|
my (%others,%to,%bcc); |
my (%others,%to,%bcc); |
my @contacts = ('supportemail','adminemail'); |
my @contacts = ('supportemail','adminemail'); |
my @mailings = ('errormail','packagesmail','helpdeskmail','lonstatusmail', |
my @mailings = ('errormail','packagesmail','helpdeskmail','lonstatusmail', |
'requestsmail','updatesmail'); |
'requestsmail','updatesmail','idconflictsmail'); |
|
my @toggles = ('reporterrors','reportupdates'); |
foreach my $type (@mailings) { |
foreach my $type (@mailings) { |
@{$newsetting{$type}} = |
@{$newsetting{$type}} = |
&Apache::loncommon::get_env_multiple('form.'.$type); |
&Apache::loncommon::get_env_multiple('form.'.$type); |
Line 6694 sub modify_contacts {
|
Line 6717 sub modify_contacts {
|
$to{$item} = $env{'form.'.$item}; |
$to{$item} = $env{'form.'.$item}; |
$contacts_hash{'contacts'}{$item} = $to{$item}; |
$contacts_hash{'contacts'}{$item} = $to{$item}; |
} |
} |
|
foreach my $item (@toggles) { |
|
if ($env{'form.'.$item} =~ /^(0|1)$/) { |
|
$contacts_hash{'contacts'}{$item} = $env{'form.'.$item}; |
|
} |
|
} |
if (keys(%currsetting) > 0) { |
if (keys(%currsetting) > 0) { |
foreach my $item (@contacts) { |
foreach my $item (@contacts) { |
if ($to{$item} ne $currsetting{$item}) { |
if ($to{$item} ne $currsetting{$item}) { |
Line 6732 sub modify_contacts {
|
Line 6760 sub modify_contacts {
|
foreach my $item (@contacts) { |
foreach my $item (@contacts) { |
if ($to{$item} ne $default{$item}) { |
if ($to{$item} ne $default{$item}) { |
$changes{$item} = 1; |
$changes{$item} = 1; |
} |
} |
} |
} |
foreach my $type (@mailings) { |
foreach my $type (@mailings) { |
if ((@{$newsetting{$type}} != 1) || ($newsetting{$type}[0] ne $default{$type})) { |
if ((@{$newsetting{$type}} != 1) || ($newsetting{$type}[0] ne $default{$type})) { |
Line 6749 sub modify_contacts {
|
Line 6777 sub modify_contacts {
|
} |
} |
} |
} |
} |
} |
|
foreach my $item (@toggles) { |
|
if (($env{'form.'.$item} == 1) && ($currsetting{$item} == 0)) { |
|
$changes{$item} = 1; |
|
} elsif ((!$env{'form.'.$item}) && |
|
(($currsetting{$item} eq '') || ($currsetting{$item} == 1))) { |
|
$changes{$item} = 1; |
|
} |
|
} |
my $putresult = &Apache::lonnet::put_dom('configuration',\%contacts_hash, |
my $putresult = &Apache::lonnet::put_dom('configuration',\%contacts_hash, |
$dom); |
$dom); |
if ($putresult eq 'ok') { |
if ($putresult eq 'ok') { |
if (keys(%changes) > 0) { |
if (keys(%changes) > 0) { |
|
&Apache::loncommon::devalidate_domconfig_cache($dom); |
|
$$lastactref = 'update'; |
my ($titles,$short_titles) = &contact_titles(); |
my ($titles,$short_titles) = &contact_titles(); |
$resulttext = &mt('Changes made:').'<ul>'; |
$resulttext = &mt('Changes made:').'<ul>'; |
foreach my $item (@contacts) { |
foreach my $item (@contacts) { |
Line 6783 sub modify_contacts {
|
Line 6821 sub modify_contacts {
|
$resulttext .= '</li>'; |
$resulttext .= '</li>'; |
} |
} |
} |
} |
|
my @offon = ('off','on'); |
|
if ($changes{'reporterrors'}) { |
|
$resulttext .= '<li>'. |
|
&mt('E-mail error reports to [_1] set to "'. |
|
$offon[$env{'form.reporterrors'}].'".', |
|
&Apache::loncommon::modal_link('http://loncapa.org/core.html', |
|
&mt('LON-CAPA core group - MSU'),600,500)). |
|
'</li>'; |
|
} |
|
if ($changes{'reportupdates'}) { |
|
$resulttext .= '<li>'. |
|
&mt('E-mail record of completed LON-CAPA updates to [_1] set to "'. |
|
$offon[$env{'form.reportupdates'}].'".', |
|
&Apache::loncommon::modal_link('http://loncapa.org/core.html', |
|
&mt('LON-CAPA core group - MSU'),600,500)). |
|
'</li>'; |
|
} |
$resulttext .= '</ul>'; |
$resulttext .= '</ul>'; |
} else { |
} else { |
$resulttext = &mt('No changes made to contact information'); |
$resulttext = &mt('No changes made to contact information'); |
Line 7377 sub modify_usermodification {
|
Line 7432 sub modify_usermodification {
|
} |
} |
|
|
sub modify_defaults { |
sub modify_defaults { |
my ($dom,$r) = @_; |
my ($dom,$r,%domconfig) = @_; |
my ($resulttext,$mailmsgtxt,%newvalues,%changes,@errors); |
my ($resulttext,$mailmsgtxt,%newvalues,%changes,@errors); |
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom); |
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom); |
my @items = ('auth_def','auth_arg_def','lang_def','timezone_def','datelocale_def','portal_def'); |
my @items = ('auth_def','auth_arg_def','lang_def','timezone_def','datelocale_def','portal_def'); |
Line 7463 sub modify_defaults {
|
Line 7518 sub modify_defaults {
|
my $cachetime = 24*60*60; |
my $cachetime = 24*60*60; |
&Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime); |
&Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime); |
if ($changes{'auth_def'} || $changes{'auth_arg_def'} || $changes{'lang_def'} || $changes{'datelocale_def'}) { |
if ($changes{'auth_def'} || $changes{'auth_arg_def'} || $changes{'lang_def'} || $changes{'datelocale_def'}) { |
my $sysmail = $r->dir_config('lonSysEMail'); |
my $notify = 1; |
&Apache::lonmsg::sendemail($sysmail,"LON-CAPA Domain Settings Change - $dom",$mailmsgtext); |
if (ref($domconfig{'contacts'}) eq 'HASH') { |
|
if ($domconfig{'contacts'}{'reportupdates'} == 0) { |
|
$notify = 0; |
|
} |
|
} |
|
if ($notify) { |
|
&Apache::lonmsg::sendemail('installrecord@loncapa.org', |
|
"LON-CAPA Domain Settings Change - $dom", |
|
$mailmsgtext); |
|
} |
} |
} |
} else { |
} else { |
$resulttext = &mt('No changes made to default authentication/language/timezone settings'); |
$resulttext = &mt('No changes made to default authentication/language/timezone settings'); |
Line 7484 sub modify_defaults {
|
Line 7548 sub modify_defaults {
|
} |
} |
|
|
sub modify_scantron { |
sub modify_scantron { |
my ($r,$dom,$confname,%domconfig) = @_; |
my ($r,$dom,$confname,$lastactref,%domconfig) = @_; |
my ($resulttext,%confhash,%changes,$errors); |
my ($resulttext,%confhash,%changes,$errors); |
my $custom = 'custom.tab'; |
my $custom = 'custom.tab'; |
my $default = 'default.tab'; |
my $default = 'default.tab'; |
Line 7545 sub modify_scantron {
|
Line 7609 sub modify_scantron {
|
} |
} |
$resulttext .= '</ul>'; |
$resulttext .= '</ul>'; |
&Apache::loncommon::devalidate_domconfig_cache($dom); |
&Apache::loncommon::devalidate_domconfig_cache($dom); |
|
$lastactref = 'update'; |
} else { |
} else { |
$resulttext = &mt('No changes made to bubblesheet format file'); |
$resulttext = &mt('No changes made to bubblesheet format file'); |
} |
} |
Line 9304 sub captcha_phrases {
|
Line 9369 sub captcha_phrases {
|
); |
); |
} |
} |
|
|
|
|
|
sub devalidate_remote_domconfs { |
|
my ($dom) = @_; |
|
my $primary_id = &Apache::lonnet::domain($dom,'primary'); |
|
my $intdom = &Apache::lonnet::internet_dom($primary_id); |
|
my %servers = &Apache::lonnet::internet_dom_servers($dom); |
|
my %thismachine; |
|
map { $thismachine{$_} = 1; } &Apache::lonnet::current_machine_ids(); |
|
if (keys(%servers) > 1) { |
|
foreach my $server (keys(%servers)) { |
|
next if ($thismachine{$server}); |
|
&Apache::lonnet::remote_devalidate_cache($server,'domainconfig',$dom); |
|
} |
|
} |
|
return; |
|
} |
|
|
1; |
1; |