--- loncom/interface/domainprefs.pm 2014/04/05 23:22:19 1.160.6.37 +++ loncom/interface/domainprefs.pm 2014/03/03 17:11:42 1.228 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set domain-wide configuration settings # -# $Id: domainprefs.pm,v 1.160.6.37 2014/04/05 23:22:19 raeburn Exp $ +# $Id: domainprefs.pm,v 1.228 2014/03/03 17:11:42 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -164,7 +164,6 @@ use Apache::lonhtmlcommon(); use Apache::lonlocal; use Apache::lonmsg(); use Apache::lonconfigsettings; -use Apache::lonuserutils(); use LONCAPA qw(:DEFAULT :match); use LONCAPA::Enrollment; use LONCAPA::lonauthcgi(); @@ -212,15 +211,15 @@ sub handler { 'quotas','autoenroll','autoupdate','autocreate', 'directorysrch','usercreation','usermodification', 'contacts','defaults','scantron','coursecategories', - 'serverstatuses','requestcourses','coursedefaults', - 'usersessions','loadbalancing',requestauthor', - 'selfenrollment'],$dom); + 'serverstatuses','requestcourses','helpsettings', + 'coursedefaults','usersessions','loadbalancing', + 'requestauthor'],$dom); my @prefs_order = ('rolecolors','login','defaults','quotas','autoenroll', 'autoupdate','autocreate','directorysrch','contacts', 'usercreation','selfcreation','usermodification','scantron', 'requestcourses','requestauthor','coursecategories', - 'serverstatuses','coursedefaults','selfenrollment', - 'usersessions'); + 'serverstatuses','helpsettings', + 'coursedefaults','usersessions'); my %existing; if (ref($domconfig{'loadbalancing'}) eq 'HASH') { %existing = %{$domconfig{'loadbalancing'}}; @@ -240,8 +239,6 @@ sub handler { col2 => '',}, {col1 => 'Administrator Settings', col2 => '',}], - print => \&print_rolecolors, - modify => \&modify_rolecolors, }, 'login' => { text => 'Log-in page options', @@ -250,16 +247,12 @@ sub handler { col2 => '',}, {col1 => 'Log-in Help', col2 => 'Value'}], - print => \&print_login, - modify => \&modify_login, }, 'defaults' => { text => 'Default authentication/language/timezone/portal', help => 'Domain_Configuration_LangTZAuth', header => [{col1 => 'Setting', col2 => 'Value'}], - print => \&print_defaults, - modify => \&modify_defaults, }, 'quotas' => { text => 'Blogs, personal web pages, webDAV/quotas, portfolios', @@ -267,16 +260,12 @@ sub handler { header => [{col1 => 'User affiliation', col2 => 'Available tools', col3 => 'Quotas, MB; (Authoring requires role)',}], - print => \&print_quotas, - modify => \&modify_quotas, }, 'autoenroll' => { text => 'Auto-enrollment settings', help => 'Domain_Configuration_Auto_Enrollment', header => [{col1 => 'Configuration setting', col2 => 'Value(s)'}], - print => \&print_autoenroll, - modify => \&modify_autoenroll, }, 'autoupdate' => { text => 'Auto-update settings', @@ -287,32 +276,24 @@ sub handler { col2 => 'Affiliation'}, {col1 => 'User population', col2 => 'Updatable user data'}], - print => \&print_autoupdate, - modify => \&modify_autoupdate, }, 'autocreate' => { text => 'Auto-course creation settings', help => 'Domain_Configuration_Auto_Creation', header => [{col1 => 'Configuration Setting', col2 => 'Value',}], - print => \&print_autocreate, - modify => \&modify_autocreate, }, 'directorysrch' => { text => 'Institutional directory searches', help => 'Domain_Configuration_InstDirectory_Search', header => [{col1 => 'Setting', col2 => 'Value',}], - print => \&print_directorysrch, - modify => \&modify_directorysrch, }, 'contacts' => { text => 'Contact Information', help => 'Domain_Configuration_Contact_Info', header => [{col1 => 'Setting', col2 => 'Value',}], - print => \&print_contacts, - modify => \&modify_contacts, }, 'usercreation' => { text => 'User creation', @@ -323,8 +304,6 @@ sub handler { col2 => 'Usernames which may be created',}, {col1 => 'Context', col2 => 'Assignable authentication types'}], - print => \&print_usercreation, - modify => \&modify_usercreation, }, 'selfcreation' => { text => 'Users self-creating accounts', @@ -335,8 +314,6 @@ sub handler { col2 => 'Information user can enter'}, {col1 => 'Self-creation with e-mail as username', col2 => 'Settings'}], - print => \&print_selfcreation, - modify => \&modify_selfcreation, }, 'usermodification' => { text => 'User modification', @@ -345,8 +322,6 @@ sub handler { col2 => 'User information updatable in author context'}, {col1 => 'Target user has role', col2 => 'User information updatable in course context'}], - print => \&print_usermodification, - modify => \&modify_usermodification, }, 'scantron' => { text => 'Bubblesheet format file', @@ -354,8 +329,6 @@ sub handler { header => [ {col1 => 'Item', col2 => '', }], - print => \&print_scantron, - modify => \&modify_scantron, }, 'requestcourses' => {text => 'Request creation of courses', @@ -366,8 +339,6 @@ sub handler { col2 => 'Value'}, {col1 => 'Available textbooks', col2 => ''}], - print => \&print_quotas, - modify => \&modify_quotas, }, 'requestauthor' => {text => 'Request Authoring Space', @@ -376,8 +347,6 @@ sub handler { col2 => 'Availability/Processing of requests',}, {col1 => 'Setting', col2 => 'Value'}], - print => \&print_quotas, - modify => \&modify_quotas, }, 'coursecategories' => { text => 'Cataloging of courses/communities', @@ -387,8 +356,6 @@ sub handler { {col1 => 'Categories', col2 => '', }], - print => \&print_coursecategories, - modify => \&modify_coursecategories, }, 'serverstatuses' => {text => 'Access to server status pages', @@ -397,30 +364,26 @@ sub handler { col2 => 'Other named users', 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'}], + }, + 'coursedefaults' => {text => 'Course/Community defaults', help => 'Domain_Configuration_Course_Defaults', 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',},], - 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',}], }, 'usersessions' => {text => 'User session hosting/offloading', @@ -431,8 +394,6 @@ sub handler { col2 => 'Rules'}, {col1 => "Hosting domain's own users elsewhere", col2 => 'Rules'}], - print => \&print_usersessions, - modify => \&modify_usersessions, }, 'loadbalancing' => {text => 'Dedicated Load Balancer(s)', @@ -442,8 +403,6 @@ sub handler { col3 => 'User affiliation', col4 => 'Overrides'}, ], - print => \&print_loadbalancing, - modify => \&modify_loadbalancing, }, ); if (keys(%servers) > 1) { @@ -455,8 +414,6 @@ sub handler { col2 => ''}, {col1 => 'Log-in Help', col2 => 'Value'}], - print => \&print_login, - modify => \&modify_login, }; } @@ -606,10 +563,10 @@ sub process_changes { $output = &modify_quotas($r,$dom,$action,$lastactref,%domconfig); } elsif ($action eq 'requestauthor') { $output = &modify_quotas($r,$dom,$action,$lastactref,%domconfig); + } elsif ($action eq 'helpsettings') { + $output = &modify_helpsettings($r,$dom,$confname,%domconfig); } elsif ($action eq 'coursedefaults') { $output = &modify_coursedefaults($dom,$lastactref,%domconfig); - } elsif ($action eq 'selfenrollment') { - $output = &modify_selfenrollment($dom,$lastactref,%domconfig) } elsif ($action eq 'usersessions') { $output = &modify_usersessions($dom,$lastactref,%domconfig); } elsif ($action eq 'loadbalancing') { @@ -656,12 +613,16 @@ sub print_config_box { '.&mt($item->{'header'}->[0]->{'col2'}).' '; $rowtotal ++; - if (($action eq 'autoupdate') || ($action eq 'usercreation') || ($action eq 'selfcreation') || - ($action eq 'usermodification') || ($action eq 'selfenrollment') || - ($action eq 'usersessions')) { - $output .= $item->{'print'}->('top',$dom,$settings,\$rowtotal); + if ($action eq 'autoupdate') { + $output .= &print_autoupdate('top',$dom,$settings,\$rowtotal); + } elsif ($action eq 'usercreation') { + $output .= &print_usercreation('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') { - $output .= $item->{'print'}->('top',$dom,$item,$settings,\$rowtotal); + $output .= &print_coursecategories('top',$dom,$item,$settings,\$rowtotal); } elsif ($action eq 'login') { if ($numheaders == 3) { $colspan = ' colspan="2"'; @@ -669,10 +630,16 @@ sub print_config_box { } else { $output .= &print_login('page',$dom,$confname,$phase,$settings,\$rowtotal); } - } elsif (($action eq 'requestcourses') || ($action eq 'requestauthor')) { + } elsif ($action eq 'requestcourses') { + $output .= &print_quotas($dom,$settings,\$rowtotal,$action); + } elsif ($action eq 'requestauthor') { $output .= &print_quotas($dom,$settings,\$rowtotal,$action); + } elsif ($action eq 'usersessions') { + $output .= &print_usersessions('top',$dom,$settings,\$rowtotal); } elsif ($action eq 'rolecolors') { $output .= &print_rolecolors($phase,'student',$dom,$confname,$settings,\$rowtotal); + } elsif ($action eq 'coursedefaults') { + $output .= &print_coursedefaults('top',$dom,$settings,\$rowtotal); } $output .= ' @@ -682,14 +649,39 @@ sub print_config_box { - + '; + $output .= ' '; $rowtotal ++; - if (($action eq 'autoupdate') || ($action eq 'usercreation') || - ($action eq 'selfcreation') || ($action eq 'selfenrollment') || - ($action eq 'usersessions')) { - $output .= $item->{'print'}->('middle',$dom,$settings,\$rowtotal).' + if ($action eq 'autoupdate') { + $output .= &print_autoupdate('middle',$dom,$settings,\$rowtotal).' +
'.&mt($item->{'header'}->[1]->{'col1'}).''.&mt($item->{'header'}->[1]->{'col1'}).''.&mt($item->{'header'}->[1]->{'col2'}).'
+ + + + + + + + '. + &print_autoupdate('bottom',$dom,$settings,\$rowtotal); + $rowtotal ++; + } elsif ($action eq 'usercreation') { + $output .= &print_usercreation('middle',$dom,$settings,\$rowtotal).' +
'.&mt($item->{'header'}->[2]->{'col1'}).''.&mt($item->{'header'}->[2]->{'col2'}).'
+ + + + + + + + '. + &print_usercreation('bottom',$dom,$settings,\$rowtotal); + $rowtotal ++; + } elsif ($action eq 'selfcreation') { + $output .= &print_selfcreation('middle',$dom,$settings,\$rowtotal).'
'.&mt($item->{'header'}->[2]->{'col1'}).''.&mt($item->{'header'}->[2]->{'col2'}).'
@@ -699,11 +691,11 @@ sub print_config_box { '.&mt($item->{'header'}->[2]->{'col1'}).' '.&mt($item->{'header'}->[2]->{'col2'}).' - '."\n". - $item->{'print'}->('bottom',$dom,$settings,\$rowtotal); + '. + &print_selfcreation('bottom',$dom,$settings,\$rowtotal); $rowtotal ++; - } elsif (($action eq 'usermodification') || ($action eq 'coursedefaults')) { - $output .= $item->{'print'}->('bottom',$dom,$settings,\$rowtotal); + } elsif ($action eq 'usermodification') { + $output .= &print_usermodification('middle',$dom,$settings,\$rowtotal); } elsif ($action eq 'coursecategories') { $output .= &print_coursecategories('bottom',$dom,$item,$settings,\$rowtotal); } elsif ($action eq 'login') { @@ -738,6 +730,21 @@ sub print_config_box { &print_textbookcourses($dom,$settings,\$rowtotal); } elsif ($action eq 'requestauthor') { $output .= &print_requestmail($dom,$action,$settings,\$rowtotal); + } elsif ($action eq 'usersessions') { + $output .= &print_usersessions('middle',$dom,$settings,\$rowtotal).' + + + + + + + + + '. + &print_usersessions('bottom',$dom,$settings,\$rowtotal); + $rowtotal ++; + } elsif ($action eq 'coursedefaults') { + $output .= &print_coursedefaults('bottom',$dom,$settings,\$rowtotal); } elsif ($action eq 'rolecolors') { $output .= &print_rolecolors($phase,'coordinator',$dom,$confname,$settings,\$rowtotal).'
'.&mt($item->{'header'}->[2]->{'col1'}).''.&mt($item->{'header'}->[2]->{'col2'}).'
@@ -816,14 +823,24 @@ sub print_config_box { $rowtotal ++; if ($action eq 'quotas') { $output .= &print_quotas($dom,$settings,\$rowtotal,$action); - } elsif (($action eq 'autoenroll') || ($action eq 'autocreate') || ($action eq 'directorysrch') || - ($action eq 'contacts') || ($action eq 'defaults') || ($action eq 'serverstatuses') || - ($action eq 'loadbalancing')) { - $output .= $item->{'print'}->($dom,$settings,\$rowtotal); + } elsif ($action eq 'autoenroll') { + $output .= &print_autoenroll($dom,$settings,\$rowtotal); + } elsif ($action eq 'autocreate') { + $output .= &print_autocreate($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') { $output .= &print_scantronformat($r,$dom,$confname,$settings,\$rowtotal); + } elsif ($action eq 'serverstatuses') { + $output .= &print_serverstatuses($dom,$settings,\$rowtotal); } elsif ($action eq 'helpsettings') { $output .= &print_helpsettings($dom,$confname,$settings,\$rowtotal); + } elsif ($action eq 'loadbalancing') { + $output .= &print_loadbalancing($dom,$settings,\$rowtotal); } } $output .= ' @@ -2765,21 +2782,19 @@ sub print_coursedefaults { ''. ''. - ''."\n"; - $itemcount ++; - $css_class = $itemcount%2 ? ' class="LC_odd_row"' : ''; - $datatable .= ''. - $choices{'uploadquota'}. - ''. - ''. - ''; + ''."\n". + ''. + ''."\n"; - $itemcount ++; + $itemcount += 2; my $onclick = 'toggleCredits(this.form);'; my $display = 'none'; if ($currusecredits) { @@ -2810,192 +2825,6 @@ sub print_coursedefaults { &radiobutton_prefs($current,\@toggles,\%defaultchecked, \%choices,$itemcount,$onclick,$additional); $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 .= ''. - ''. - ''; - } - } elsif ($position eq 'bottom') { - my ($itemsref,$namesref,$fieldsref) = &Apache::lonuserutils::selfenroll_validation_types(); - my %currvalidation; - if (ref($settings) eq 'HASH') { - if (ref($settings->{'validation'}) eq 'HASH') { - %currvalidation = %{$settings->{'validation'}}; - } - } - foreach my $item (@{$itemsref}) { - $css_class = $itemcount%2 ? ' class="LC_odd_row"' : ''; - $datatable .= ''. - ''."\n"; - $itemcount ++; - } } $$rowtotal += $itemcount; return $datatable; @@ -3983,7 +3812,7 @@ sub print_selfcreation { ($datatable,$itemcount) = &radiobutton_prefs(\%radiohash,\@toggles,\%defaultchecked, \%choices,$itemcount,$onclick); $$rowtotal += $itemcount; - + my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom); if (ref($usertypes) eq 'HASH') { @@ -4242,7 +4071,7 @@ sub print_usermodification { $$rowtotal ++; $rowcount ++; } - } elsif ($position eq 'bottom') { + } elsif ($position eq 'middle') { $context = 'course'; $rowcount = 0; foreach my $role ('st','ep','ta','in','cr') { @@ -4800,7 +4629,7 @@ sub serverstatus_pages { return ('userstatus','lonstatus','loncron','server-status','codeversions', 'checksums','clusterstatus','metadata_keywords','metadata_harvest', 'takeoffline','takeonline','showenv','toggledebug','ping','domconf', - 'uniquecodes','diskusage'); + 'uniquecodes'); } sub coursecategories_javascript { @@ -5086,7 +4915,7 @@ sub modifiable_userdata_row { if ($statustype) { if (ref($settings->{$context}->{$role}->{$statustype}) eq 'HASH') { $hashref = $settings->{$context}->{$role}->{$statustype}; - if (ref($hashref) eq 'HASH') { + if (ref($hashref) eq 'HASH') { foreach my $field (@fields) { if ($hashref->{$field}) { $checks{$field} = $hashref->{$field}; @@ -5107,7 +4936,7 @@ sub modifiable_userdata_row { } } } - + for (my $i=0; $i<@fields; $i++) { my $rem = $i%($numinrow); if ($rem == 0) { @@ -5123,7 +4952,7 @@ sub modifiable_userdata_row { } else { if ($role eq 'st') { if (ref($settings) ne 'HASH') { - $check = ' checked="checked" '; + $check = ' checked="checked" '; } } } @@ -9227,7 +9056,6 @@ sub modify_coursedefaults { } } } - my $officialcreds = $env{'form.official_credits'}; $officialcreds =~ s/[^\d.]+//g; my $unofficialcreds = $env{'form.unofficial_credits'}; @@ -9255,8 +9083,7 @@ sub modify_coursedefaults { if ($putresult eq 'ok') { if (keys(%changes) > 0) { 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'}) { $domdefaults{'canuse_pdfforms'}=$defaultshash{'coursedefaults'}{'canuse_pdfforms'}; } @@ -9331,245 +9158,6 @@ sub modify_coursedefaults { } } else { $resulttext = ''. - &mt('An error occurred: [_1]',$putresult).''; - } - 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:').''; - } else { - $resulttext = &mt('No changes made to self-enrollment settings'); - } - } else { - $resulttext = ''. &mt('An error occurred: [_1]',$putresult).''; } return $resulttext;
'. + $choices{'uploadquota'}. + ''. + ''; foreach my $type (@types) { $datatable .= ''; } $datatable .= '
'.&mt($type).'
'. '
'.$titlesref->{$row}.''. - ''; - 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 .= ''; - } - } - unless (($row eq 'registered') && ($key eq 'default')) { - $datatable .= ''; - } - foreach my $type (@types) { - if ($type eq 'community') { - $roles{'1'} = &mt('Community personnel'); - } else { - $roles{'1'} = &mt('Course personnel'); - } - $datatable .= ''; - } - $datatable .= ''; - } - $datatable .= '
'.&mt($type).'
'; - 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 .= ' '; - } - } 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 .= ' '; - } - } 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 .= ' '; - } - } 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 .= ' '; - } - } 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 .= ' '; - } - $datatable .= '
'. - ''.&mt('Maximum allowed: '). - ''. - ''; - } - } - $datatable .= '
'. - $namesref->{$item}. - ''; - if (($item eq 'url') || ($item eq 'button')) { - $datatable .= ''. - ''; - } 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 .= ' '; - } - } elsif ($item eq 'markup') { - $datatable .= ''; - } - $datatable .= '