Diff for /loncom/interface/domainprefs.pm between versions 1.160.6.37 and 1.231

version 1.160.6.37, 2014/04/05 23:22:19 version 1.231, 2014/03/29 20:35:21
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 LONCAPA qw(:DEFAULT :match);  use LONCAPA qw(:DEFAULT :match);
 use LONCAPA::Enrollment;  use LONCAPA::Enrollment;
 use LONCAPA::lonauthcgi();  use LONCAPA::lonauthcgi();
Line 212  sub handler { Line 211  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',                  'coursedefaults','usersessions','loadbalancing',
                 'selfenrollment'],$dom);                  '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','selfenrollment',                         'serverstatuses','helpsettings',
                        'usersessions');                         '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 400  sub handler { Line 399  sub handler {
                   print => \&print_serverstatuses,                    print => \&print_serverstatuses,
                   modify => \&modify_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 in each course by a CC',                    header => [{col1 => 'Defaults which can be overridden in each course by a CC',
Line 410  sub handler { Line 417  sub handler {
                   print => \&print_coursedefaults,                    print => \&print_coursedefaults,
                   modify => \&modify_coursedefaults,                    modify => \&modify_coursedefaults,
                  },                   },
         'selfenrollment' =>          'selfenrollment' => 
                  {text   => 'Self-enrollment in Course/Community',                   {text   => 'Self-enrollment in Course/Community',
                   help   => 'Domain_Configuration_Selfenrollment',                    help   => 'Domain_Configuration_Selfenrollment',
                   header => [{col1 => 'Configuration Rights',                    header => [{col1 => 'Configuration Rights',
Line 422  sub handler { Line 429  sub handler {
                   print => \&print_selfenrollment,                    print => \&print_selfenrollment,
                   modify => \&modify_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',
                   help  => 'Domain_Configuration_User_Sessions',                    help  => 'Domain_Configuration_User_Sessions',
Line 606  sub process_changes { Line 621  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') {      } elsif ($action eq 'selfenrollment') {
Line 657  sub print_config_box { Line 674  sub print_config_box {
              </tr>';               </tr>';
         $rowtotal ++;          $rowtotal ++;
         if (($action eq 'autoupdate') || ($action eq 'usercreation') || ($action eq 'selfcreation') ||          if (($action eq 'autoupdate') || ($action eq 'usercreation') || ($action eq 'selfcreation') ||
             ($action eq 'usermodification') || ($action eq 'selfenrollment') ||              ($action eq 'usermodification') || ($action eq 'coursedefaults') ||
             ($action eq 'usersessions')) {              ($action eq 'selfenrollment') || ($action eq 'usersessions')) {
             $output .= $item->{'print'}->('top',$dom,$settings,\$rowtotal);              $output .= $item->{'print'}->('top',$dom,$settings,\$rowtotal);
         } elsif ($action eq 'coursecategories') {          } elsif ($action eq 'coursecategories') {
             $output .= $item->{'print'}->('top',$dom,$item,$settings,\$rowtotal);              $output .= $item->{'print'}->('top',$dom,$item,$settings,\$rowtotal);
Line 2822  sub print_selfenrollment { Line 2839  sub print_selfenrollment {
     my $itemcount = 1;      my $itemcount = 1;
     my @types = ('official','unofficial','community','textbook');      my @types = ('official','unofficial','community','textbook');
     if (($position eq 'top') || ($position eq 'middle')) {      if (($position eq 'top') || ($position eq 'middle')) {
         my ($rowsref,$titlesref) = &Apache::lonuserutils::get_selfenroll_titles();          my ($rowsref,$titlesref) = &get_selfenroll_titles();
         my %descs = &Apache::lonuserutils::selfenroll_default_descs();          my %descs = &selfenroll_default_descs();
         my @rows;          my @rows;
         my $key;          my $key;
         if ($position eq 'top') {          if ($position eq 'top') {
Line 2956  sub print_selfenrollment { Line 2973  sub print_selfenrollment {
             $datatable .= '</table></td></tr>';              $datatable .= '</table></td></tr>';
         }          }
     } elsif ($position eq 'bottom') {      } elsif ($position eq 'bottom') {
         my ($itemsref,$namesref,$fieldsref) = &Apache::lonuserutils::selfenroll_validation_types();          my ($itemsref,$namesref,$fieldsref) = &selfenroll_validation_types();
         my %currvalidation;          my %currvalidation;
         if (ref($settings) eq 'HASH') {          if (ref($settings) eq 'HASH') {
             if (ref($settings->{'validation'}) eq 'HASH') {              if (ref($settings->{'validation'}) eq 'HASH') {
Line 3001  sub print_selfenrollment { Line 3018  sub print_selfenrollment {
     return $datatable;      return $datatable;
 }  }
   
   sub get_selfenroll_titles {
       my @row = ('types','registered','enroll_dates','access_dates','section',
                  'approval','limit');
       my %lt = &Apache::lonlocal::texthash (
                   types        => 'Users allowed to self-enroll',
                   registered   => 'Registration status (official courses)' ,
                   enroll_dates => 'Dates self-enrollment available',
                   access_dates => 'Access dates for self-enrolling users',
                   section      => 'Self-enrolling users section',
                   approval     => 'Processing of requests',
                   limit        => 'Enrollment limit',
                );
       return (\@row,\%lt);
   }
   
   sub selfenroll_default_descs {
       my %desc = (
                    types => {
                               dom => &mt('Course domain'),
                               all => &mt('Any domain'),
                               ''  => &mt('None'),
                             },
                    limit => {
                               none         => &mt('No limit'),
                               allstudents  => &mt('Limit by total students'),
                               selfenrolled => &mt('Limit by total self-enrolled'),
                             },
                    approval => {
                                   '0' => &mt('Processed automatically'),
                                   '1' => &mt('Queued for approval'),
                                   '2' => &mt('Queued, pending validation'),
                                },
                    registered => {
                                    0 => 'No registration required',
                                    1 => 'Registered students only',
                                  },
                  );
       return %desc;
   }
   
   sub selfenroll_validation_types {
       my @items = ('url','fields','button','markup');
       my %names =  &Apache::lonlocal::texthash (
               url      => 'Web address of validation server/script',
               fields   => 'Form fields to send to validator',
               button   => 'Text for validation button',
               markup   => 'Validation description (HTML)',
       );
       my @fields = ('username','domain','uniquecode','course','token');
       return (\@items,\%names,\@fields);
   }  
   
 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 3983  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 5086  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 5107  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 5123  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 9341  sub modify_selfenrollment { Line 9410  sub modify_selfenrollment {
     my ($resulttext,$errors,%changes,%selfenrollhash,%ordered);      my ($resulttext,$errors,%changes,%selfenrollhash,%ordered);
     my @types = ('official','unofficial','community','textbook');      my @types = ('official','unofficial','community','textbook');
     my %titles = &tool_titles();      my %titles = &tool_titles();
     my %descs = &Apache::lonuserutils::selfenroll_default_descs();      my %descs = &selfenroll_default_descs();
     ($ordered{'admin'},my $titlesref) = &Apache::lonuserutils::get_selfenroll_titles();      ($ordered{'admin'},my $titlesref) = &get_selfenroll_titles();
     $ordered{'default'} = ['types','registered','approval','limit'];      $ordered{'default'} = ['types','registered','approval','limit'];
   
     my (%roles,%shown,%toplevel);      my (%roles,%shown,%toplevel);
Line 9358  sub modify_selfenrollment { Line 9427  sub modify_selfenrollment {
                   default    => 'Default settings',                    default    => 'Default settings',
                   validation => 'Validation of self-enrollment requests',                    validation => 'Validation of self-enrollment requests',
                 );                  );
     my ($itemsref,$namesref,$fieldsref) = &Apache::lonuserutils::selfenroll_validation_types();      my ($itemsref,$namesref,$fieldsref) = &selfenroll_validation_types();
   
     if (ref($ordered{'admin'}) eq 'ARRAY') {      if (ref($ordered{'admin'}) eq 'ARRAY') {
         foreach my $item (@{$ordered{'admin'}}) {          foreach my $item (@{$ordered{'admin'}}) {
Line 9508  sub modify_selfenrollment { Line 9577  sub modify_selfenrollment {
                                 $roles{'1'} = &mt('Course personnel');                                  $roles{'1'} = &mt('Course personnel');
                             }                              }
                             if (ref($changes{$key}{$type}) eq 'ARRAY') {                              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>';                                  $resulttext .= '<li>'.$titles{$type}.'<ul>';
                                 foreach my $item (@{$ordered{$key}}) {                                  foreach my $item (@{$ordered{$key}}) {
                                     if (grep(/^\Q$item\E$/,@{$changes{$key}{$type}})) {                                      if (grep(/^\Q$item\E$/,@{$changes{$key}{$type}})) {
Line 9556  sub modify_selfenrollment { Line 9597  sub modify_selfenrollment {
                         $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>';              $resulttext .= '</ul>';
         } else {          } else {

Removed from v.1.160.6.37  
changed lines
  Added in v.1.231


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>