Diff for /loncom/interface/loncreateuser.pm between versions 1.79 and 1.88

version 1.79, 2004/02/26 19:43:13 version 1.88, 2004/11/23 18:03:04
Line 123  sub print_username_entry_form { Line 123  sub print_username_entry_form {
     my $defdom=$ENV{'request.role.domain'};      my $defdom=$ENV{'request.role.domain'};
     my @domains = &Apache::loncommon::get_domains();      my @domains = &Apache::loncommon::get_domains();
     my $domform = &Apache::loncommon::select_dom_form($defdom,'ccdomain');      my $domform = &Apache::loncommon::select_dom_form($defdom,'ccdomain');
     my $bodytag =&Apache::loncommon::bodytag(      my $bodytag =&Apache::loncommon::bodytag('Create Users, Change User Privileges').&Apache::loncommon::help_open_menu('',undef,undef,'',282,'Instructor Interface');
                                   'Create Users, Change User Privileges').  
   &Apache::loncommon::help_open_faq(282).  
   &Apache::loncommon::help_open_bug('Instructor Interface');  
     my $selscript=&Apache::loncommon::studentbrowser_javascript();      my $selscript=&Apache::loncommon::studentbrowser_javascript();
     my $sellink=&Apache::loncommon::selectstudent_link      my $sellink=&Apache::loncommon::selectstudent_link
                                         ('crtuser','ccuname','ccdomain');                                          ('crtuser','ccuname','ccdomain');
Line 177  sub print_user_modification_page { Line 174  sub print_user_modification_page {
     my $ccuname=$ENV{'form.ccuname'};      my $ccuname=$ENV{'form.ccuname'};
     my $ccdomain=$ENV{'form.ccdomain'};      my $ccdomain=$ENV{'form.ccdomain'};
   
     $ccuname=~s/\W//gs;      $ccuname=~s/[\W|_]//gs;
     $ccdomain=~s/\W//gs;      $ccdomain=~s/[\W|_]//gs;
   
     unless (($ccuname) && ($ccdomain)) {      unless (($ccuname) && ($ccdomain)) {
  &print_username_entry_form($r);   &print_username_entry_form($r);
Line 200  sub print_user_modification_page { Line 197  sub print_user_modification_page {
     $ccuname=~s/\W//g;      $ccuname=~s/\W//g;
     $ccdomain=~s/\W//g;      $ccdomain=~s/\W//g;
     my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition();      my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition();
       my $dc_setcourse_code = '';
       my $loaditem;
       if ($ENV{'request.role'} =~ m-^dc\./(\w+)/$-) {
           my $dcdom = $1;
           $loaditem = qq|OnLoad="document.cu.coursedesc.value=''"|;
           $dc_setcourse_code = <<"ENDSCRIPT";
       function setCourse() {
           var course = document.cu.dccourse.value;
           if (course != "") {
               if (document.cu.dcdomain.value != document.cu.origdom.value) {
                   alert("You must select a course in the current domain");
                   return;
               } 
               var userrole = document.cu.role.options[document.cu.role.selectedIndex].value
               var section;
               var numsections = 0;
               if (document.cu.role.value != "cc") {
                   for (var i=0; i<document.cu.currsec.length; i++) {
                       if (document.cu.currsec.options[i].selected == true ) {
                           if (document.cu.currsec.options[i].value != "") { 
                               if (numsections == 0) {
                                   if (document.cu.currsec.options[i].value != "") {
                                       section = document.cu.currsec.options[i].value
                                       numsections = 1;
                                   }
                               }
                               else {
                                   section = section + "," +  document.cu.currsec.options[i].value
                                   numsections ++;
                               }
                           }
                       }
                   }
                   if (document.cu.newsec.value != "") {
                       if (numsections == 0) {
                           if (document.cu.newsec.value != "") {
                               section = document.cu.newsec.value
                               numsections = 1;
                           }
                       }
                       else {
                           section = section + "," +  document.cu.newsec.value
                           numsections ++;
                       }
                   }
               }
               var numcourse = getIndex(document.cu.dccourse);
               if (numcourse == "-1") {
                   alert("There was a problem with your course selection");
                   return
               }
               else { 
                   var coursename = "_$dcdom"+"_"+course+"_"+userrole
                   document.cu.elements[numcourse].name = "act"+coursename
                   document.cu.elements[numcourse+4].name = "sec"+coursename
                   document.cu.elements[numcourse+4].value = section
                   document.cu.elements[numcourse+5].name = "start"+coursename
                   document.cu.elements[numcourse+6].name = "end"+coursename
               }
           }
           document.cu.submit();
       }
   
       function getIndex(caller) {
           for (var i=0;i<document.cu.elements.length;i++) {
               if (document.cu.elements[i] == caller) {
                   return i;
               }
           }
           return -1;
       }
   ENDSCRIPT
       }
     my $dochead =<<"ENDDOCHEAD";      my $dochead =<<"ENDDOCHEAD";
 <html>  <html>
 <head>  <head>
Line 213  sub print_user_modification_page { Line 283  sub print_user_modification_page {
     }      }
   
     $pjump_def      $pjump_def
       $dc_setcourse_code
   
     function dateset() {      function dateset() {
         eval("document.cu."+document.cu.pres_marker.value+          eval("document.cu."+document.cu.pres_marker.value+
Line 224  sub print_user_modification_page { Line 295  sub print_user_modification_page {
 </head>  </head>
 ENDDOCHEAD  ENDDOCHEAD
     $r->print(&Apache::loncommon::bodytag(      $r->print(&Apache::loncommon::bodytag(
                                      'Create Users, Change User Privileges'));                                       'Create Users, Change User Privileges',undef,$loaditem));
     my $forminfo =<<"ENDFORMINFO";      my $forminfo =<<"ENDFORMINFO";
 <form action="/adm/createuser" method="post" name="cu">  <form action="/adm/createuser" method="post" name="cu">
 <input type="hidden" name="phase"       value="update_user_data">  <input type="hidden" name="phase"       value="update_user_data">
Line 345  END Line 416  END
     'rer'  => "Revoke Existing Roles",      'rer'  => "Revoke Existing Roles",
                     'rev'  => "Revoke",                                          'rev'  => "Revoke",                    
                     'del'  => "Delete",                      'del'  => "Delete",
       'ren'  => "Re-Enable",
                     'rol'  => "Role",                      'rol'  => "Role",
                     'ext'  => "Extent",                      'ext'  => "Extent",
                     'sta'  => "Start",                      'sta'  => "Start",
Line 354  END Line 426  END
 <hr />  <hr />
 <h3>$lt{'rer'}</h3>  <h3>$lt{'rer'}</h3>
 <table>  <table>
 <tr><th>$lt{'rev'}</th><th>$lt{'del'}</th><th>$lt{'rol'}</th><th>$lt{'ext'}</th><th>$lt{'sta'}</th><th>$lt{'end'}</th>  <tr><th>$lt{'rev'}</th><th>$lt{'ren'}</th><th>$lt{'del'}</th><th>$lt{'rol'}</th><th>$lt{'ext'}</th><th>$lt{'sta'}</th><th>$lt{'end'}</th>
 END  END
            my (%roletext,%sortrole,%roleclass);             my (%roletext,%sortrole,%roleclass);
    foreach my $area (sort { my $a1=join('_',(split('_',$a))[1,0]);     foreach my $area (sort { my $a1=join('_',(split('_',$a))[1,0]);
Line 391  END Line 463  END
        $sortkey.="\0".$coursedata{'description'};         $sortkey.="\0".$coursedata{'description'};
    } else {     } else {
        $carea=&mt('Unavailable course').': '.$area;         $carea=&mt('Unavailable course').': '.$area;
        $sortkey.="\0".&mt('Unavailable course');         $sortkey.="\0".&mt('Unavailable course').': '.$area;
    }     }
                    $inccourses{$1.'_'.$2}=1;                     $inccourses{$1.'_'.$2}=1;
                    if ((&Apache::lonnet::allowed('c'.$role_code,$1.'/'.$2)) ||                     if ((&Apache::lonnet::allowed('c'.$role_code,$1.'/'.$2)) ||
Line 415  END Line 487  END
                    $bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',2,6);                     $bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',2,6);
                    if ($area=~/^\/(\w+)\/(\d\w+)\/(\w+)/) {                     if ($area=~/^\/(\w+)\/(\d\w+)\/(\w+)/) {
                        $carea.='<br>Section/Group: '.$3;                         $carea.='<br>Section/Group: '.$3;
          $sortkey.="\0$3";
                    }                     }
                    $area=$carea;                     $area=$carea;
                } else {                 } else {
Line 466  END Line 539  END
    }     }
                }                 }
        $row.='</td><td>';         $row.='</td><td>';
                  if ($allowed && !$active) {
                      $row.= '<input type="checkbox" name="ren:'.$thisrole.'">';
                  } else {
                      $row.='&nbsp;';
                  }
          $row.='</td><td>';
                if ($delallowed) {                 if ($delallowed) {
                    $row.= '<input type="checkbox" name="del:'.$thisrole.'">';                     $row.= '<input type="checkbox" name="del:'.$thisrole.'">';
                } else {                 } else {
Line 619  ENDOTHERAUTHS Line 698  ENDOTHERAUTHS
                     'rol'  => "Role",                      'rol'  => "Role",
                     'ext'  => "Extent",                      'ext'  => "Extent",
                     'sta'  => "Start",                      'sta'  => "Start",
                     'end'  => "End".                      'end'  => "End",
                     'cau'  => "Co-Author",                      'cau'  => "Co-Author",
                     'ssd'  => "Set Start Date",                      'ssd'  => "Set Start Date",
                     'sed'  => "Set End Date"                      'sed'  => "Set End Date"
Line 629  ENDOTHERAUTHS Line 708  ENDOTHERAUTHS
 <table border=2><tr><th>$lt{'act'}</th><th>$lt{'rol'}</th><th>$lt{'ext'}</th>  <table border=2><tr><th>$lt{'act'}</th><th>$lt{'rol'}</th><th>$lt{'ext'}</th>
 <th>$lt{'sta'}</th><th>$lt{'end'}</th></tr>  <th>$lt{'sta'}</th><th>$lt{'end'}</th></tr>
 <tr>  <tr>
 <td><input type=checkbox name="act_$cudom\_$cuname\_ca"></td>  <td><input type=checkbox name="act_$cudom\_$cuname\_ca" /></td>
 <td>$lt{'cau'}</td>  <td>$lt{'cau'}</td>
 <td>$cudom\_$cuname</td>  <td>$cudom\_$cuname</td>
 <td><input type=hidden name="start_$cudom\_$cuname\_ca" value=''>  <td><input type=hidden name="start_$cudom\_$cuname\_ca" value='' />
 <a href=  <a href=
 "javascript:pjump('date_start','Start Date Co-Author',document.cu.start_$cudom\_$cuname\_ca.value,'start_$cudom\_$cuname\_ca','cu.pres','dateset')">$lt{'ssd'}</a></td>  "javascript:pjump('date_start','Start Date Co-Author',document.cu.start_$cudom\_$cuname\_ca.value,'start_$cudom\_$cuname\_ca','cu.pres','dateset')">$lt{'ssd'}</a></td>
 <td><input type=hidden name="end_$cudom\_$cuname\_ca" value=''>  <td><input type=hidden name="end_$cudom\_$cuname\_ca" value='' />
 <a href=  <a href=
 "javascript:pjump('date_end','End Date Co-Author',document.cu.end_$cudom\_$cuname\_ca.value,'end_$cudom\_$cuname\_ca','cu.pres','dateset')">$lt{'sed'}</a></td>  "javascript:pjump('date_end','End Date Co-Author',document.cu.end_$cudom\_$cuname\_ca.value,'end_$cudom\_$cuname\_ca','cu.pres','dateset')">$lt{'sed'}</a></td>
 </tr>  </tr>
Line 677  ENDDROW Line 756  ENDDROW
 #  #
 # Course level  # Course level
 #  #
     $r->print(&course_level_table(%inccourses));  
     $r->print("<hr /><input type=submit value=\"".&mt('Modify User')."\">\n");      if ($ENV{'request.role'} =~ m-^dc\./(\w+)/$-) {
           $r->print(&course_level_dc($1));
           $r->print('<hr /><input type="button" value="'.&mt('Modify User').'" onClick="setCourse()">'."\n");
       } else {
           $r->print(&course_level_table(%inccourses));
           $r->print("<hr /><input type=submit value=\"".&mt('Modify User')."\">\n");
       }
     $r->print("</form></body></html>");      $r->print("</form></body></html>");
 }  }
   
Line 957  END Line 1042  END
                      $ENV{'course.'.$cid.'.home'}).'</b><br>');                       $ENV{'course.'.$cid.'.home'}).'</b><br>');
  }   }
     }       } 
  } elsif ($_=~/^form\.act/) {   } elsif ($_=~/^form\.ren/) {
     if       if ($_=~/^form\.ren\:([^\_]+)\_([^\_]+)$/) {
 ($_=~/^form\.act\_([^\_]+)\_([^\_]+)\_cr_cr_([^\_]+)_(\w+)_([^\_]+)$/) {   my $result=&Apache::lonnet::assignrole($ENV{'form.ccdomain'},
                 # Activate a custom role   $ENV{'form.ccuname'},$1,$2,0,$now);
  my $url='/'.$1.'/'.$2;   $r->print(&mt('Re-Enabling [_1] in [_2]: [_3]',
  my $full=$1.'_'.$2.'_cr_cr_'.$3.'_'.$4.'_'.$5;        $2,$1,$result).'<br />');
  if ($ENV{'form.sec_'.$full}) {   if ($2 eq 'st') {
     $url.='/'.$ENV{'form.sec_'.$full};      $1=~/^\/(\w+)\/(\w+)/;
  }  
   
  my $start = ( $ENV{'form.start_'.$full} ?   
       $ENV{'form.start_'.$full} :   
       $now );  
  my $end   = ( $ENV{'form.end_'.$full} ?   
       $ENV{'form.end_'.$full} :  
       0 );  
   
     $r->print(&mt('Assigning custom role').' "'.$5.'" by '.$4.'@'.$3.' in '.$url.  
                          ($start?', '.&mt('starting').' '.localtime($start):'').  
                          ($end?', ending '.localtime($end):'').': <b>'.  
       &Apache::lonnet::assigncustomrole(  
  $ENV{'form.ccdomain'},$ENV{'form.ccuname'},$url,$3,$4,$5,$end,$start).  
       '</b><br>');  
     } elsif ($_=~/^form\.act\_([^\_]+)\_([^\_]+)\_([^\_]+)$/) {  
  # Activate roles for sections with 3 id numbers  
  # set start, end times, and the url for the class  
   
  my $start = ( $ENV{'form.start_'.$1.'_'.$2.'_'.$3} ?   
       $ENV{'form.start_'.$1.'_'.$2.'_'.$3} :   
       $now );  
  my $end   = ( $ENV{'form.end_'.$1.'_'.$2.'_'.$3} ?   
       $ENV{'form.end_'.$1.'_'.$2.'_'.$3} :  
       0 );  
  my $url='/'.$1.'/'.$2;  
  if ($ENV{'form.sec_'.$1.'_'.$2.'_'.$3}) {  
     $url.='/'.$ENV{'form.sec_'.$1.'_'.$2.'_'.$3};  
  }  
  # Assign the role and report it  
  $r->print(&mt('Assigning').' '.$3.' in '.$url.  
                          ($start?', '.&mt('starting').' '.localtime($start):'').  
                          ($end?', '.&mt('ending').' '.localtime($end):'').': <b>'.  
                           &Apache::lonnet::assignrole(  
                               $ENV{'form.ccdomain'},$ENV{'form.ccuname'},  
                               $url,$3,$end,$start).  
   '</b><br>');  
  # Handle students differently  
  if ($3 eq 'st') {  
     $url=~/^\/(\w+)\/(\w+)/;  
     my $cid=$1.'_'.$2;      my $cid=$1.'_'.$2;
     $r->print(&mt('Add to classlist').': <b>'.      $r->print(&mt('Add to classlist').': <b>'.
       &Apache::lonnet::critical(        &Apache::lonnet::critical(
Line 1013  END Line 1058  END
                                    &Apache::lonnet::escape(                                     &Apache::lonnet::escape(
                                        $ENV{'form.ccuname'}.':'.                                         $ENV{'form.ccuname'}.':'.
                                        $ENV{'form.ccdomain'} ).'='.                                         $ENV{'form.ccdomain'} ).'='.
                                    &Apache::lonnet::escape($end.':'.$start),                                     &Apache::lonnet::escape(':'.$now),
        $ENV{'course.'.$cid.'.home'})         $ENV{'course.'.$cid.'.home'})
       .'</b><br>');        .'</b><br>');
  }   }
       } 
    } elsif ($_=~/^form\.act/) {
       if ($_=~/^form\.act\_([^\_]+)\_([^\_]+)\_cr_cr_([^\_]+)_(\w+)_([^\_]+)$/) {
                   # Activate a custom role
    my ($one,$two,$three,$four,$five)=($1,$2,$3,$4,$5);
    my $url='/'.$one.'/'.$two;
    my $full=$one.'_'.$two.'_cr_cr_'.$three.'_'.$four.'_'.$five;
   
                   my $start = ( $ENV{'form.start_'.$full} ?
                                 $ENV{'form.start_'.$full} :
                                 $now );
                   my $end   = ( $ENV{'form.end_'.$full} ?
                                 $ENV{'form.end_'.$full} :
                                 0 );
                                                                                        
                   # split multiple sections
                   my %sections = ();
                   my $num_sections = &build_roles($ENV{'form.sec_'.$full},\%sections);
                   if ($num_sections == 0) {
                       $r->print(&commit_customrole($url,$three,$four,$five,$start,$end));
                   } else {
                       foreach (sort {$a cmp $b} keys %sections) {
                           my $securl = $url.'/'.$_;
           $r->print(&commit_customrole($securl,$three,$four,$five,$start,$end));
                       }
                   }
       } elsif ($_=~/^form\.act\_([^\_]+)\_([^\_]+)\_([^\_]+)$/) {
    # Activate roles for sections with 3 id numbers
    # set start, end times, and the url for the class
    my ($one,$two,$three)=($1,$2,$3);
    my $start = ( $ENV{'form.start_'.$one.'_'.$two.'_'.$three} ? 
         $ENV{'form.start_'.$one.'_'.$two.'_'.$three} : 
         $now );
    my $end   = ( $ENV{'form.end_'.$one.'_'.$two.'_'.$three} ? 
         $ENV{'form.end_'.$one.'_'.$two.'_'.$three} :
         0 );
    my $url='/'.$one.'/'.$two;
                   my $type = 'three';
                   # split multiple sections
                   my %sections = ();
                   my $num_sections = &build_roles($ENV{'form.sec_'.$one.'_'.$two.'_'.$three},\%sections);
                   if ($num_sections == 0) {
                       $r->print(&commit_standardrole($url,$three,$start,$end,$one,$two));
                   } else {
                       my $emptysec = 0;
                       foreach my $sec (sort {$a cmp $b} keys %sections) {
                           $sec =~ s/\W//g;
                           if ($sec ne '') {  
                               my $securl = $url.'/'.$sec;
                               $r->print(&commit_standardrole($securl,$three,$start,$end,$one,$two));
                           } else {
                               $emptysec = 1;
                           }
                       }
                       if ($emptysec) {
                           $r->print(&commit_standardrole($url,$three,$start,$end,$one,$two));
                       }
                   } 
     } elsif ($_=~/^form\.act\_([^\_]+)\_([^\_]+)$/) {      } elsif ($_=~/^form\.act\_([^\_]+)\_([^\_]+)$/) {
  # Activate roles for sections with two id numbers   # Activate roles for sections with two id numbers
  # set start, end times, and the url for the class   # set start, end times, and the url for the class
Line 1027  END Line 1130  END
       $ENV{'form.end_'.$1.'_'.$2} :        $ENV{'form.end_'.$1.'_'.$2} :
       0 );        0 );
  my $url='/'.$1.'/';   my $url='/'.$1.'/';
                   # split multiple sections
                   my %sections = ();
                   my $num_sections = &build_roles($ENV{'form.sec_'.$1.'_'.$2},\%sections);
                   if ($num_sections == 0) {
                       $r->print(&commit_standardrole($url,$2,$start,$end,$1));
                   } else {
                       my $emptysec = 0;
                       foreach my $sec (sort {$a cmp $b} keys %sections) {
                           if ($sec ne '') {
                               my $securl = $url.'/'.$sec;
                               $r->print(&commit_standardrole($securl,$2,$start,$end,$1));
                           } else {
                               $emptysec = 1;
                           }
                       }
                       if ($emptysec) {
                           $r->print(&commit_standardrole($url,$2,$start,$end,$1));
                       }
                   }
  # Assign the role and report it.   # Assign the role and report it.
  $r->print(&mt('Assigning').' '.$2.' in '.$url.': '.   $r->print(&mt('Assigning').' '.$2.' in '.$url.': '.
                          ($start?', '.&mt('starting').' '.localtime($start):'').                           ($start?', '.&mt('starting').' '.localtime($start):'').
Line 1045  END Line 1167  END
     $r->print('</body></html>');      $r->print('</body></html>');
 }  }
   
   sub commit_customrole {
       my ($url,$three,$four,$five,$end,$start) = @_;
       my $output = &mt('Assigning custom role').' "'.$five.'" by '.$four.'@'.$three.' in '.$url.
                            ($start?', '.&mt('starting').' '.localtime($start):'').
                            ($end?', ending '.localtime($end):'').': <b>'.
                 &Apache::lonnet::assigncustomrole(
           $ENV{'form.ccdomain'},$ENV{'form.ccuname'},$url,$three,$four,$five,$end,$start).
                 '</b><br>';
       return $output;
   }
   
   sub commit_standardrole {
       my ($url,$three,$start,$end,$one,$two) = @_;
       my $output = (&mt('Assigning').' '.$three.' in '.$url.
              ($start?', '.&mt('starting').' '.localtime($start):'').
              ($end?', '.&mt('ending').' '.localtime($end):'').': <b>'.
              &Apache::lonnet::assignrole(
                  $ENV{'form.ccdomain'},$ENV{'form.ccuname'},
                  $url,$three,$end,$start).
                  '</b><br>');
   
   # Handle students differently
       if (($three eq 'st') && defined($one) && defined($two)) {
           $url=~/^\/(\w+)\/(\w+)/;
           my $cid=$one.'_'.$two;
           $output .= (&mt('Add to classlist').': <b>'.
                   &Apache::lonnet::critical(
                   'put:'.$ENV{'course.'.$cid.'.domain'}.':'.
                   $ENV{'course.'.$cid.'.num'}.':classlist:'.
                   &Apache::lonnet::escape(
                   $ENV{'form.ccuname'}.':'.
                   $ENV{'form.ccdomain'} ).'='.
                   &Apache::lonnet::escape($end.':'.$start),
                   $ENV{'course.'.$cid.'.home'})
                  .'</b><br>');
       }
       return $output;
   }
   
   
   sub build_roles {
       my ($sectionstr,$sections) = @_;
       my $num_sections = 0;
       if ($sectionstr=~ /,/) {
           my @secnums = split/,/,$sectionstr;
           foreach my $sec (@secnums) {
               $sec =~ ~s/\W//g;
               unless ($sec eq "") {
                   if (exists($$sections{$sec})) {
                       $$sections{$sec} ++;
                   } else {
                       $$sections{$sec} = 1;
                       $num_sections ++;
                   }
               }
           }
       } else {
           $sectionstr=~s/\W//g;
           unless ($sectionstr eq '') {
               $$sections{$sectionstr} = 1;
               $num_sections ++;
           }
       }
                                                                                        
       return $num_sections;
   }
   
 # ========================================================== Custom Role Editor  # ========================================================== Custom Role Editor
   
 sub custom_role_editor {  sub custom_role_editor {
Line 1269  sub course_level_table { Line 1458  sub course_level_table {
  my $bgcol=$thiscourse;   my $bgcol=$thiscourse;
  $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)=split(/\//,$thiscourse);
  foreach  ('st','ta','ep','ad','in','cc') {   foreach  ('st','ta','ep','ad','in','cc') {
     if (&Apache::lonnet::allowed('c'.$_,$thiscourse)) {      if (&Apache::lonnet::allowed('c'.$_,$thiscourse)) {
  my $plrole=&Apache::lonnet::plaintext($_);   my $plrole=&Apache::lonnet::plaintext($_);
Line 1276  sub course_level_table { Line 1466  sub course_level_table {
 <tr bgcolor="#$bgcol">  <tr bgcolor="#$bgcol">
 <td><input type="checkbox" name="act_$protectedcourse\_$_"></td>  <td><input type="checkbox" name="act_$protectedcourse\_$_"></td>
 <td>$plrole</td>  <td>$plrole</td>
 <td>$area</td>  <td>$area<br />Domain: $domain</td>
 ENDEXTENT  ENDEXTENT
         if ($_ ne 'cc') {          if ($_ ne 'cc') {
     $table .= <<ENDSECTION;      $table .= <<ENDSECTION;
Line 1347  $table Line 1537  $table
 ENDTABLE  ENDTABLE
     return $result;      return $result;
 }  }
   
   sub course_level_dc {
       my ($dcdom) = @_;
       my %customroles=&my_custom_roles();
       my $hiddenitems = '<input type="hidden" name="dcdomain" value="'.$dcdom.'" />'.
                         '<input type="hidden" name="origdom" value="'.$dcdom.'" />'.
                         '<input type="hidden" name="dccourse" value="" />';
       my $courseform='<b>'.&Apache::loncommon::selectcourse_link
                        ('cu','dccourse','dcdomain','coursedesc').'</b>';
                                                                                         
       my $cb_jscript = &Apache::loncommon::coursebrowser_javascript($dcdom,$dcdom);
       my %lt=&Apache::lonlocal::texthash(
                       'crl'  => "Course Level",
                       'crt'  => "Course Title",
                       'rol'  => "Role",
                       'grs'  => "Group/Section",
                       'exs'  => "Existing sections",
                       'new'  => "Define new section", 
                       'sta'  => "Start",
                       'end'  => "End",
                       'ssd'  => "Set Start Date",
                       'sed'  => "Set End Date"
                     );
       my $header = '<h4>'.$lt{'crl'}.'</h4>'.
                    '<table border="2"><tr><th>'.$courseform.'</th><th>'.$lt{'rol'}.'</th><th>'.$lt{'grs'}.'</th><th>'.$lt{'sta'}.'</th><th>'.$lt{'end'}.'</th></tr>';
       my $otheritems = '<tr><td><input type="text" name="coursedesc" value="" onFocus="this.blur();opencrsbrowser('."'".'cu'."'".','."'".'dccourse'."'".','."'".'dcdomain'."'".','."'".'coursedesc'."'".')" /></td>'.
                        '<td><select name="role">'."\n";
       foreach  ('st','ta','ep','ad','in','cc') {
           my $plrole=&Apache::lonnet::plaintext($_);
           $otheritems .= '  <option value="'.$_.'">'.$plrole;
       }
       if ( keys %customroles > 0) {
           foreach (sort keys %customroles) {
               my $custrole='cr_cr_'.$ENV{'user.domain'}.
                       '_'.$ENV{'user.name'}.'_'.$_;
               $otheritems .= '  <option value="'.$custrole.'">'.$_;
           }
       }
       $otheritems .= '</select></td><td>'.
                        '<table border="0" cellspacing="0" cellpadding="0">'.
                        '<tr><td valign="top"><b>'.$lt{'exs'}.'</b><br /><select name="currsec">'.
                        ' <option value=""><--'.&mt('Pick course first').'</select></td>'.
                        '<td>&nbsp;&nbsp;</td>'.
                        '<td valign="top">&nbsp;<b>'.$lt{'new'}.'</b><br />'.
                        '<input type="text" name="newsec" value="" /></td>'.
                        '</tr></table></td>';
       $otheritems .= <<ENDTIMEENTRY;
   <td><input type=hidden name="start" value=''>
   <a href=
   "javascript:pjump('date_start','Start Date',document.cu.start.value,'start','cu.pres','dateset')">$lt{'ssd'}</a></td>
   <td><input type=hidden name="end" value=''>
   <a href=
   "javascript:pjump('date_end','End Date',document.cu.end.value,'end','cu.pres','dateset')">$lt{'sed'}</a></td>
   ENDTIMEENTRY
       $otheritems .= "</tr></table>\n";
       return $cb_jscript.$header.$hiddenitems.$otheritems;
   }
   
 #---------------------------------------------- end functions for &phase_two  #---------------------------------------------- end functions for &phase_two
   
 #--------------------------------- functions for &phase_two and &phase_three  #--------------------------------- functions for &phase_two and &phase_three

Removed from v.1.79  
changed lines
  Added in v.1.88


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