Diff for /loncom/interface/loncreateuser.pm between versions 1.113 and 1.117

version 1.113, 2006/05/08 21:40:20 version 1.117, 2006/05/18 01:08:51
Line 64  use Apache::Constants qw(:common :http); Line 64  use Apache::Constants qw(:common :http);
 use Apache::lonnet;  use Apache::lonnet;
 use Apache::loncommon;  use Apache::loncommon;
 use Apache::lonlocal;  use Apache::lonlocal;
   use Apache::longroup;
   
 my $loginscript; # piece of javascript used in two separate instances  my $loginscript; # piece of javascript used in two separate instances
 my $generalrule;  my $generalrule;
Line 235  sub user_modification_js { Line 236  sub user_modification_js {
                         else {                          else {
                             sections = document.cu.elements[i+1].value;                                  sections = document.cu.elements[i+1].value;    
                         }                          }
                         var newsecs = document.cu.elements[i+1].value;                          var newseclist = document.cu.elements[i+1].value;
                         if (newsecs != null && newsecs != "") {                          var newsecs = new Array();
                             var numsplit = newsecs.split(/,/g);                          if (newseclist != null && newseclist != "") {
                             numsec = numsec + numsplit.length;                              newsecs = newseclist.split(/,/g);
                               numsec = numsec + newsecs.length;
                         }                          }
                         if ((role == 'st') && (numsec > 1)) {                          if ((role == 'st') && (numsec > 1)) {
                             alert("In each course, each user may only have one student role at a time. You had selected "+numsec+" sections.\\nPlease modify your selections so they include no more than one section.")                                alert("In each course, each user may only have one student role at a time. You had selected "+numsec+" sections.\\nPlease modify your selections so they include no more than one section.")  
                             return;                              return;
                         }                          }
                         else {                          else {
                             for (var j=0; j<numsplit.length; j++) {                              for (var j=0; j<newsecs.length; j++) {
                                 if ((numsplit[j] == 'all') ||                                   if ((newsecs[j] == 'all') || 
                                     (numsplit[j] == 'none')) {                                      (newsecs[j] == 'none')) {
                                     alert("'"+numsplit[j]+"' may not be used as the name for a section, as it is a reserved word.\\nPlease choose a different section name.");                                      alert("'"+newsecs[j]+"' may not be used as the name for a section, as it is a reserved word.\\nPlease choose a different section name.");
                                     return;                                      return;
                                 }                                  }
                                 for (var k=0; k<groups.length; k++) {                                  for (var k=0; k<groups.length; k++) {
                                     if (numsplit[j] == groups[k]) {                                      if (newsecs[j] == groups[k]) {
                                         alert("'"+numsplit[j]+"' may not be used as a section name, as it is the name of a course group.\\nSection names and group names must be distinct. Please choose a different section name.");                                          alert("'"+newsecs[j]+"' may not be used as a section name, as it is the name of a course group.\\nSection names and group names must be distinct. Please choose a different section name.");
                                         return;                                          return;
                                     }                                      }
                                 }                                  }
Line 302  sub print_user_modification_page { Line 304  sub print_user_modification_page {
     my $dc_setcourse_code = '';      my $dc_setcourse_code = '';
     my $nondc_setsection_code = '';      my $nondc_setsection_code = '';
     my %loaditem;      my %loaditem;
     my (%curr_groups,$groupslist,$numgroups);  
     if (exists($env{'request.course.id'})) {      my $groupslist;
         my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};      my %curr_groups = &Apache::longroup::coursegroups();
         my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};      if (%curr_groups) {
         $numgroups = &Apache::loncommon::coursegroups(\%curr_groups,$cdom,  
                                                          $cnum);  
     }  
     if ($numgroups > 0) {  
         $groupslist = join('","',sort(keys(%curr_groups)));          $groupslist = join('","',sort(keys(%curr_groups)));
         $groupslist = '"'.$groupslist.'"';             $groupslist = '"'.$groupslist.'"';   
     }      }
   
     if ($env{'request.role'} =~ m-^dc\./(\w+)/$-) {      if ($env{'request.role'} =~ m-^dc\./(\w+)/$-) {
         my $dcdom = $1;          my $dcdom = $1;
         $loaditem{'onload'} = "document.cu.coursedesc.value=''";          $loaditem{'onload'} = "document.cu.coursedesc.value=''";
Line 327  sub print_user_modification_page { Line 326  sub print_user_modification_page {
             var userrole = document.cu.role.options[document.cu.role.selectedIndex].value              var userrole = document.cu.role.options[document.cu.role.selectedIndex].value
             var section="";              var section="";
             var numsections = 0;              var numsections = 0;
               var newsecs = new Array();
             for (var i=0; i<document.cu.currsec.length; i++) {              for (var i=0; i<document.cu.currsec.length; i++) {
                 if (document.cu.currsec.options[i].selected == true ) {                  if (document.cu.currsec.options[i].selected == true ) {
                     if (document.cu.currsec.options[i].value != "" && document.cu.currsec.options[i].value != null) {                       if (document.cu.currsec.options[i].value != "" && document.cu.currsec.options[i].value != null) { 
Line 348  sub print_user_modification_page { Line 348  sub print_user_modification_page {
                 else {                  else {
                     section = section + "," +  document.cu.newsec.value                      section = section + "," +  document.cu.newsec.value
                 }                  }
                 var numsplit = document.cu.newsec.value.split(/,/g);                  newsecs = document.cu.newsec.value.split(/,/g);
                 numsections = numsections + numsplit.length;                  numsections = numsections + newsecs.length;
             }              }
             if ((userrole == 'st') && (numsections > 1)) {              if ((userrole == 'st') && (numsections > 1)) {
                 alert("In each course, each user may only have one student role at a time. You had selected "+numsections+" sections.\\nPlease modify your selections so they include no more than one section.")                  alert("In each course, each user may only have one student role at a time. You had selected "+numsections+" sections.\\nPlease modify your selections so they include no more than one section.")
                 return;                  return;
             }              }
             for (var j=0; j<numsplit.length; j++) {              for (var j=0; j<newsecs.length; j++) {
                 if ((numsplit[j] == 'all') || (numsplit[j] == 'none')) {                  if ((newsecs[j] == 'all') || (newsecs[j] == 'none')) {
                     alert("'"+numsplit[j]+"' may not be used as the name for a section, as it is a reserved word.\\nPlease choose a different section name.");                      alert("'"+newsecs[j]+"' may not be used as the name for a section, as it is a reserved word.\\nPlease choose a different section name.");
                     return;                      return;
                 }                  }
                 if (document.cu.groups.value != '') {                  if (document.cu.groups.value != '') {
                     var groups = document.cu.groups.value.split(/,/g);                      var groups = document.cu.groups.value.split(/,/g);
                     for (var k=0; k<groups.length; k++) {                      for (var k=0; k<groups.length; k++) {
                         if (numsplit[j] == groups[k]) {                          if (newsecs[j] == groups[k]) {
                             alert("'"+numsplit[j]+"' may not be used as the name for a section, as it is the name of a course group.\\nSection names and group names must be distinct. Please choose a different section name.");                              alert("'"+newsecs[j]+"' may not be used as the name for a section, as it is the name of a course group.\\nSection names and group names must be distinct. Please choose a different section name.");
                             return;                               return; 
                         }                          }
                     }                      }
Line 977  ENDDROW Line 977  ENDDROW
 #  #
 # Course level  # Course level
 #  #
     my $num_sections;  
   
     if ($env{'request.role'} =~ m-^dc\./(\w+)/$-) {      if ($env{'request.role'} =~ m-^dc\./(\w+)/$-) {
         $r->print(&course_level_dc($1));          $r->print(&course_level_dc($1));
Line 1209  END Line 1208  END
         }          }
     }      }
     ##      ##
     my %curr_groups;  
     my $now=time;      my $now=time;
     $r->print('<h3>'.&mt('Modifying Roles').'</h3>');      $r->print('<h3>'.&mt('Modifying Roles').'</h3>');
     foreach (keys (%env)) {      foreach (keys (%env)) {
Line 1243  END Line 1241  END
  '</b><br />');   '</b><br />');
     }      }
  } elsif ($_=~/^form\.del/) {   } elsif ($_=~/^form\.del/) {
     if ($_=~/^form\.del\:([^\_]+)\_([^\_]+)$/) {      if ($_=~/^form\.del\:([^\_]+)\_([^\_\.]+)$/) {
   # Delete standard role
         $r->print(&mt('Deleting').' '.$2.' in '.$1.': '.          $r->print(&mt('Deleting').' '.$2.' in '.$1.': '.
                      &Apache::lonnet::assignrole($env{'form.ccdomain'},                       &Apache::lonnet::assignrole($env{'form.ccdomain'},
                      $env{'form.ccuname'},$1,$2,$now,0,1).'<br />');                       $env{'form.ccuname'},$1,$2,$now,0,1).'<br />');
Line 1259  END Line 1258  END
                          &Apache::lonnet::escape($now.':'),                           &Apache::lonnet::escape($now.':'),
                      $env{'course.'.$cid.'.home'}).'</b><br />');                       $env{'course.'.$cid.'.home'}).'</b><br />');
  }   }
     }              }
               if ($_=~/^form\.del\:([^\_]+)\_cr\.cr\/(\w+)\/(\w+)\/(\w+)$/) {
                   my ($url,$rdom,$rnam,$rolename) = ($1,$2,$3,$4);
   # Delete custom role
                   $r->print(&mt('Deleting custom role [_1] by [_2]@[_3] in [_4]',
                         $rolename,$rnam,$rdom,$url).': <b>'.
                         &Apache::lonnet::assigncustomrole($env{'form.ccdomain'},
                            $env{'form.ccuname'},$url,$rdom,$rnam,$rolename,$now,
                            0,1).'</b><br />');
               }
  } elsif ($_=~/^form\.ren/) {   } elsif ($_=~/^form\.ren/) {
             my $udom = $env{'form.ccdomain'};              my $udom = $env{'form.ccdomain'};
             my $uname = $env{'form.ccuname'};              my $uname = $env{'form.ccuname'};
     if ($_=~/^form\.ren\:([^\_]+)\_([^\_]+)$/) {  # Re-enable standard role
       if ($_=~/^form\.ren\:([^\_]+)\_([^\_\.]+)$/) {
                 my $url = $1;                  my $url = $1;
                 my $role = $2;                  my $role = $2;
                 my $logmsg;                  my $logmsg;
Line 1283  END Line 1292  END
                 } else {                  } else {
     my $result=&Apache::lonnet::assignrole($env{'form.ccdomain'},      my $result=&Apache::lonnet::assignrole($env{'form.ccdomain'},
                                $env{'form.ccuname'},$url,$role,0,$now);                                 $env{'form.ccuname'},$url,$role,0,$now);
     $output = &mt('Re-Enabling [_1] in [_2]: [_3]',      $output = &mt('Re-enabling [_1] in [_2]: <b>[_3]</b>',
       $role,$url,$result).'<br />';        $role,$url,$result).'<br />';
  }   }
                 $r->print($output);                  $r->print($output);
     }      }
   # Re-enable custom role
               if ($_=~/^form\.ren\:([^\_]+)\_cr\.cr\/(\w+)\/(\w+)\/(\w+)$/) {
                   my ($url,$rdom,$rnam,$rolename) = ($1,$2,$3,$4);
                   my $result = &Apache::lonnet::assigncustomrole(
                                  $env{'form.ccdomain'}, $env{'form.ccuname'},
                                  $url,$rdom,$rnam,$rolename,0,$now);
                   $r->print(&mt('Re-enabling custom role [_1] by [_2]@[_3] in [_4] : <b>[_5]</b>',
                             $rolename,$rnam,$rdom,$url,$result).'<br />');
               }
  } elsif ($_=~/^form\.act/) {   } elsif ($_=~/^form\.act/) {
             my $udom = $env{'form.ccdomain'};              my $udom = $env{'form.ccdomain'};
             my $uname = $env{'form.ccuname'};              my $uname = $env{'form.ccuname'};
Line 1310  END Line 1328  END
                 if ($num_sections == 0) {                  if ($num_sections == 0) {
                     $r->print(&commit_customrole($udom,$uname,$url,$three,$four,$five,$start,$end));                      $r->print(&commit_customrole($udom,$uname,$url,$three,$four,$five,$start,$end));
                 } else {                  } else {
                     my $numgrp=&Apache::loncommon::coursegroups(\%curr_groups,      my %curr_groups =
                                                                 $one,$two);   &Apache::longroup::coursegroups($one,$two);
                     foreach my $sec (sort {$a cmp $b} keys %sections) {                      foreach my $sec (sort {$a cmp $b} keys %sections) {
                         if (($sec eq 'none') || ($sec eq 'all') ||                           if (($sec eq 'none') || ($sec eq 'all') || 
                             exists($curr_groups{$sec})) {                              exists($curr_groups{$sec})) {
Line 1340  END Line 1358  END
                 if ($num_sections == 0) {                  if ($num_sections == 0) {
                     $r->print(&commit_standardrole($udom,$uname,$url,$three,$start,$end,$one,$two,''));                      $r->print(&commit_standardrole($udom,$uname,$url,$three,$start,$end,$one,$two,''));
                 } else {                  } else {
                     my $numgrp=&Apache::loncommon::coursegroups(\%curr_groups,                      my %curr_groups = 
                                                                 $one,$two);   &Apache::longroup::coursegroups($one,$two);
                     my $emptysec = 0;                      my $emptysec = 0;
                     foreach my $sec (sort {$a cmp $b} keys %sections) {                      foreach my $sec (sort {$a cmp $b} keys %sections) {
                         $sec =~ s/\W//g;                          $sec =~ s/\W//g;
Line 1765  sub course_level_table { Line 1783  sub course_level_table {
  $bgcol=~s/[^7-9a-e]//g;   $bgcol=~s/[^7-9a-e]//g;
  $bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',2,6);   $bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',2,6);
  my ($domain,$cnum)=split(/\//,$thiscourse);   my ($domain,$cnum)=split(/\//,$thiscourse);
         my %sections_count = ();          my %sections_count;
         my $num_sections = 0;  
         if (defined($env{'request.course.id'})) {          if (defined($env{'request.course.id'})) {
             if ($env{'request.course.id'} eq $domain.'_'.$cnum) {              if ($env{'request.course.id'} eq $domain.'_'.$cnum) {
                 $num_sections = &Apache::loncommon::get_sections($domain,$cnum,\%sections_count);                  %sections_count = 
       &Apache::loncommon::get_sections($domain,$cnum);
             }              }
         }          }
  foreach  ('st','ta','ep','ad','in','cc') {   foreach  ('st','ta','ep','ad','in','cc') {
Line 1782  sub course_level_table { Line 1800  sub course_level_table {
 <td>$area<br />Domain: $domain</td>  <td>$area<br />Domain: $domain</td>
 ENDEXTENT  ENDEXTENT
         if ($_ ne 'cc') {          if ($_ ne 'cc') {
                     if ($num_sections > 0) {                      if (%sections_count) {
                         my $currsec = &course_sections($num_sections,\%sections_count,$protectedcourse.'_'.$_);                          my $currsec = &course_sections(\%sections_count,$protectedcourse.'_'.$_);
                         $table .=                           $table .= 
                     '<td><table border="0" cellspacing="0" cellpadding="0">'.                      '<td><table border="0" cellspacing="0" cellpadding="0">'.
                      '<tr><td valign="top">'.$lt{'exs'}.'<br />'.                       '<tr><td valign="top">'.$lt{'exs'}.'<br />'.
Line 1823  ENDTIMEENTRY Line 1841  ENDTIMEENTRY
 <td>$plrole</td>  <td>$plrole</td>
 <td>$area</td>  <td>$area</td>
 END  END
                 if ($num_sections > 0) {                  if (%sections_count) {
                     my $currsec = &course_sections($num_sections,\%sections_count,$customrole);                      my $currsec = &course_sections(\%sections_count,$customrole);
                     $table.=                      $table.=
                    '<td><table border="0" cellspacing="0" cellpadding="0">'.                     '<td><table border="0" cellspacing="0" cellpadding="0">'.
                    '<tr><td valign="top">'.$lt{'exs'}.'<br />'.                     '<tr><td valign="top">'.$lt{'exs'}.'<br />'.
Line 1863  ENDTABLE Line 1881  ENDTABLE
 }  }
   
 sub course_sections {  sub course_sections {
     my ($num_sections,$sections_count,$role) = @_;      my ($sections_count,$role) = @_;
     my $output = '';      my $output = '';
     my @sections = (sort {$a <=> $b} keys %{$sections_count});      my @sections = (sort {$a <=> $b} keys %{$sections_count});
     if ($num_sections == 1) {      if (scalar(@sections) == 1) {
         $output = '<select name="currsec_'.$role.'" >'."\n".          $output = '<select name="currsec_'.$role.'" >'."\n".
                   '  <option value="">Select</option>'."\n".                    '  <option value="">Select</option>'."\n".
                   '  <option value="">No section</option>'."\n".                    '  <option value="">No section</option>'."\n".
Line 1874  sub course_sections { Line 1892  sub course_sections {
     } else {      } else {
         $output = '<select name="currsec_'.$role.'" ';          $output = '<select name="currsec_'.$role.'" ';
         my $multiple = 4;          my $multiple = 4;
         if ($num_sections <4) { $multiple = $num_sections; }          if (scalar(@sections) < 4) { $multiple = scalar(@sections); }
         $output .= '"multiple" size="'.$multiple.'">'."\n";          $output .= '"multiple" size="'.$multiple.'">'."\n";
         foreach (@sections) {          foreach (@sections) {
             $output .= '<option value="'.$_.'">'.$_."</option>\n";              $output .= '<option value="'.$_.'">'.$_."</option>\n";

Removed from v.1.113  
changed lines
  Added in v.1.117


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