--- loncom/interface/domainprefs.pm 2014/04/16 13:33:14 1.160.6.39 +++ loncom/interface/domainprefs.pm 2014/03/29 20:25:28 1.230 @@ -1,8 +1,8 @@ # The LearningOnline Network with CAPA # Handler to set domain-wide configuration settings # -# $Id: domainprefs.pm,v 1.160.6.39 2014/04/16 13:33:14 raeburn Exp $ -## +# $Id: domainprefs.pm,v 1.230 2014/03/29 20:25:28 raeburn Exp $ +# # Copyright Michigan State University Board of Trustees # # This file is part of the LearningOnline Network with CAPA (LON-CAPA). @@ -164,8 +164,6 @@ use Apache::lonhtmlcommon(); use Apache::lonlocal; use Apache::lonmsg(); use Apache::lonconfigsettings; -use Apache::lonuserutils(); -use Apache::loncoursequeueadmin(); use LONCAPA qw(:DEFAULT :match); use LONCAPA::Enrollment; use LONCAPA::lonauthcgi(); @@ -213,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'}}; @@ -366,9 +364,7 @@ sub handler { {col1 => 'Setting', col2 => 'Value'}, {col1 => 'Available textbooks', - col2 => ''}, - {col1 => 'Validation (not official courses)', - col2 => 'Value'},], + col2 => ''}], print => \&print_quotas, modify => \&modify_quotas, }, @@ -403,6 +399,14 @@ sub handler { print => \&print_serverstatuses, modify => \&modify_serverstatuses, }, + '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', help => 'Domain_Configuration_Course_Defaults', @@ -413,17 +417,13 @@ sub handler { 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' => {text => 'User session hosting/offloading', @@ -609,10 +609,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') { @@ -660,8 +660,8 @@ sub print_config_box { '; $rowtotal ++; if (($action eq 'autoupdate') || ($action eq 'usercreation') || ($action eq 'selfcreation') || - ($action eq 'usermodification') || ($action eq 'selfenrollment') || - ($action eq 'usersessions')) { + ($action eq 'usermodification') || ($action eq 'coursedefaults') || + ($action eq 'selfenrollment') || ($action eq 'usersessions')) { $output .= $item->{'print'}->('top',$dom,$settings,\$rowtotal); } elsif ($action eq 'coursecategories') { $output .= $item->{'print'}->('top',$dom,$item,$settings,\$rowtotal); @@ -738,18 +738,7 @@ sub print_config_box { '.&mt($item->{'header'}->[2]->{'col1'}).' '.&mt($item->{'header'}->[2]->{'col2'}).' '. - &print_textbookcourses($dom,$settings,\$rowtotal).' - - - - - - - - - - '. - &print_validation_rows('requestcourses',$dom,$settings,\$rowtotal); + &print_textbookcourses($dom,$settings,\$rowtotal); } elsif ($action eq 'requestauthor') { $output .= &print_requestmail($dom,$action,$settings,\$rowtotal); } elsif ($action eq 'rolecolors') { @@ -1468,7 +1457,7 @@ sub display_color_options { $datatable .= '
'.&mt($item->{'header'}->[3]->{'col1'}).''.&mt($item->{'header'}->[3]->{'col2'}).'
'. ''; foreach my $item (@{$links}) { - my $color = $designs->{'links'}{$item} ? $designs->{'links'}{$item} : $defaults->{'links'}{$item}; + my $color = $designs->{'link'}{$item} ? $designs->{'link'}{$item} : $defaults->{'links'}{$item}; $datatable .= ''. - ''; - } - } elsif ($position eq 'bottom') { - $datatable .= &print_validation_rows('selfenroll',$dom,$settings,\$itemcount); - } - $$rowtotal += $itemcount; - 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 .= ''. - ''."\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 .= ''; - } else { - $datatable .= $dctable.''; - } - $itemcount ++; - } - if (ref($rowtotal)) { - $$rowtotal += $itemcount; - } - return $datatable; -} - sub print_usersessions { my ($position,$dom,$settings,$rowtotal) = @_; my ($css_class,$datatable,%checked,%choices); @@ -5802,38 +5569,22 @@ sub modify_colors { } if ($role eq 'login') { foreach my $item (@logintext) { - $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})) { + unless ($env{'form.'.$role.'_'.$item} eq $defaults{'logintext'}{$item}) { $confhash->{$role}{$item} = $env{'form.'.$role.'_'.$item}; } } } else { - $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'})) { + unless($env{'form.'.$role.'_fontmenu'} eq $defaults{'fontmenu'}) { $confhash->{$role}{'fontmenu'} = $env{'form.'.$role.'_fontmenu'}; } } foreach my $item (@bgs) { - $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})) { + unless ($env{'form.'.$role.'_'.$item} eq $defaults{'bgs'}{$item} ) { $confhash->{$role}{$item} = $env{'form.'.$role.'_'.$item}; } } foreach my $item (@links) { - $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})) { + unless ($env{'form.'.$role.'_'.$item} eq $defaults{'links'}{$item}) { $confhash->{$role}{$item} = $env{'form.'.$role.'_'.$item}; } } @@ -6455,8 +6206,7 @@ sub modify_quotas { my ($r,$dom,$action,$lastactref,%domconfig) = @_; my ($context,@usertools,@options,%validations,%titles,%confhash,%toolshash, %limithash,$toolregexp,%conditions,$resulttext,%changes,$confname,$configuserok, - $author_ok,$switchserver,$errors,$validationitemsref,$validationnamesref, - $validationfieldsref); + $author_ok,$switchserver,$errors); if ($action eq 'quotas') { $context = 'tools'; } else { @@ -6472,8 +6222,6 @@ sub modify_quotas { $confname = $dom.'-domainconfig'; my $servadm = $r->dir_config('lonAdmEMail'); ($configuserok,$author_ok,$switchserver) = &config_check($dom,$confname,$servadm); - ($validationitemsref,$validationnamesref,$validationfieldsref) = - &Apache::loncoursequeueadmin::requestcourses_validation_types(); } elsif ($context eq 'requestauthor') { @usertools = ('author'); %titles = &authorrequest_titles(); @@ -6541,7 +6289,6 @@ sub modify_quotas { ''; } } - } if (ref($domconfig{$action}) eq 'HASH') { if (ref($domconfig{$action}{'notify'}) eq 'HASH') { @@ -6648,7 +6395,7 @@ sub modify_quotas { } if ($env{'form.addbook_image.filename'} ne '') { my ($cdom,$cnum) = split(/_/,$newbook); - my ($imageurl,$error) = + my ($imageurl,$error) = &process_textbook_image($r,$dom,$confname,'addbook_image',$cdom,$cnum,$configuserok, $switchserver,$author_ok); if ($imageurl) { @@ -6678,78 +6425,6 @@ 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 { $confhash{'defaultquota'}{'default'} = $env{'form.defaultquota'}; @@ -7065,26 +6740,6 @@ sub modify_quotas { } $resulttext .= ''; } - if (ref($changes{'validation'}) eq 'HASH') { - if ((ref($validationitemsref) eq 'ARRAY') && (ref($validationnamesref) eq 'HASH')) { - $resulttext .= '
  • '.&mt('Validation of courses/communities updated').'
      '; - foreach my $item (@{$validationitemsref}) { - if (exists($changes{'validation'}{$item})) { - if ($item eq 'markup') { - $resulttext .= '
    • '.&mt('[_1] set to: [_2]',$validationnamesref->{$item}, - '
      '.$changes{'validation'}{$item}.'
      ').'
    • '; - } else { - $resulttext .= '
    • '.&mt('[_1] set to: [_2]',$validationnamesref->{$item}, - ''.$changes{'validation'}{$item}.'').'
    • '; - } - } - } - if (exists($changes{'validation'}{'dc'})) { - $resulttext .= '
    • '.&mt('Validated course requests identified as processed by: [_1]', - ''.$changes{'validation'}{'dc'}.'').'
    • '; - } - } - } } $resulttext .= '
    '; if (keys(%newenv)) { @@ -9390,7 +9045,6 @@ sub modify_coursedefaults { } } } - my $officialcreds = $env{'form.official_credits'}; $officialcreds =~ s/[^\d.]+//g; my $unofficialcreds = $env{'form.unofficial_credits'}; @@ -9419,7 +9073,7 @@ sub modify_coursedefaults { if (keys(%changes) > 0) { my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1); if (($changes{'canuse_pdfforms'}) || ($changes{'coursecredits'}) || - ($changes{'uploadquota'})) { + ($changes{'uploadquota'})) { if ($changes{'canuse_pdfforms'}) { $domdefaults{'canuse_pdfforms'}=$defaultshash{'coursedefaults'}{'canuse_pdfforms'}; } @@ -9499,245 +9153,6 @@ sub modify_coursedefaults { 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:').'
      '; - foreach my $key ('admin','default','validation') { - if (ref($changes{$key}) eq 'HASH') { - $resulttext .= '
    • '.$toplevel{$key}.'
        '; - if ($key eq 'validation') { - foreach my $item (@{$itemsref}) { - if (exists($changes{$key}{$item})) { - if ($item eq 'markup') { - $resulttext .= '
      • '.&mt('[_1] set to: [_2]',$namesref->{$item}, - '
        '.$changes{$key}{$item}.'
        ').'
      • '; - } else { - $resulttext .= '
      • '.&mt('[_1] set to: [_2]',$namesref->{$item}, - ''.$changes{$key}{$item}.'').'
      • '; - } - } - } - } 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 .= '
      • '.$titles{$type}.'
          '; - foreach my $item (@{$ordered{$key}}) { - if (grep(/^\Q$item\E$/,@{$changes{$key}{$type}})) { - $resulttext .= '
        • '; - if ($key eq 'admin') { - $resulttext .= &mt('[_1] -- management by: [_2]',$titlesref->{$item}, - ''.$roles{$selfenrollhash{'admin'}{$type}{$item}}.''); - } else { - $resulttext .= &mt('[_1] set to: [_2]',$titlesref->{$item}, - ''.$descs{$item}{$selfenrollhash{'default'}{$type}{$item}}.''); - } - $resulttext .= '
        • '; - } - } - $resulttext .= '
      • '; - } - } - $resulttext .= '
    • '; - } - } - 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 .= '
    '; - } else { - $resulttext = &mt('No changes made to self-enrollment settings'); - } - } else { - $resulttext = ''. - &mt('An error occurred: [_1]',$putresult).''; - } - return $resulttext; -} - sub modify_usersessions { my ($dom,$lastactref,%domconfig) = @_; my @hostingtypes = ('version','excludedomain','includedomain'); @@ -10270,7 +9685,7 @@ sub get_active_dcs { sub active_dc_picker { my ($dom,$numinrow,$inputtype,$name,%currhash) = @_; - my %domcoords = &get_active_dcs($dom); + my %domcoords = &get_active_dcs($dom); my @domcoord = keys(%domcoords); if (keys(%currhash)) { foreach my $dc (keys(%currhash)) {
  • '.$choices->{$item}."\n"; if ($designs->{'links'}{$item}) { $datatable.=' '; @@ -2830,228 +2819,6 @@ sub print_coursedefaults { 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 .= ''. - ''.$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 .= '
    '. - &mt('Course creation processed as: (choose Dom. Coord.)'). - ''.$dctable.'