--- loncom/interface/loncreateuser.pm	2010/03/21 21:05:42	1.337
+++ loncom/interface/loncreateuser.pm	2010/06/09 11:56:02	1.344
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Create a user
 #
-# $Id: loncreateuser.pm,v 1.337 2010/03/21 21:05:42 raeburn Exp $
+# $Id: loncreateuser.pm,v 1.344 2010/06/09 11:56:02 bisitz Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -2297,6 +2297,8 @@ sub update_user_data {
 
     $r->print('<h3>'.&mt('User [_1] in domain [_2]',
 			 $env{'form.ccuname'}, $env{'form.ccdomain'}).'</h3>');
+    $r->print('<p class="LC_info">'.&mt('Please be patient').'</p>');
+
     my (%alerts,%rulematch,%inst_results,%curr_rules);
     my @userinfo = ('firstname','middlename','lastname','generation','permanentemail','id');
     my @usertools = ('aboutme','blog','portfolio');
@@ -2385,15 +2387,17 @@ sub update_user_data {
                     }
                 }
                 foreach my $item (@requestcourses) {
-                    $newcustom{$item} = $env{'form.crsreq_'.$item};
-                    if ($env{'form.crsreq_'.$item} eq 'autolimit') {
-                        $newcustom{$item} .= '=';
-                        unless ($env{'form.crsreq_'.$item.'_limit'} =~ /\D/) {
-                            $newcustom{$item} .= $env{'form.crsreq_'.$item.'_limit'};
+                    if ($env{'form.custom'.$item} == 1) {
+                        $newcustom{$item} = $env{'form.crsreq_'.$item};
+                        if ($env{'form.crsreq_'.$item} eq 'autolimit') {
+                            $newcustom{$item} .= '=';
+                            unless ($env{'form.crsreq_'.$item.'_limit'} =~ /\D/) {
+                                $newcustom{$item} .= $env{'form.crsreq_'.$item.'_limit'};
+                            }
                         }
+                        $changed{$item} = &tool_admin($item,$newcustom{$item},
+                                                      \%changeHash,'requestcourses');
                     }
-                    $changed{$item} = &tool_admin($item,$newcustom{$item},
-                                                  \%changeHash,'requestcourses');
                 }
             }
             if ($canmodify_status{'inststatus'}) {
@@ -2436,8 +2440,11 @@ sub update_user_data {
 	    $r->print($error.&mt('You do not have the authority to modify this users authentification information').'.'.$end);    
 	}
     }
+
+    $r->rflush(); # Finish display of header before time consuming actions start
+
     ##
-    my (@userroles,%userupdate,$cnum,$cdom,$crstype,%namechanged);
+    my (@userroles,%userupdate,$cnum,$cdom,%namechanged);
     if ($context eq 'course') {
         ($cnum,$cdom) = &Apache::lonuserutils::get_course_identity();
         $crstype = &Apache::loncommon::course_type($cdom.'_'.$cnum);
@@ -2574,7 +2581,8 @@ sub update_user_data {
         }
         my ($quotachanged,$oldportfolioquota,$newportfolioquota,$oldinststatus,
             $newinststatus,$oldisdefault,$newisdefault,%oldsettings,
-            %oldsettingstext,%newsettings,%newsettingstext,@disporder);
+            %oldsettingstext,%newsettings,%newsettingstext,@disporder,
+            $olddefquota,$oldsettingstatus,$newdefquota,$newsettingstatus);
         @disporder = ('inststatus');
         if ($env{'request.role.domain'} eq $env{'form.ccdomain'}) {
             push(@disporder,'requestcourses');
@@ -2582,8 +2590,10 @@ sub update_user_data {
             push(@disporder,'reqcrsotherdom');
         }
         push(@disporder,('quota','tools'));
-        my ($defquota,my $settingstatus) = 
+        $oldinststatus = $userenv{'inststatus'};
+        ($olddefquota,$oldsettingstatus) = 
             &Apache::loncommon::default_quota($env{'form.ccdomain'},$oldinststatus);
+        ($newdefquota,$newsettingstatus) = ($olddefquota,$oldsettingstatus);
         my %canshow;
         if (&Apache::lonnet::allowed('mpq',$env{'form.ccdomain'})) {
             $canshow{'quota'} = 1;
@@ -2600,7 +2610,6 @@ sub update_user_data {
             $canshow{'inststatus'} = 1;
         }
         my (%changeHash,%changed);
-        $oldinststatus = $userenv{'inststatus'};
         if ($oldinststatus eq '') {
             $oldsettings{'inststatus'} = $othertitle; 
         } else {
@@ -2620,6 +2629,8 @@ sub update_user_data {
                     $changeHash{'inststatus'} = $newinststatus;
                     if ($newinststatus ne $oldinststatus) {
                         $changed{'inststatus'} = $newinststatus;
+                        ($newdefquota,$newsettingstatus) =
+                            &Apache::loncommon::default_quota($env{'form.ccdomain'},$newinststatus);
                     }
                     if (ref($usertypes) eq 'HASH') {
                         $newsettings{'inststatus'} = join(', ',map{ $usertypes->{$_}; } (@inststatuses)); 
@@ -2633,6 +2644,8 @@ sub update_user_data {
                 $newsettings{'inststatus'} = $othertitle;
                 if ($newinststatus ne $oldinststatus) {
                     $changed{'inststatus'} = $changeHash{'inststatus'};
+                    ($newdefquota,$newsettingstatus) =
+                        &Apache::loncommon::default_quota($env{'form.ccdomain'},$newinststatus);
                 }
             }
         } elsif ($context ne 'selfcreate') {
@@ -2655,12 +2668,12 @@ sub update_user_data {
                     }
                 } else {
                     $changed{'quota'} = &quota_admin('',\%changeHash);
-                    $newportfolioquota = $defquota;
+                    $newportfolioquota = $newdefquota;
                     $newisdefault = 1;
                 }
             } else {
                 $oldisdefault = 1;
-                $oldportfolioquota = $defquota;
+                $oldportfolioquota = $olddefquota;
                 if ($env{'form.customquota'} == 1) {
                     if ($env{'form.portfolioquota'} eq '') {
                         $newportfolioquota = 0;
@@ -2670,15 +2683,15 @@ sub update_user_data {
                     }
                     $changed{'quota'} = &quota_admin($newportfolioquota,\%changeHash);
                 } else {
-                    $newportfolioquota = $defquota;
+                    $newportfolioquota = $newdefquota;
                     $newisdefault = 1;
                 }
             }
             if ($oldisdefault) {
-                $oldsettingstext{'quota'} = &get_defaultquota_text($settingstatus);
+                $oldsettingstext{'quota'} = &get_defaultquota_text($oldsettingstatus);
             }
             if ($newisdefault) {
-                $newsettingstext{'quota'} = &get_defaultquota_text($settingstatus);
+                $newsettingstext{'quota'} = &get_defaultquota_text($newsettingstatus);
             }
             &tool_changes('tools',\@usertools,\%oldsettings,\%oldsettingstext,\%userenv,
                           \%changeHash,\%changed,\%newsettings,\%newsettingstext);
@@ -4380,7 +4393,7 @@ sub print_main_menu {
          [
             {
              linktext => $links{$linkcontext}{'upload'},
-             icon => 'sctr.png',
+             icon => 'uplusr.png',
              #help => 'Course_Create_Class_List',
              url => '/adm/createuser?action=upload',
              permission => $permission->{'cusr'},
@@ -4388,7 +4401,7 @@ sub print_main_menu {
             },
             {
              linktext => $links{$linkcontext}{'listusers'},
-             icon => 'edit-find.png',
+             icon => 'mngcu.png',
              #help => 'Course_View_Class_List',
              url => '/adm/createuser?action=listusers',
              permission => ($permission->{'view'} || $permission->{'cusr'}),
@@ -4520,7 +4533,7 @@ sub print_main_menu {
             push(@{ $menu[2]->{items} }, 
                 {
                  linktext => 'User Self-Enrollment',
-                 icon => 'cstr.png',
+                 icon => 'self_enroll.png',
                  #help => 'Course_Self_Enrollment',
                  url => '/adm/createuser?action=selfenroll',
                  permission => $permission->{'cusr'},
@@ -4946,7 +4959,7 @@ ENDSCRIPT
                                    '<input type="checkbox" name="selfenroll_notify"'.$notifyon.' value="'.$cc.'" />'.
                                    &Apache::loncommon::plainname($ccuname,$ccudom).
                                    '</label></span></td>';
-                        $count;
+                        $count ++;
                     }
                     my $rem = $count%$numcols;
                     if ($rem) {
@@ -4963,7 +4976,7 @@ ENDSCRIPT
                 my $cid = $env{'request.course.id'};
                 my $currlim = $env{'course.'.$cid.'.internal.selfenroll_limit'};
                 my $currcap = $env{'course.'.$cid.'.internal.selfenroll_cap'};
-                my $nolimit = ' checked="checked" ';
+                $nolimit = ' checked="checked" ';
                 if ($currlim eq 'allstudents') {
                     $crslimit = ' checked="checked" ';
                     $selflimit = ' ';
@@ -6269,7 +6282,8 @@ sub update_selfenroll_config {
                             $newnum ++;
                         }
                     }
-                    for (my $j=0; $j<$env{'form.selfenroll_types_total'}; $j++) {                        if ((!grep(/^$j$/,@deletedoms)) && (!grep(/^$j$/,@activations))) {
+                    for (my $j=0; $j<$env{'form.selfenroll_types_total'}; $j++) {
+                        if ((!grep(/^$j$/,@deletedoms)) && (!grep(/^$j$/,@activations))) {
                             my @types = &Apache::loncommon::get_env_multiple('form.selfenroll_types_'.$j);
                             if (@types > 0) {
                                 @types = sort(@types);