version 1.160.6.35, 2014/03/03 18:09:24
|
version 1.235, 2014/04/16 13:32:43
|
Line 164 use Apache::lonhtmlcommon();
|
Line 164 use Apache::lonhtmlcommon();
|
use Apache::lonlocal; |
use Apache::lonlocal; |
use Apache::lonmsg(); |
use Apache::lonmsg(); |
use Apache::lonconfigsettings; |
use Apache::lonconfigsettings; |
|
use Apache::lonuserutils(); |
|
use Apache::loncoursequeueadmin(); |
use LONCAPA qw(:DEFAULT :match); |
use LONCAPA qw(:DEFAULT :match); |
use LONCAPA::Enrollment; |
use LONCAPA::Enrollment; |
use LONCAPA::lonauthcgi(); |
use LONCAPA::lonauthcgi(); |
Line 211 sub handler {
|
Line 213 sub handler {
|
'quotas','autoenroll','autoupdate','autocreate', |
'quotas','autoenroll','autoupdate','autocreate', |
'directorysrch','usercreation','usermodification', |
'directorysrch','usercreation','usermodification', |
'contacts','defaults','scantron','coursecategories', |
'contacts','defaults','scantron','coursecategories', |
'serverstatuses','requestcourses','coursedefaults', |
'serverstatuses','requestcourses','helpsettings', |
'usersessions','loadbalancing','requestauthor'],$dom); |
'coursedefaults','usersessions','loadbalancing', |
|
'requestauthor','selfenrollment'],$dom); |
my @prefs_order = ('rolecolors','login','defaults','quotas','autoenroll', |
my @prefs_order = ('rolecolors','login','defaults','quotas','autoenroll', |
'autoupdate','autocreate','directorysrch','contacts', |
'autoupdate','autocreate','directorysrch','contacts', |
'usercreation','selfcreation','usermodification','scantron', |
'usercreation','selfcreation','usermodification','scantron', |
'requestcourses','requestauthor','coursecategories', |
'requestcourses','requestauthor','coursecategories', |
'serverstatuses','coursedefaults','usersessions'); |
'serverstatuses','helpsettings', |
|
'coursedefaults','selfenrollment','usersessions'); |
my %existing; |
my %existing; |
if (ref($domconfig{'loadbalancing'}) eq 'HASH') { |
if (ref($domconfig{'loadbalancing'}) eq 'HASH') { |
%existing = %{$domconfig{'loadbalancing'}}; |
%existing = %{$domconfig{'loadbalancing'}}; |
Line 237 sub handler {
|
Line 241 sub handler {
|
col2 => '',}, |
col2 => '',}, |
{col1 => 'Administrator Settings', |
{col1 => 'Administrator Settings', |
col2 => '',}], |
col2 => '',}], |
|
print => \&print_rolecolors, |
|
modify => \&modify_rolecolors, |
}, |
}, |
'login' => |
'login' => |
{ text => 'Log-in page options', |
{ text => 'Log-in page options', |
Line 245 sub handler {
|
Line 251 sub handler {
|
col2 => '',}, |
col2 => '',}, |
{col1 => 'Log-in Help', |
{col1 => 'Log-in Help', |
col2 => 'Value'}], |
col2 => 'Value'}], |
|
print => \&print_login, |
|
modify => \&modify_login, |
}, |
}, |
'defaults' => |
'defaults' => |
{ text => 'Default authentication/language/timezone/portal', |
{ text => 'Default authentication/language/timezone/portal', |
help => 'Domain_Configuration_LangTZAuth', |
help => 'Domain_Configuration_LangTZAuth', |
header => [{col1 => 'Setting', |
header => [{col1 => 'Setting', |
col2 => 'Value'}], |
col2 => 'Value'}], |
|
print => \&print_defaults, |
|
modify => \&modify_defaults, |
}, |
}, |
'quotas' => |
'quotas' => |
{ text => 'Blogs, personal web pages, webDAV/quotas, portfolios', |
{ text => 'Blogs, personal web pages, webDAV/quotas, portfolios', |
Line 258 sub handler {
|
Line 268 sub handler {
|
header => [{col1 => 'User affiliation', |
header => [{col1 => 'User affiliation', |
col2 => 'Available tools', |
col2 => 'Available tools', |
col3 => 'Quotas, MB; (Authoring requires role)',}], |
col3 => 'Quotas, MB; (Authoring requires role)',}], |
|
print => \&print_quotas, |
|
modify => \&modify_quotas, |
}, |
}, |
'autoenroll' => |
'autoenroll' => |
{ text => 'Auto-enrollment settings', |
{ text => 'Auto-enrollment settings', |
help => 'Domain_Configuration_Auto_Enrollment', |
help => 'Domain_Configuration_Auto_Enrollment', |
header => [{col1 => 'Configuration setting', |
header => [{col1 => 'Configuration setting', |
col2 => 'Value(s)'}], |
col2 => 'Value(s)'}], |
|
print => \&print_autoenroll, |
|
modify => \&modify_autoenroll, |
}, |
}, |
'autoupdate' => |
'autoupdate' => |
{ text => 'Auto-update settings', |
{ text => 'Auto-update settings', |
Line 274 sub handler {
|
Line 288 sub handler {
|
col2 => 'Affiliation'}, |
col2 => 'Affiliation'}, |
{col1 => 'User population', |
{col1 => 'User population', |
col2 => 'Updatable user data'}], |
col2 => 'Updatable user data'}], |
|
print => \&print_autoupdate, |
|
modify => \&modify_autoupdate, |
}, |
}, |
'autocreate' => |
'autocreate' => |
{ text => 'Auto-course creation settings', |
{ text => 'Auto-course creation settings', |
help => 'Domain_Configuration_Auto_Creation', |
help => 'Domain_Configuration_Auto_Creation', |
header => [{col1 => 'Configuration Setting', |
header => [{col1 => 'Configuration Setting', |
col2 => 'Value',}], |
col2 => 'Value',}], |
|
print => \&print_autocreate, |
|
modify => \&modify_autocreate, |
}, |
}, |
'directorysrch' => |
'directorysrch' => |
{ text => 'Institutional directory searches', |
{ text => 'Institutional directory searches', |
help => 'Domain_Configuration_InstDirectory_Search', |
help => 'Domain_Configuration_InstDirectory_Search', |
header => [{col1 => 'Setting', |
header => [{col1 => 'Setting', |
col2 => 'Value',}], |
col2 => 'Value',}], |
|
print => \&print_directorysrch, |
|
modify => \&modify_directorysrch, |
}, |
}, |
'contacts' => |
'contacts' => |
{ text => 'Contact Information', |
{ text => 'Contact Information', |
help => 'Domain_Configuration_Contact_Info', |
help => 'Domain_Configuration_Contact_Info', |
header => [{col1 => 'Setting', |
header => [{col1 => 'Setting', |
col2 => 'Value',}], |
col2 => 'Value',}], |
|
print => \&print_contacts, |
|
modify => \&modify_contacts, |
}, |
}, |
'usercreation' => |
'usercreation' => |
{ text => 'User creation', |
{ text => 'User creation', |
Line 302 sub handler {
|
Line 324 sub handler {
|
col2 => 'Usernames which may be created',}, |
col2 => 'Usernames which may be created',}, |
{col1 => 'Context', |
{col1 => 'Context', |
col2 => 'Assignable authentication types'}], |
col2 => 'Assignable authentication types'}], |
|
print => \&print_usercreation, |
|
modify => \&modify_usercreation, |
}, |
}, |
'selfcreation' => |
'selfcreation' => |
{ text => 'Users self-creating accounts', |
{ text => 'Users self-creating accounts', |
Line 312 sub handler {
|
Line 336 sub handler {
|
col2 => 'Information user can enter'}, |
col2 => 'Information user can enter'}, |
{col1 => 'Self-creation with e-mail as username', |
{col1 => 'Self-creation with e-mail as username', |
col2 => 'Settings'}], |
col2 => 'Settings'}], |
|
print => \&print_selfcreation, |
|
modify => \&modify_selfcreation, |
}, |
}, |
'usermodification' => |
'usermodification' => |
{ text => 'User modification', |
{ text => 'User modification', |
Line 320 sub handler {
|
Line 346 sub handler {
|
col2 => 'User information updatable in author context'}, |
col2 => 'User information updatable in author context'}, |
{col1 => 'Target user has role', |
{col1 => 'Target user has role', |
col2 => 'User information updatable in course context'}], |
col2 => 'User information updatable in course context'}], |
|
print => \&print_usermodification, |
|
modify => \&modify_usermodification, |
}, |
}, |
'scantron' => |
'scantron' => |
{ text => 'Bubblesheet format file', |
{ text => 'Bubblesheet format file', |
Line 327 sub handler {
|
Line 355 sub handler {
|
header => [ {col1 => 'Item', |
header => [ {col1 => 'Item', |
col2 => '', |
col2 => '', |
}], |
}], |
|
print => \&print_scantron, |
|
modify => \&modify_scantron, |
}, |
}, |
'requestcourses' => |
'requestcourses' => |
{text => 'Request creation of courses', |
{text => 'Request creation of courses', |
Line 336 sub handler {
|
Line 366 sub handler {
|
{col1 => 'Setting', |
{col1 => 'Setting', |
col2 => 'Value'}, |
col2 => 'Value'}, |
{col1 => 'Available textbooks', |
{col1 => 'Available textbooks', |
col2 => ''}], |
col2 => ''}, |
|
{col1 => 'Validation (not official courses)', |
|
col2 => 'Value'},], |
|
print => \&print_quotas, |
|
modify => \&modify_quotas, |
}, |
}, |
'requestauthor' => |
'requestauthor' => |
{text => 'Request Authoring Space', |
{text => 'Request Authoring Space', |
Line 345 sub handler {
|
Line 379 sub handler {
|
col2 => 'Availability/Processing of requests',}, |
col2 => 'Availability/Processing of requests',}, |
{col1 => 'Setting', |
{col1 => 'Setting', |
col2 => 'Value'}], |
col2 => 'Value'}], |
|
print => \&print_quotas, |
|
modify => \&modify_quotas, |
}, |
}, |
'coursecategories' => |
'coursecategories' => |
{ text => 'Cataloging of courses/communities', |
{ text => 'Cataloging of courses/communities', |
Line 354 sub handler {
|
Line 390 sub handler {
|
{col1 => 'Categories', |
{col1 => 'Categories', |
col2 => '', |
col2 => '', |
}], |
}], |
|
print => \&print_coursecategories, |
|
modify => \&modify_coursecategories, |
}, |
}, |
'serverstatuses' => |
'serverstatuses' => |
{text => 'Access to server status pages', |
{text => 'Access to server status pages', |
Line 362 sub handler {
|
Line 400 sub handler {
|
col2 => 'Other named users', |
col2 => 'Other named users', |
col3 => 'Specific IPs', |
col3 => 'Specific IPs', |
}], |
}], |
|
print => \&print_serverstatuses, |
|
modify => \&modify_serverstatuses, |
}, |
}, |
'coursedefaults' => |
'helpsettings' => |
|
{text => 'Help page settings', |
|
help => 'Domain_Configuration_Help_Settings', |
|
header => [{col1 => 'Help Settings (logged-in users)', |
|
col2 => 'Value'}], |
|
print => \&print_helpsettings, |
|
modify => \&modify_helpsettings, |
|
}, |
|
'coursedefaults' => |
{text => 'Course/Community defaults', |
{text => 'Course/Community defaults', |
help => 'Domain_Configuration_Course_Defaults', |
help => 'Domain_Configuration_Course_Defaults', |
header => [{col1 => 'Defaults which can be overridden for each course by a DC', |
header => [{col1 => 'Defaults which can be overridden in each course by a CC', |
|
col2 => 'Value',}, |
|
{col1 => 'Defaults which can be overridden for each course by a DC', |
col2 => 'Value',},], |
col2 => 'Value',},], |
|
print => \&print_coursedefaults, |
|
modify => \&modify_coursedefaults, |
|
}, |
|
'selfenrollment' => |
|
{text => 'Self-enrollment in Course/Community', |
|
help => 'Domain_Configuration_Selfenrollment', |
|
header => [{col1 => 'Configuration Rights', |
|
col2 => 'Configured by Course Personnel or Domain Coordinator?'}, |
|
{col1 => 'Defaults', |
|
col2 => 'Value'}, |
|
{col1 => 'Self-enrollment validation (optional)', |
|
col2 => 'Value'},], |
|
print => \&print_selfenrollment, |
|
modify => \&modify_selfenrollment, |
|
}, |
|
'privacy' => |
|
{text => 'User Privacy', |
|
help => 'Domain_Configuration_User_Privacy', |
|
header => [{col1 => 'Setting', |
|
col2 => 'Value',}], |
|
print => \&print_privacy, |
|
modify => \&modify_privacy, |
}, |
}, |
'usersessions' => |
'usersessions' => |
{text => 'User session hosting/offloading', |
{text => 'User session hosting/offloading', |
Line 378 sub handler {
|
Line 450 sub handler {
|
col2 => 'Rules'}, |
col2 => 'Rules'}, |
{col1 => "Hosting domain's own users elsewhere", |
{col1 => "Hosting domain's own users elsewhere", |
col2 => 'Rules'}], |
col2 => 'Rules'}], |
|
print => \&print_usersessions, |
|
modify => \&modify_usersessions, |
}, |
}, |
'loadbalancing' => |
'loadbalancing' => |
{text => 'Dedicated Load Balancer(s)', |
{text => 'Dedicated Load Balancer(s)', |
Line 387 sub handler {
|
Line 461 sub handler {
|
col3 => 'User affiliation', |
col3 => 'User affiliation', |
col4 => 'Overrides'}, |
col4 => 'Overrides'}, |
], |
], |
|
print => \&print_loadbalancing, |
|
modify => \&modify_loadbalancing, |
}, |
}, |
); |
); |
if (keys(%servers) > 1) { |
if (keys(%servers) > 1) { |
Line 398 sub handler {
|
Line 474 sub handler {
|
col2 => ''}, |
col2 => ''}, |
{col1 => 'Log-in Help', |
{col1 => 'Log-in Help', |
col2 => 'Value'}], |
col2 => 'Value'}], |
|
print => \&print_login, |
|
modify => \&modify_login, |
}; |
}; |
} |
} |
|
|
Line 547 sub process_changes {
|
Line 625 sub process_changes {
|
$output = &modify_quotas($r,$dom,$action,$lastactref,%domconfig); |
$output = &modify_quotas($r,$dom,$action,$lastactref,%domconfig); |
} elsif ($action eq 'requestauthor') { |
} elsif ($action eq 'requestauthor') { |
$output = &modify_quotas($r,$dom,$action,$lastactref,%domconfig); |
$output = &modify_quotas($r,$dom,$action,$lastactref,%domconfig); |
|
} elsif ($action eq 'helpsettings') { |
|
$output = &modify_helpsettings($r,$dom,$confname,%domconfig); |
} elsif ($action eq 'coursedefaults') { |
} elsif ($action eq 'coursedefaults') { |
$output = &modify_coursedefaults($dom,$lastactref,%domconfig); |
$output = &modify_coursedefaults($dom,$lastactref,%domconfig); |
|
} elsif ($action eq 'selfenrollment') { |
|
$output = &modify_selfenrollment($dom,$lastactref,%domconfig) |
} elsif ($action eq 'usersessions') { |
} elsif ($action eq 'usersessions') { |
$output = &modify_usersessions($dom,$lastactref,%domconfig); |
$output = &modify_usersessions($dom,$lastactref,%domconfig); |
} elsif ($action eq 'loadbalancing') { |
} elsif ($action eq 'loadbalancing') { |
Line 595 sub print_config_box {
|
Line 677 sub print_config_box {
|
<td class="LC_right_item"'.$rightcolspan.'>'.&mt($item->{'header'}->[0]->{'col2'}).'</td> |
<td class="LC_right_item"'.$rightcolspan.'>'.&mt($item->{'header'}->[0]->{'col2'}).'</td> |
</tr>'; |
</tr>'; |
$rowtotal ++; |
$rowtotal ++; |
if ($action eq 'autoupdate') { |
if (($action eq 'autoupdate') || ($action eq 'usercreation') || ($action eq 'selfcreation') || |
$output .= &print_autoupdate('top',$dom,$settings,\$rowtotal); |
($action eq 'usermodification') || ($action eq 'coursedefaults') || |
} elsif ($action eq 'usercreation') { |
($action eq 'selfenrollment') || ($action eq 'usersessions')) { |
$output .= &print_usercreation('top',$dom,$settings,\$rowtotal); |
$output .= $item->{'print'}->('top',$dom,$settings,\$rowtotal); |
} elsif ($action eq 'selfcreation') { |
|
$output .= &print_selfcreation('top',$dom,$settings,\$rowtotal); |
|
} elsif ($action eq 'usermodification') { |
|
$output .= &print_usermodification('top',$dom,$settings,\$rowtotal); |
|
} elsif ($action eq 'coursecategories') { |
} elsif ($action eq 'coursecategories') { |
$output .= &print_coursecategories('top',$dom,$item,$settings,\$rowtotal); |
$output .= $item->{'print'}->('top',$dom,$item,$settings,\$rowtotal); |
} elsif ($action eq 'login') { |
} elsif ($action eq 'login') { |
if ($numheaders == 3) { |
if ($numheaders == 3) { |
$colspan = ' colspan="2"'; |
$colspan = ' colspan="2"'; |
Line 612 sub print_config_box {
|
Line 690 sub print_config_box {
|
} else { |
} else { |
$output .= &print_login('page',$dom,$confname,$phase,$settings,\$rowtotal); |
$output .= &print_login('page',$dom,$confname,$phase,$settings,\$rowtotal); |
} |
} |
} elsif ($action eq 'requestcourses') { |
} elsif (($action eq 'requestcourses') || ($action eq 'requestauthor')) { |
$output .= &print_quotas($dom,$settings,\$rowtotal,$action); |
|
} elsif ($action eq 'requestauthor') { |
|
$output .= &print_quotas($dom,$settings,\$rowtotal,$action); |
$output .= &print_quotas($dom,$settings,\$rowtotal,$action); |
} elsif ($action eq 'usersessions') { |
|
$output .= &print_usersessions('top',$dom,$settings,\$rowtotal); |
|
} elsif ($action eq 'rolecolors') { |
} elsif ($action eq 'rolecolors') { |
$output .= &print_rolecolors($phase,'student',$dom,$confname,$settings,\$rowtotal); |
$output .= &print_rolecolors($phase,'student',$dom,$confname,$settings,\$rowtotal); |
} |
} |
Line 629 sub print_config_box {
|
Line 703 sub print_config_box {
|
<td> |
<td> |
<table class="LC_nested"> |
<table class="LC_nested"> |
<tr class="LC_info_row"> |
<tr class="LC_info_row"> |
<td class="LC_left_item"'.$colspan.'>'.&mt($item->{'header'}->[1]->{'col1'}).'</td>'; |
<td class="LC_left_item"'.$colspan.'>'.&mt($item->{'header'}->[1]->{'col1'}).'</td> |
$output .= ' |
|
<td class="LC_right_item"'.$colspan.'>'.&mt($item->{'header'}->[1]->{'col2'}).'</td> |
<td class="LC_right_item"'.$colspan.'>'.&mt($item->{'header'}->[1]->{'col2'}).'</td> |
</tr>'; |
</tr>'; |
$rowtotal ++; |
$rowtotal ++; |
if ($action eq 'autoupdate') { |
if (($action eq 'autoupdate') || ($action eq 'usercreation') || |
$output .= &print_autoupdate('middle',$dom,$settings,\$rowtotal).' |
($action eq 'selfcreation') || ($action eq 'selfenrollment') || |
</table> |
($action eq 'usersessions')) { |
</td> |
$output .= $item->{'print'}->('middle',$dom,$settings,\$rowtotal).' |
</tr> |
|
<tr> |
|
<td> |
|
<table class="LC_nested"> |
|
<tr class="LC_info_row"> |
|
<td class="LC_left_item"'.$colspan.'>'.&mt($item->{'header'}->[2]->{'col1'}).'</td> |
|
<td class="LC_right_item">'.&mt($item->{'header'}->[2]->{'col2'}).'</td> </tr>'. |
|
&print_autoupdate('bottom',$dom,$settings,\$rowtotal); |
|
$rowtotal ++; |
|
} elsif ($action eq 'usercreation') { |
|
$output .= &print_usercreation('middle',$dom,$settings,\$rowtotal).' |
|
</table> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td> |
|
<table class="LC_nested"> |
|
<tr class="LC_info_row"> |
|
<td class="LC_left_item"'.$colspan.'>'.&mt($item->{'header'}->[2]->{'col1'}).'</td> |
|
<td class="LC_right_item">'.&mt($item->{'header'}->[2]->{'col2'}).'</td> </tr>'. |
|
&print_usercreation('bottom',$dom,$settings,\$rowtotal); |
|
$rowtotal ++; |
|
} elsif ($action eq 'selfcreation') { |
|
$output .= &print_selfcreation('middle',$dom,$settings,\$rowtotal).' |
|
</table> |
</table> |
</td> |
</td> |
</tr> |
</tr> |
Line 671 sub print_config_box {
|
Line 720 sub print_config_box {
|
<tr class="LC_info_row"> |
<tr class="LC_info_row"> |
<td class="LC_left_item"'.$colspan.'>'.&mt($item->{'header'}->[2]->{'col1'}).'</td> |
<td class="LC_left_item"'.$colspan.'>'.&mt($item->{'header'}->[2]->{'col1'}).'</td> |
<td class="LC_right_item">'.&mt($item->{'header'}->[2]->{'col2'}).'</td> |
<td class="LC_right_item">'.&mt($item->{'header'}->[2]->{'col2'}).'</td> |
</tr>'. |
</tr>'."\n". |
&print_selfcreation('bottom',$dom,$settings,\$rowtotal); |
$item->{'print'}->('bottom',$dom,$settings,\$rowtotal); |
$rowtotal ++; |
$rowtotal ++; |
} elsif ($action eq 'usermodification') { |
} elsif (($action eq 'usermodification') || ($action eq 'coursedefaults')) { |
$output .= &print_usermodification('middle',$dom,$settings,\$rowtotal); |
$output .= $item->{'print'}->('bottom',$dom,$settings,\$rowtotal); |
} elsif ($action eq 'coursecategories') { |
} elsif ($action eq 'coursecategories') { |
$output .= &print_coursecategories('bottom',$dom,$item,$settings,\$rowtotal); |
$output .= &print_coursecategories('bottom',$dom,$item,$settings,\$rowtotal); |
} elsif ($action eq 'login') { |
} elsif ($action eq 'login') { |
Line 707 sub print_config_box {
|
Line 756 sub print_config_box {
|
<tr class="LC_info_row"> |
<tr class="LC_info_row"> |
<td class="LC_left_item"'.$colspan.'>'.&mt($item->{'header'}->[2]->{'col1'}).'</td> |
<td class="LC_left_item"'.$colspan.'>'.&mt($item->{'header'}->[2]->{'col1'}).'</td> |
<td class="LC_right_item">'.&mt($item->{'header'}->[2]->{'col2'}).'</td> </tr>'. |
<td class="LC_right_item">'.&mt($item->{'header'}->[2]->{'col2'}).'</td> </tr>'. |
&print_textbookcourses($dom,$settings,\$rowtotal); |
&print_textbookcourses($dom,$settings,\$rowtotal).' |
} elsif ($action eq 'requestauthor') { |
</table> |
$output .= &print_requestmail($dom,$action,$settings,\$rowtotal); |
</td> |
} elsif ($action eq 'usersessions') { |
</tr> |
$output .= &print_usersessions('middle',$dom,$settings,\$rowtotal).' |
<tr> |
</table> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td> |
<td> |
<table class="LC_nested"> |
<table class="LC_nested"> |
<tr class="LC_info_row"> |
<tr class="LC_info_row"> |
<td class="LC_left_item"'.$colspan.'>'.&mt($item->{'header'}->[2]->{'col1'}).'</td> |
<td class="LC_left_item"'.$colspan.' valign="top">'.&mt($item->{'header'}->[3]->{'col1'}).'</td> |
<td class="LC_right_item">'.&mt($item->{'header'}->[2]->{'col2'}).'</td> </tr>'. |
<td class="LC_right_item" valign="top">'.&mt($item->{'header'}->[3]->{'col2'}).'</td> |
&print_usersessions('bottom',$dom,$settings,\$rowtotal); |
</tr>'. |
$rowtotal ++; |
&print_validation_rows('requestcourses',$dom,$settings,\$rowtotal); |
|
} elsif ($action eq 'requestauthor') { |
|
$output .= &print_requestmail($dom,$action,$settings,\$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 801 sub print_config_box {
|
Line 848 sub print_config_box {
|
$rowtotal ++; |
$rowtotal ++; |
if ($action eq 'quotas') { |
if ($action eq 'quotas') { |
$output .= &print_quotas($dom,$settings,\$rowtotal,$action); |
$output .= &print_quotas($dom,$settings,\$rowtotal,$action); |
} elsif ($action eq 'autoenroll') { |
} elsif (($action eq 'autoenroll') || ($action eq 'autocreate') || ($action eq 'directorysrch') || |
$output .= &print_autoenroll($dom,$settings,\$rowtotal); |
($action eq 'contacts') || ($action eq 'defaults') || ($action eq 'serverstatuses') || |
} elsif ($action eq 'autocreate') { |
($action eq 'loadbalancing')) { |
$output .= &print_autocreate($dom,$settings,\$rowtotal); |
$output .= $item->{'print'}->($dom,$settings,\$rowtotal); |
} elsif ($action eq 'directorysrch') { |
|
$output .= &print_directorysrch($dom,$settings,\$rowtotal); |
|
} elsif ($action eq 'contacts') { |
|
$output .= &print_contacts($dom,$settings,\$rowtotal); |
|
} elsif ($action eq 'defaults') { |
|
$output .= &print_defaults($dom,$settings,\$rowtotal); |
|
} elsif ($action eq 'scantron') { |
} elsif ($action eq 'scantron') { |
$output .= &print_scantronformat($r,$dom,$confname,$settings,\$rowtotal); |
$output .= &print_scantronformat($r,$dom,$confname,$settings,\$rowtotal); |
} elsif ($action eq 'serverstatuses') { |
|
$output .= &print_serverstatuses($dom,$settings,\$rowtotal); |
|
} elsif ($action eq 'helpsettings') { |
} elsif ($action eq 'helpsettings') { |
$output .= &print_helpsettings($dom,$confname,$settings,\$rowtotal); |
$output .= &print_helpsettings($dom,$confname,$settings,\$rowtotal); |
} elsif ($action eq 'loadbalancing') { |
|
$output .= &print_loadbalancing($dom,$settings,\$rowtotal); |
|
} elsif ($action eq 'coursedefaults') { |
|
$output .= &print_coursedefaults('bottom',$dom,$settings,\$rowtotal); |
|
} |
} |
} |
} |
$output .= ' |
$output .= ' |
Line 1451 sub display_color_options {
|
Line 1486 sub display_color_options {
|
$datatable .= '<td class="LC_right_item">'. |
$datatable .= '<td class="LC_right_item">'. |
'<table border="0"><tr>'; |
'<table border="0"><tr>'; |
foreach my $item (@{$links}) { |
foreach my $item (@{$links}) { |
my $color = $designs->{'link'}{$item} ? $designs->{'link'}{$item} : $defaults->{'links'}{$item}; |
my $color = $designs->{'links'}{$item} ? $designs->{'links'}{$item} : $defaults->{'links'}{$item}; |
$datatable .= '<td align="center">'.$choices->{$item}."\n"; |
$datatable .= '<td align="center">'.$choices->{$item}."\n"; |
if ($designs->{'links'}{$item}) { |
if ($designs->{'links'}{$item}) { |
$datatable.=' '; |
$datatable.=' '; |
Line 2762 sub print_coursedefaults {
|
Line 2797 sub print_coursedefaults {
|
'<td class="LC_right_item"><span class="LC_nobreak">'. |
'<td class="LC_right_item"><span class="LC_nobreak">'. |
'<input type="text" name="anonsurvey_threshold"'. |
'<input type="text" name="anonsurvey_threshold"'. |
' value="'.$currdefresponder.'" size="5" /></span>'. |
' value="'.$currdefresponder.'" size="5" /></span>'. |
'</td></tr>'."\n". |
'</td></tr>'."\n"; |
'<tr><td><span class="LC_nobreak">'. |
$itemcount ++; |
$choices{'uploadquota'}. |
$css_class = $itemcount%2 ? ' class="LC_odd_row"' : ''; |
'</span></td>'. |
$datatable .= '<tr'.$css_class.'><td><span class="LC_nobreak">'. |
'<td align="right" class="LC_right_item">'. |
$choices{'uploadquota'}. |
'<table><tr>'; |
'</span></td>'. |
|
'<td align="right" class="LC_right_item">'. |
|
'<table><tr>'; |
foreach my $type (@types) { |
foreach my $type (@types) { |
$datatable .= '<td align="center">'.&mt($type).'<br />'. |
$datatable .= '<td align="center">'.&mt($type).'<br />'. |
'<input type="text" name="uploadquota_'.$type.'"'. |
'<input type="text" name="uploadquota_'.$type.'"'. |
' value="'.$curruploadquota{$type}.'" size="5" /></td>'; |
' value="'.$curruploadquota{$type}.'" size="5" /></td>'; |
} |
} |
$datatable .= '</tr></table></td></tr>'."\n"; |
$datatable .= '</tr></table></td></tr>'."\n"; |
$itemcount += 2; |
$itemcount ++; |
my $onclick = 'toggleCredits(this.form);'; |
my $onclick = 'toggleCredits(this.form);'; |
my $display = 'none'; |
my $display = 'none'; |
if ($currusecredits) { |
if ($currusecredits) { |
Line 2805 sub print_coursedefaults {
|
Line 2842 sub print_coursedefaults {
|
&radiobutton_prefs($current,\@toggles,\%defaultchecked, |
&radiobutton_prefs($current,\@toggles,\%defaultchecked, |
\%choices,$itemcount,$onclick,$additional); |
\%choices,$itemcount,$onclick,$additional); |
$datatable .= $table; |
$datatable .= $table; |
|
$itemcount ++; |
|
} |
|
$$rowtotal += $itemcount; |
|
return $datatable; |
|
} |
|
|
|
sub print_selfenrollment { |
|
my ($position,$dom,$settings,$rowtotal) = @_; |
|
my ($css_class,$datatable); |
|
my $itemcount = 1; |
|
my @types = ('official','unofficial','community','textbook'); |
|
if (($position eq 'top') || ($position eq 'middle')) { |
|
my ($rowsref,$titlesref) = &Apache::lonuserutils::get_selfenroll_titles(); |
|
my %descs = &Apache::lonuserutils::selfenroll_default_descs(); |
|
my @rows; |
|
my $key; |
|
if ($position eq 'top') { |
|
$key = 'admin'; |
|
if (ref($rowsref) eq 'ARRAY') { |
|
@rows = @{$rowsref}; |
|
} |
|
} elsif ($position eq 'middle') { |
|
$key = 'default'; |
|
@rows = ('types','registered','approval','limit'); |
|
} |
|
foreach my $row (@rows) { |
|
if (defined($titlesref->{$row})) { |
|
$itemcount ++; |
|
$css_class = $itemcount%2?' class="LC_odd_row"':''; |
|
$datatable .= '<tr'.$css_class.'>'. |
|
'<td>'.$titlesref->{$row}.'</td>'. |
|
'<td class="LC_left_item">'. |
|
'<table><tr>'; |
|
my (%current,%currentcap); |
|
if (ref($settings) eq 'HASH') { |
|
if (ref($settings->{$key}) eq 'HASH') { |
|
foreach my $type (@types) { |
|
if (ref($settings->{$key}->{$type}) eq 'HASH') { |
|
$current{$type} = $settings->{$key}->{$type}->{$row}; |
|
} |
|
if (($row eq 'limit') && ($key eq 'default')) { |
|
if (ref($settings->{$key}->{$type}) eq 'HASH') { |
|
$currentcap{$type} = $settings->{$key}->{$type}->{'cap'}; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
my %roles = ( |
|
'0' => &Apache::lonnet::plaintext('dc'), |
|
); |
|
|
|
foreach my $type (@types) { |
|
unless (($row eq 'registered') && ($key eq 'default')) { |
|
$datatable .= '<th>'.&mt($type).'</th>'; |
|
} |
|
} |
|
unless (($row eq 'registered') && ($key eq 'default')) { |
|
$datatable .= '</tr><tr>'; |
|
} |
|
foreach my $type (@types) { |
|
if ($type eq 'community') { |
|
$roles{'1'} = &mt('Community personnel'); |
|
} else { |
|
$roles{'1'} = &mt('Course personnel'); |
|
} |
|
$datatable .= '<td style="vertical-align: top">'; |
|
if ($position eq 'top') { |
|
my %checked; |
|
if ($current{$type} eq '0') { |
|
$checked{'0'} = ' checked="checked"'; |
|
} else { |
|
$checked{'1'} = ' checked="checked"'; |
|
} |
|
foreach my $role ('1','0') { |
|
$datatable .= '<span class="LC_nobreak"><label>'. |
|
'<input type="radio" name="selfenrolladmin_'.$row.'_'.$type.'" '. |
|
'value="'.$role.'"'.$checked{$role}.' />'. |
|
$roles{$role}.'</label></span> '; |
|
} |
|
} else { |
|
if ($row eq 'types') { |
|
my %checked; |
|
if ($current{$type} =~ /^(all|dom)$/) { |
|
$checked{$1} = ' checked="checked"'; |
|
} else { |
|
$checked{''} = ' checked="checked"'; |
|
} |
|
foreach my $val ('','dom','all') { |
|
$datatable .= '<span class="LC_nobreak"><label>'. |
|
'<input type ="radio" name="selfenrolldefault_'.$row.'_'.$type.'" '. |
|
'value="'.$val.'"'.$checked{$val}.' />'.$descs{$row}{$val}.'</label></span> '; |
|
} |
|
} elsif ($row eq 'registered') { |
|
my %checked; |
|
if ($current{$type} eq '1') { |
|
$checked{'1'} = ' checked="checked"'; |
|
} else { |
|
$checked{'0'} = ' checked="checked"'; |
|
} |
|
foreach my $val ('0','1') { |
|
$datatable .= '<span class="LC_nobreak"><label>'. |
|
'<input type ="radio" name="selfenrolldefault_'.$row.'_'.$type.'" '. |
|
'value="'.$val.'"'.$checked{$val}.' />'.$descs{$row}{$val}.'</label></span> '; |
|
} |
|
} elsif ($row eq 'approval') { |
|
my %checked; |
|
if ($current{$type} =~ /^([12])$/) { |
|
$checked{$1} = ' checked="checked"'; |
|
} else { |
|
$checked{'0'} = ' checked="checked"'; |
|
} |
|
for my $val (0..2) { |
|
$datatable .= '<span class="LC_nobreak"><label>'. |
|
'<input type="radio" name="selfenrolldefault_'.$row.'_'.$type.'" '. |
|
'value="'.$val.'"'.$checked{$val}.' />'.$descs{$row}{$val}.'</label></span> '; |
|
} |
|
} elsif ($row eq 'limit') { |
|
my %checked; |
|
if ($current{$type} =~ /^(allstudents|selfenrolled)$/) { |
|
$checked{$1} = ' checked="checked"'; |
|
} else { |
|
$checked{'none'} = ' checked="checked"'; |
|
} |
|
my $cap; |
|
if ($currentcap{$type} =~ /^\d+$/) { |
|
$cap = $currentcap{$type}; |
|
} |
|
foreach my $val ('none','allstudents','selfenrolled') { |
|
$datatable .= '<span class="LC_nobreak"><label>'. |
|
'<input type="radio" name="selfenrolldefault_'.$row.'_'.$type.'" '. |
|
'value="'.$val.'"'.$checked{$val}.' />'.$descs{$row}{$val}.'</label></span> '; |
|
} |
|
$datatable .= '<br />'. |
|
'<span class="LC_nobreak">'.&mt('Maximum allowed: '). |
|
'<input type="text" name="selfenrolldefault_cap_'.$type.'" size = "5" value="'.$cap.'" />'. |
|
'</span>'; |
|
} |
|
} |
|
$datatable .= '</td>'; |
|
} |
|
$datatable .= '</tr>'; |
|
} |
|
$datatable .= '</table></td></tr>'; |
|
} |
|
} elsif ($position eq 'bottom') { |
|
$datatable .= &print_validation_rows('selfenroll',$dom,$settings,\$itemcount); |
} |
} |
$$rowtotal += $itemcount; |
$$rowtotal += $itemcount; |
return $datatable; |
return $datatable; |
} |
} |
|
|
|
sub print_validation_rows { |
|
my ($caller,$dom,$settings,$rowtotal) = @_; |
|
my ($itemsref,$namesref,$fieldsref); |
|
if ($caller eq 'selfenroll') { |
|
($itemsref,$namesref,$fieldsref) = &Apache::lonuserutils::selfenroll_validation_types(); |
|
} elsif ($caller eq 'requestcourses') { |
|
($itemsref,$namesref,$fieldsref) = &Apache::loncoursequeueadmin::requestcourses_validation_types(); |
|
} |
|
my %currvalidation; |
|
if (ref($settings) eq 'HASH') { |
|
if (ref($settings->{'validation'}) eq 'HASH') { |
|
%currvalidation = %{$settings->{'validation'}}; |
|
} |
|
} |
|
my $datatable; |
|
my $itemcount = 0; |
|
foreach my $item (@{$itemsref}) { |
|
my $css_class = $itemcount%2 ? ' class="LC_odd_row"' : ''; |
|
$datatable .= '<tr'.$css_class.'><td><span class="LC_nobreak">'. |
|
$namesref->{$item}. |
|
'</span></td>'. |
|
'<td class="LC_left_item">'; |
|
if (($item eq 'url') || ($item eq 'button')) { |
|
$datatable .= '<span class="LC_nobreak">'. |
|
'<input type="text" name="'.$caller.'_validation_'.$item.'"'. |
|
' value="'.$currvalidation{$item}.'" size="50" /></span>'; |
|
} elsif ($item eq 'fields') { |
|
my @currfields; |
|
if (ref($currvalidation{$item}) eq 'ARRAY') { |
|
@currfields = @{$currvalidation{$item}}; |
|
} |
|
foreach my $field (@{$fieldsref}) { |
|
my $check = ''; |
|
if (grep(/^\Q$field\E$/,@currfields)) { |
|
$check = ' checked="checked"'; |
|
} |
|
$datatable .= '<span class="LC_nobreak"><label>'. |
|
'<input type="checkbox" name="'.$caller.'_validation_fields"'. |
|
' value="'.$field.'"'.$check.' />'.$field. |
|
'</label></span> '; |
|
} |
|
} elsif ($item eq 'markup') { |
|
$datatable .= '<textarea name="'.$caller.'_validation_markup" cols="50" rows="5" wrap="soft">'. |
|
$currvalidation{$item}. |
|
'</textarea>'; |
|
} |
|
$datatable .= '</td></tr>'."\n"; |
|
if (ref($rowtotal)) { |
|
$itemcount ++; |
|
} |
|
} |
|
if ($caller eq 'requestcourses') { |
|
my %currhash; |
|
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); |
|
if ($numdc > 1) { |
|
$datatable .= '</td></tr><tr class="LC_odd_row"><td>'. |
|
&mt('Course creation processed as: (choose Dom. Coord.)'). |
|
'</td><td class="LC_left_item">'.$dctable.'</td></tr>'; |
|
} else { |
|
$datatable .= $dctable.'</td></tr>'; |
|
} |
|
$itemcount ++; |
|
} |
|
if (ref($rowtotal)) { |
|
$$rowtotal += $itemcount; |
|
} |
|
return $datatable; |
|
} |
|
|
sub print_usersessions { |
sub print_usersessions { |
my ($position,$dom,$settings,$rowtotal) = @_; |
my ($position,$dom,$settings,$rowtotal) = @_; |
my ($css_class,$datatable,%checked,%choices); |
my ($css_class,$datatable,%checked,%choices); |
Line 3792 sub print_selfcreation {
|
Line 4052 sub print_selfcreation {
|
($datatable,$itemcount) = &radiobutton_prefs(\%radiohash,\@toggles,\%defaultchecked, |
($datatable,$itemcount) = &radiobutton_prefs(\%radiohash,\@toggles,\%defaultchecked, |
\%choices,$itemcount,$onclick); |
\%choices,$itemcount,$onclick); |
$$rowtotal += $itemcount; |
$$rowtotal += $itemcount; |
|
|
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); |
|
|
if (ref($usertypes) eq 'HASH') { |
if (ref($usertypes) eq 'HASH') { |
Line 4051 sub print_usermodification {
|
Line 4311 sub print_usermodification {
|
$$rowtotal ++; |
$$rowtotal ++; |
$rowcount ++; |
$rowcount ++; |
} |
} |
} elsif ($position eq 'middle') { |
} elsif ($position eq 'bottom') { |
$context = 'course'; |
$context = 'course'; |
$rowcount = 0; |
$rowcount = 0; |
foreach my $role ('st','ep','ta','in','cr') { |
foreach my $role ('st','ep','ta','in','cr') { |
Line 4609 sub serverstatus_pages {
|
Line 4869 sub serverstatus_pages {
|
return ('userstatus','lonstatus','loncron','server-status','codeversions', |
return ('userstatus','lonstatus','loncron','server-status','codeversions', |
'checksums','clusterstatus','metadata_keywords','metadata_harvest', |
'checksums','clusterstatus','metadata_keywords','metadata_harvest', |
'takeoffline','takeonline','showenv','toggledebug','ping','domconf', |
'takeoffline','takeonline','showenv','toggledebug','ping','domconf', |
'uniquecodes'); |
'uniquecodes','diskusage'); |
} |
} |
|
|
sub coursecategories_javascript { |
sub coursecategories_javascript { |
Line 4895 sub modifiable_userdata_row {
|
Line 5155 sub modifiable_userdata_row {
|
if ($statustype) { |
if ($statustype) { |
if (ref($settings->{$context}->{$role}->{$statustype}) eq 'HASH') { |
if (ref($settings->{$context}->{$role}->{$statustype}) eq 'HASH') { |
$hashref = $settings->{$context}->{$role}->{$statustype}; |
$hashref = $settings->{$context}->{$role}->{$statustype}; |
if (ref($hashref) eq 'HASH') { |
if (ref($hashref) eq 'HASH') { |
foreach my $field (@fields) { |
foreach my $field (@fields) { |
if ($hashref->{$field}) { |
if ($hashref->{$field}) { |
$checks{$field} = $hashref->{$field}; |
$checks{$field} = $hashref->{$field}; |
Line 4916 sub modifiable_userdata_row {
|
Line 5176 sub modifiable_userdata_row {
|
} |
} |
} |
} |
} |
} |
|
|
for (my $i=0; $i<@fields; $i++) { |
for (my $i=0; $i<@fields; $i++) { |
my $rem = $i%($numinrow); |
my $rem = $i%($numinrow); |
if ($rem == 0) { |
if ($rem == 0) { |
Line 4932 sub modifiable_userdata_row {
|
Line 5192 sub modifiable_userdata_row {
|
} else { |
} else { |
if ($role eq 'st') { |
if ($role eq 'st') { |
if (ref($settings) ne 'HASH') { |
if (ref($settings) ne 'HASH') { |
$check = ' checked="checked" '; |
$check = ' checked="checked" '; |
} |
} |
} |
} |
} |
} |
Line 5560 sub modify_colors {
|
Line 5820 sub modify_colors {
|
} |
} |
if ($role eq 'login') { |
if ($role eq 'login') { |
foreach my $item (@logintext) { |
foreach my $item (@logintext) { |
unless ($env{'form.'.$role.'_'.$item} eq $defaults{'logintext'}{$item}) { |
$env{'form.'.$role.'_'.$item} = lc($env{'form.'.$role.'_'.$item}); |
|
if ($env{'form.'.$role.'_'.$item} =~ /^\w+/) { |
|
$env{'form.'.$role.'_'.$item} = '#'.$env{'form.'.$role.'_'.$item}; |
|
} |
|
unless ($env{'form.'.$role.'_'.$item} eq lc($defaults{'logintext'}{$item})) { |
$confhash->{$role}{$item} = $env{'form.'.$role.'_'.$item}; |
$confhash->{$role}{$item} = $env{'form.'.$role.'_'.$item}; |
} |
} |
} |
} |
} else { |
} else { |
unless($env{'form.'.$role.'_fontmenu'} eq $defaults{'fontmenu'}) { |
$env{'form.'.$role.'_fontmenu'} = lc($env{'form.'.$role.'_fontmenu'}); |
|
if ($env{'form.'.$role.'_fontmenu'} =~ /^\w+/) { |
|
$env{'form.'.$role.'_fontmenu'} = '#'.$env{'form.'.$role.'_fontmenu'}; |
|
} |
|
unless($env{'form.'.$role.'_fontmenu'} eq lc($defaults{'fontmenu'})) { |
$confhash->{$role}{'fontmenu'} = $env{'form.'.$role.'_fontmenu'}; |
$confhash->{$role}{'fontmenu'} = $env{'form.'.$role.'_fontmenu'}; |
} |
} |
} |
} |
foreach my $item (@bgs) { |
foreach my $item (@bgs) { |
unless ($env{'form.'.$role.'_'.$item} eq $defaults{'bgs'}{$item} ) { |
$env{'form.'.$role.'_'.$item} = lc($env{'form.'.$role.'_'.$item}); |
|
if ($env{'form.'.$role.'_'.$item} =~ /^\w+/) { |
|
$env{'form.'.$role.'_'.$item} = '#'.$env{'form.'.$role.'_'.$item}; |
|
} |
|
unless ($env{'form.'.$role.'_'.$item} eq lc($defaults{'bgs'}{$item})) { |
$confhash->{$role}{$item} = $env{'form.'.$role.'_'.$item}; |
$confhash->{$role}{$item} = $env{'form.'.$role.'_'.$item}; |
} |
} |
} |
} |
foreach my $item (@links) { |
foreach my $item (@links) { |
unless ($env{'form.'.$role.'_'.$item} eq $defaults{'links'}{$item}) { |
$env{'form.'.$role.'_'.$item} = lc($env{'form.'.$role.'_'.$item}); |
|
if ($env{'form.'.$role.'_'.$item} =~ /^\w+/) { |
|
$env{'form.'.$role.'_'.$item} = '#'.$env{'form.'.$role.'_'.$item}; |
|
} |
|
unless ($env{'form.'.$role.'_'.$item} eq lc($defaults{'links'}{$item})) { |
$confhash->{$role}{$item} = $env{'form.'.$role.'_'.$item}; |
$confhash->{$role}{$item} = $env{'form.'.$role.'_'.$item}; |
} |
} |
} |
} |
Line 6197 sub modify_quotas {
|
Line 6473 sub modify_quotas {
|
my ($r,$dom,$action,$lastactref,%domconfig) = @_; |
my ($r,$dom,$action,$lastactref,%domconfig) = @_; |
my ($context,@usertools,@options,%validations,%titles,%confhash,%toolshash, |
my ($context,@usertools,@options,%validations,%titles,%confhash,%toolshash, |
%limithash,$toolregexp,%conditions,$resulttext,%changes,$confname,$configuserok, |
%limithash,$toolregexp,%conditions,$resulttext,%changes,$confname,$configuserok, |
$author_ok,$switchserver,$errors); |
$author_ok,$switchserver,$errors,$validationitemsref,$validationnamesref, |
|
$validationfieldsref); |
if ($action eq 'quotas') { |
if ($action eq 'quotas') { |
$context = 'tools'; |
$context = 'tools'; |
} else { |
} else { |
Line 6213 sub modify_quotas {
|
Line 6490 sub modify_quotas {
|
$confname = $dom.'-domainconfig'; |
$confname = $dom.'-domainconfig'; |
my $servadm = $r->dir_config('lonAdmEMail'); |
my $servadm = $r->dir_config('lonAdmEMail'); |
($configuserok,$author_ok,$switchserver) = &config_check($dom,$confname,$servadm); |
($configuserok,$author_ok,$switchserver) = &config_check($dom,$confname,$servadm); |
|
($validationitemsref,$validationnamesref,$validationfieldsref) = |
|
&Apache::loncoursequeueadmin::requestcourses_validation_types(); |
} elsif ($context eq 'requestauthor') { |
} elsif ($context eq 'requestauthor') { |
@usertools = ('author'); |
@usertools = ('author'); |
%titles = &authorrequest_titles(); |
%titles = &authorrequest_titles(); |
Line 6280 sub modify_quotas {
|
Line 6559 sub modify_quotas {
|
'</span></li>'; |
'</span></li>'; |
} |
} |
} |
} |
|
|
} |
} |
if (ref($domconfig{$action}) eq 'HASH') { |
if (ref($domconfig{$action}) eq 'HASH') { |
if (ref($domconfig{$action}{'notify'}) eq 'HASH') { |
if (ref($domconfig{$action}{'notify'}) eq 'HASH') { |
Line 6386 sub modify_quotas {
|
Line 6666 sub modify_quotas {
|
} |
} |
if ($env{'form.addbook_image.filename'} ne '') { |
if ($env{'form.addbook_image.filename'} ne '') { |
my ($cdom,$cnum) = split(/_/,$newbook); |
my ($cdom,$cnum) = split(/_/,$newbook); |
my ($imageurl,$error) = |
my ($imageurl,$error) = |
&process_textbook_image($r,$dom,$confname,'addbook_image',$cdom,$cnum,$configuserok, |
&process_textbook_image($r,$dom,$confname,'addbook_image',$cdom,$cnum,$configuserok, |
$switchserver,$author_ok); |
$switchserver,$author_ok); |
if ($imageurl) { |
if ($imageurl) { |
Line 6416 sub modify_quotas {
|
Line 6696 sub modify_quotas {
|
} |
} |
} |
} |
} |
} |
|
if (ref($validationitemsref) eq 'ARRAY') { |
|
foreach my $item (@{$validationitemsref}) { |
|
if ($item eq 'fields') { |
|
my @changed; |
|
@{$confhash{'validation'}{$item}} = &Apache::loncommon::get_env_multiple('form.requestcourses_validation_'.$item); |
|
if (@{$confhash{'validation'}{$item}} > 0) { |
|
@{$confhash{'validation'}{$item}} = sort(@{$confhash{'validation'}{$item}}); |
|
} |
|
if (ref($domconfig{'requestcourses'}{'validation'}) eq 'HASH') { |
|
if (ref($domconfig{'requestcourses'}{'validation'}{$item}) eq 'ARRAY') { |
|
@changed = &Apache::loncommon::compare_arrays($confhash{'validation'}{$item}, |
|
$domconfig{'requestcourses'}{'validation'}{$item}); |
|
} else { |
|
@changed = @{$confhash{'validation'}{$item}}; |
|
} |
|
} else { |
|
@changed = @{$confhash{'validation'}{$item}}; |
|
} |
|
if (@changed) { |
|
if ($confhash{'validation'}{$item}) { |
|
$changes{'validation'}{$item} = join(', ',@{$confhash{'validation'}{$item}}); |
|
} else { |
|
$changes{'validation'}{$item} = &mt('None'); |
|
} |
|
} |
|
} else { |
|
$confhash{'validation'}{$item} = $env{'form.requestcourses_validation_'.$item}; |
|
if ($item eq 'markup') { |
|
if ($env{'form.requestcourses_validation_'.$item}) { |
|
$env{'form.requestcourses_validation_'.$item} =~ s/[\n\r\f]+/\s/gs; |
|
} |
|
} |
|
if (ref($domconfig{'requestcourses'}{'validation'}) eq 'HASH') { |
|
if ($domconfig{'requestcourses'}{'validation'}{$item} ne $confhash{'validation'}{$item}) { |
|
$changes{'validation'}{$item} = $confhash{'validation'}{$item}; |
|
} |
|
} else { |
|
if ($confhash{'validation'}{$item} ne '') { |
|
$changes{'validation'}{$item} = $confhash{'validation'}{$item}; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
if ($env{'form.validationdc'}) { |
|
my $newval = $env{'form.validationdc'}; |
|
my %domcoords = &get_active_dcs($dom); |
|
if (exists($domcoords{$newval})) { |
|
$confhash{'validation'}{'dc'} = $newval; |
|
} |
|
} |
|
if (ref($confhash{'validation'}) eq 'HASH') { |
|
if (ref($domconfig{'requestcourses'}{'validation'}) eq 'HASH') { |
|
if ($domconfig{'requestcourses'}{'validation'}{'dc'}) { |
|
unless ($confhash{'validation'}{'dc'} eq $domconfig{'requestcourses'}{'validation'}{'dc'}) { |
|
if ($confhash{'validation'}{'dc'} eq '') { |
|
$changes{'validation'}{'dc'} = &mt('None'); |
|
} else { |
|
$changes{'validation'}{'dc'} = $confhash{'validation'}{'dc'}; |
|
} |
|
} |
|
} elsif ($confhash{'validation'}{'dc'} ne '') { |
|
$changes{'validation'}{'dc'} = $confhash{'validation'}{'dc'}; |
|
} |
|
} elsif ($confhash{'validation'}{'dc'} ne '') { |
|
$changes{'validation'}{'dc'} = $confhash{'validation'}{'dc'}; |
|
} |
|
} elsif (ref($domconfig{'requestcourses'}{'validation'}) eq 'HASH') { |
|
if ($domconfig{'requestcourses'}{'validation'}{'dc'}) { |
|
$changes{'validation'}{'dc'} = &mt('None'); |
|
} |
|
} |
} |
} |
} else { |
} else { |
$confhash{'defaultquota'}{'default'} = $env{'form.defaultquota'}; |
$confhash{'defaultquota'}{'default'} = $env{'form.defaultquota'}; |
Line 6731 sub modify_quotas {
|
Line 7083 sub modify_quotas {
|
} |
} |
$resulttext .= '</ul></li>'; |
$resulttext .= '</ul></li>'; |
} |
} |
|
if (ref($changes{'validation'}) eq 'HASH') { |
|
if ((ref($validationitemsref) eq 'ARRAY') && (ref($validationnamesref) eq 'HASH')) { |
|
$resulttext .= '<li>'.&mt('Validation of courses/communities updated').'<ul>'; |
|
foreach my $item (@{$validationitemsref}) { |
|
if (exists($changes{'validation'}{$item})) { |
|
if ($item eq 'markup') { |
|
$resulttext .= '<li>'.&mt('[_1] set to: [_2]',$validationnamesref->{$item}, |
|
'<br /><pre>'.$changes{'validation'}{$item}.'</pre>').'</li>'; |
|
} else { |
|
$resulttext .= '<li>'.&mt('[_1] set to: [_2]',$validationnamesref->{$item}, |
|
'<b>'.$changes{'validation'}{$item}.'</b>').'</li>'; |
|
} |
|
} |
|
} |
|
if (exists($changes{'validation'}{'dc'})) { |
|
$resulttext .= '<li>'.&mt('Validated course requests identified as processed by: [_1]', |
|
'<b>'.$changes{'validation'}{'dc'}.'</b>').'</li>'; |
|
} |
|
} |
|
} |
} |
} |
$resulttext .= '</ul>'; |
$resulttext .= '</ul>'; |
if (keys(%newenv)) { |
if (keys(%newenv)) { |
Line 7768 sub modify_selfcreation {
|
Line 8140 sub modify_selfcreation {
|
# value set to one), if self-creation with e-mail address permitted, where $type is user type: faculty, staff, student etc. |
# value set to one), if self-creation with e-mail address permitted, where $type is user type: faculty, staff, student etc. |
# |
# |
if (($env{'form.cancreate_email'} eq 'email') || ($env{'form.cancreate_email'} eq 'emailapproval')) { |
if (($env{'form.cancreate_email'} eq 'email') || ($env{'form.cancreate_email'} eq 'emailapproval')) { |
push(@contexts,'emailusername'); |
push(@contexts,'emailusername'); |
if (ref($types) eq 'ARRAY') { |
if (ref($types) eq 'ARRAY') { |
foreach my $type (@{$types}) { |
foreach my $type (@{$types}) { |
if (ref($infofields) eq 'ARRAY') { |
if (ref($infofields) eq 'ARRAY') { |
Line 9036 sub modify_coursedefaults {
|
Line 9408 sub modify_coursedefaults {
|
} |
} |
} |
} |
} |
} |
|
|
my $officialcreds = $env{'form.official_credits'}; |
my $officialcreds = $env{'form.official_credits'}; |
$officialcreds =~ s/[^\d.]+//g; |
$officialcreds =~ s/[^\d.]+//g; |
my $unofficialcreds = $env{'form.unofficial_credits'}; |
my $unofficialcreds = $env{'form.unofficial_credits'}; |
Line 9063 sub modify_coursedefaults {
|
Line 9436 sub modify_coursedefaults {
|
if ($putresult eq 'ok') { |
if ($putresult eq 'ok') { |
if (keys(%changes) > 0) { |
if (keys(%changes) > 0) { |
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1); |
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1); |
if (($changes{'canuse_pdfforms'}) || ($changes{'coursecredits'}) || ($changes{'uploadquota'})) { |
if (($changes{'canuse_pdfforms'}) || ($changes{'coursecredits'}) || |
|
($changes{'uploadquota'})) { |
if ($changes{'canuse_pdfforms'}) { |
if ($changes{'canuse_pdfforms'}) { |
$domdefaults{'canuse_pdfforms'}=$defaultshash{'coursedefaults'}{'canuse_pdfforms'}; |
$domdefaults{'canuse_pdfforms'}=$defaultshash{'coursedefaults'}{'canuse_pdfforms'}; |
} |
} |
Line 9143 sub modify_coursedefaults {
|
Line 9517 sub modify_coursedefaults {
|
return $resulttext; |
return $resulttext; |
} |
} |
|
|
|
sub modify_selfenrollment { |
|
my ($dom,$lastactref,%domconfig) = @_; |
|
my ($resulttext,$errors,%changes,%selfenrollhash,%ordered); |
|
my @types = ('official','unofficial','community','textbook'); |
|
my %titles = &tool_titles(); |
|
my %descs = &Apache::lonuserutils::selfenroll_default_descs(); |
|
($ordered{'admin'},my $titlesref) = &Apache::lonuserutils::get_selfenroll_titles(); |
|
$ordered{'default'} = ['types','registered','approval','limit']; |
|
|
|
my (%roles,%shown,%toplevel); |
|
$roles{'0'} = &Apache::lonnet::plaintext('dc'); |
|
|
|
if (ref($domconfig{'selfenrollment'}) ne 'HASH') { |
|
if ($domconfig{'selfenrollment'} eq '') { |
|
$domconfig{'selfenrollment'} = {}; |
|
} |
|
} |
|
%toplevel = ( |
|
admin => 'Configuration Rights', |
|
default => 'Default settings', |
|
validation => 'Validation of self-enrollment requests', |
|
); |
|
my ($itemsref,$namesref,$fieldsref) = &Apache::lonuserutils::selfenroll_validation_types(); |
|
|
|
if (ref($ordered{'admin'}) eq 'ARRAY') { |
|
foreach my $item (@{$ordered{'admin'}}) { |
|
foreach my $type (@types) { |
|
if ($env{'form.selfenrolladmin_'.$item.'_'.$type}) { |
|
$selfenrollhash{'admin'}{$type}{$item} = 1; |
|
} else { |
|
$selfenrollhash{'admin'}{$type}{$item} = 0; |
|
} |
|
if (ref($domconfig{'selfenrollment'}{'admin'}) eq 'HASH') { |
|
if (ref($domconfig{'selfenrollment'}{'admin'}{$type}) eq 'HASH') { |
|
if ($selfenrollhash{'admin'}{$type}{$item} ne |
|
$domconfig{'selfenrollment'}{'admin'}{$type}{$item}) { |
|
push(@{$changes{'admin'}{$type}},$item); |
|
} |
|
} else { |
|
if (!$selfenrollhash{'admin'}{$type}{$item}) { |
|
push(@{$changes{'admin'}{$type}},$item); |
|
} |
|
} |
|
} elsif (!$selfenrollhash{'admin'}{$type}{$item}) { |
|
push(@{$changes{'admin'}{$type}},$item); |
|
} |
|
} |
|
} |
|
} |
|
|
|
foreach my $item (@{$ordered{'default'}}) { |
|
foreach my $type (@types) { |
|
my $value = $env{'form.selfenrolldefault_'.$item.'_'.$type}; |
|
if ($item eq 'types') { |
|
unless (($value eq 'all') || ($value eq 'dom')) { |
|
$value = ''; |
|
} |
|
} elsif ($item eq 'registered') { |
|
unless ($value eq '1') { |
|
$value = 0; |
|
} |
|
} elsif ($item eq 'approval') { |
|
unless ($value =~ /^[012]$/) { |
|
$value = 0; |
|
} |
|
} else { |
|
unless (($value eq 'allstudents') || ($value eq 'selfenrolled')) { |
|
$value = 'none'; |
|
} |
|
} |
|
$selfenrollhash{'default'}{$type}{$item} = $value; |
|
if (ref($domconfig{'selfenrollment'}{'default'}) eq 'HASH') { |
|
if (ref($domconfig{'selfenrollment'}{'default'}{$type}) eq 'HASH') { |
|
if ($selfenrollhash{'default'}{$type}{$item} ne |
|
$domconfig{'selfenrollment'}{'default'}{$type}{$item}) { |
|
push(@{$changes{'default'}{$type}},$item); |
|
} |
|
} else { |
|
push(@{$changes{'default'}{$type}},$item); |
|
} |
|
} else { |
|
push(@{$changes{'default'}{$type}},$item); |
|
} |
|
if ($item eq 'limit') { |
|
if (($value eq 'allstudents') || ($value eq 'selfenrolled')) { |
|
$env{'form.selfenrolldefault_cap_'.$type} =~ s/\D//g; |
|
if ($env{'form.selfenrolldefault_cap_'.$type} ne '') { |
|
$selfenrollhash{'default'}{$type}{'cap'} = $env{'form.selfenrolldefault_cap_'.$type}; |
|
} |
|
} else { |
|
$selfenrollhash{'default'}{$type}{'cap'} = ''; |
|
} |
|
if (ref($domconfig{'selfenrollment'}{'default'}{$type}) eq 'HASH') { |
|
if ($selfenrollhash{'default'}{$type}{'cap'} ne |
|
$domconfig{'selfenrollment'}{'admin'}{$type}{'cap'}) { |
|
push(@{$changes{'default'}{$type}},'cap'); |
|
} |
|
} elsif ($selfenrollhash{'default'}{$type}{'cap'} ne '') { |
|
push(@{$changes{'default'}{$type}},'cap'); |
|
} |
|
} |
|
} |
|
} |
|
|
|
foreach my $item (@{$itemsref}) { |
|
if ($item eq 'fields') { |
|
my @changed; |
|
@{$selfenrollhash{'validation'}{$item}} = &Apache::loncommon::get_env_multiple('form.selfenroll_validation_'.$item); |
|
if (@{$selfenrollhash{'validation'}{$item}} > 0) { |
|
@{$selfenrollhash{'validation'}{$item}} = sort(@{$selfenrollhash{'validation'}{$item}}); |
|
} |
|
if (ref($domconfig{'selfenrollment'}{'validation'}) eq 'HASH') { |
|
if (ref($domconfig{'selfenrollment'}{'validation'}{$item}) eq 'ARRAY') { |
|
@changed = &Apache::loncommon::compare_arrays($selfenrollhash{'validation'}{$item}, |
|
$domconfig{'selfenrollment'}{'validation'}{$item}); |
|
} else { |
|
@changed = @{$selfenrollhash{'validation'}{$item}}; |
|
} |
|
} else { |
|
@changed = @{$selfenrollhash{'validation'}{$item}}; |
|
} |
|
if (@changed) { |
|
if ($selfenrollhash{'validation'}{$item}) { |
|
$changes{'validation'}{$item} = join(', ',@{$selfenrollhash{'validation'}{$item}}); |
|
} else { |
|
$changes{'validation'}{$item} = &mt('None'); |
|
} |
|
} |
|
} else { |
|
$selfenrollhash{'validation'}{$item} = $env{'form.selfenroll_validation_'.$item}; |
|
if ($item eq 'markup') { |
|
if ($env{'form.selfenroll_validation_'.$item}) { |
|
$env{'form.selfenroll_validation_'.$item} =~ s/[\n\r\f]+/\s/gs; |
|
} |
|
} |
|
if (ref($domconfig{'selfenrollment'}{'validation'}) eq 'HASH') { |
|
if ($domconfig{'selfenrollment'}{'validation'}{$item} ne $selfenrollhash{'validation'}{$item}) { |
|
$changes{'validation'}{$item} = $selfenrollhash{'validation'}{$item}; |
|
} |
|
} |
|
} |
|
} |
|
|
|
my $putresult = &Apache::lonnet::put_dom('configuration',{'selfenrollment' => \%selfenrollhash}, |
|
$dom); |
|
if ($putresult eq 'ok') { |
|
if (keys(%changes) > 0) { |
|
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1); |
|
$resulttext = &mt('Changes made:').'<ul>'; |
|
foreach my $key ('admin','default','validation') { |
|
if (ref($changes{$key}) eq 'HASH') { |
|
$resulttext .= '<li>'.$toplevel{$key}.'<ul>'; |
|
if ($key eq 'validation') { |
|
foreach my $item (@{$itemsref}) { |
|
if (exists($changes{$key}{$item})) { |
|
if ($item eq 'markup') { |
|
$resulttext .= '<li>'.&mt('[_1] set to: [_2]',$namesref->{$item}, |
|
'<br /><pre>'.$changes{$key}{$item}.'</pre>').'</li>'; |
|
} else { |
|
$resulttext .= '<li>'.&mt('[_1] set to: [_2]',$namesref->{$item}, |
|
'<b>'.$changes{$key}{$item}.'</b>').'</li>'; |
|
} |
|
} |
|
} |
|
} else { |
|
foreach my $type (@types) { |
|
if ($type eq 'community') { |
|
$roles{'1'} = &mt('Community personnel'); |
|
} else { |
|
$roles{'1'} = &mt('Course personnel'); |
|
} |
|
if (ref($changes{$key}{$type}) eq 'ARRAY') { |
|
if (ref($selfenrollhash{$key}{$type}) eq 'HASH') { |
|
if ($key eq 'admin') { |
|
my @mgrdc = (); |
|
if (ref($ordered{$key}) eq 'ARRAY') { |
|
foreach my $item (@{$ordered{'admin'}}) { |
|
if (ref($selfenrollhash{$key}{$type}) eq 'HASH') { |
|
if ($selfenrollhash{$key}{$type}{$item} eq '0') { |
|
push(@mgrdc,$item); |
|
} |
|
} |
|
} |
|
if (@mgrdc) { |
|
$domdefaults{$type.'selfenrolladmdc'} = join(',',@mgrdc); |
|
} else { |
|
delete($domdefaults{$type.'selfenrolladmdc'}); |
|
} |
|
} |
|
} else { |
|
if (ref($ordered{$key}) eq 'ARRAY') { |
|
foreach my $item (@{$ordered{$key}}) { |
|
if (grep(/^\Q$item\E$/,@{$changes{$key}{$type}})) { |
|
$domdefaults{$type.'selfenroll'.$item} = |
|
$selfenrollhash{$key}{$type}{$item}; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
$resulttext .= '<li>'.$titles{$type}.'<ul>'; |
|
foreach my $item (@{$ordered{$key}}) { |
|
if (grep(/^\Q$item\E$/,@{$changes{$key}{$type}})) { |
|
$resulttext .= '<li>'; |
|
if ($key eq 'admin') { |
|
$resulttext .= &mt('[_1] -- management by: [_2]',$titlesref->{$item}, |
|
'<b>'.$roles{$selfenrollhash{'admin'}{$type}{$item}}.'</b>'); |
|
} else { |
|
$resulttext .= &mt('[_1] set to: [_2]',$titlesref->{$item}, |
|
'<b>'.$descs{$item}{$selfenrollhash{'default'}{$type}{$item}}.'</b>'); |
|
} |
|
$resulttext .= '</li>'; |
|
} |
|
} |
|
$resulttext .= '</ul></li>'; |
|
} |
|
} |
|
$resulttext .= '</ul></li>'; |
|
} |
|
} |
|
if ((exists($changes{'admin'})) || (exists($changes{'default'}))) { |
|
my $cachetime = 24*60*60; |
|
&Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime); |
|
if (ref($lastactref) eq 'HASH') { |
|
$lastactref->{'domdefaults'} = 1; |
|
} |
|
} |
|
} |
|
$resulttext .= '</ul>'; |
|
} else { |
|
$resulttext = &mt('No changes made to self-enrollment settings'); |
|
} |
|
} else { |
|
$resulttext = '<span class="LC_error">'. |
|
&mt('An error occurred: [_1]',$putresult).'</span>'; |
|
} |
|
return $resulttext; |
|
} |
|
|
sub modify_usersessions { |
sub modify_usersessions { |
my ($dom,$lastactref,%domconfig) = @_; |
my ($dom,$lastactref,%domconfig) = @_; |
my @hostingtypes = ('version','excludedomain','includedomain'); |
my @hostingtypes = ('version','excludedomain','includedomain'); |
Line 9675 sub get_active_dcs {
|
Line 10288 sub get_active_dcs {
|
|
|
sub active_dc_picker { |
sub active_dc_picker { |
my ($dom,$numinrow,$inputtype,$name,%currhash) = @_; |
my ($dom,$numinrow,$inputtype,$name,%currhash) = @_; |
my %domcoords = &get_active_dcs($dom); |
my %domcoords = &get_active_dcs($dom); |
my @domcoord = keys(%domcoords); |
my @domcoord = keys(%domcoords); |
if (keys(%currhash)) { |
if (keys(%currhash)) { |
foreach my $dc (keys(%currhash)) { |
foreach my $dc (keys(%currhash)) { |