Diff for /loncom/interface/Attic/londropadd.pm between versions 1.94 and 1.99

version 1.94, 2003/12/12 18:04:38 version 1.99, 2004/01/15 19:27:05
Line 25 Line 25
 #  #
 # http://www.lon-capa.org/  # http://www.lon-capa.org/
 #  #
 # (Handler to set parameters for assessments  
 #  
 # (Handler to resolve ambiguous file locations  
 #  
 # (TeX Content Handler  
 #  #
 ###############################################################  ###############################################################
 ##############################################################  ##############################################################
Line 47  use Apache::lonlocal; Line 42  use Apache::lonlocal;
 ###############################################################  ###############################################################
 ###############################################################  ###############################################################
 sub header {  sub header {
     my $bodytag=&Apache::loncommon::bodytag('Enrollment Manager');      my $bodytag=&Apache::loncommon::bodytag('Enrollment Manager').
    &Apache::loncommon::help_open_faq(9).
    &Apache::loncommon::help_open_bug('Instructor Interface');
     my $title = &mt('LON-CAPA Enrollment Manager');      my $title = &mt('LON-CAPA Enrollment Manager');
     return(<<ENDHEAD);      return(<<ENDHEAD);
 <html>  <html>
Line 148  sub print_main_menu { Line 145  sub print_main_menu {
          'view'      => 'View Class List',           'view'      => 'View Class List',
          'drop'      => 'Drop Students',           'drop'      => 'Drop Students',
          'populate'  => 'Automated Enrollment Manager');           'populate'  => 'Automated Enrollment Manager');
       my %help=();
       foreach ('Course_Drop_Student','Course_Add_Student',
        'Course_Modify_Student_Data','Course_View_Class_List',
        'Course_Create_Class_List') {
    $help{$_}=&Apache::loncommon::help_open_topic($_);
       }
   
     $r->print(<<END);      $r->print(<<END);
 <p>  <p>
 <font size="+1">  <font size="+1">
     <a href="/adm/dropadd?action=upload">$Text{'upload'}</a>  <a href="/adm/dropadd?action=upload">$Text{'upload'}</a>
 </font>  </font>$help{'Course_Create_Class_List'}
 </p><p>  </p><p>
 <font size="+1">  <font size="+1">
     <a href="/adm/dropadd?action=enrollstudent">$Text{'enrollone'}</a>      <a href="/adm/dropadd?action=enrollstudent">$Text{'enrollone'}</a>
 </font>      </font>$help{'Course_Add_Student'}
 </p><p>  </p><p>
 <font size="+1">  <font size="+1">
     <a href="/adm/dropadd?action=modifystudent">$Text{'modify'}</a>      <a href="/adm/dropadd?action=modifystudent">$Text{'modify'}</a>
 </font>      </font>$help{'Course_Modify_Student_Data'}
 </p><p>  </p><p>
 <font size="+1">  <font size="+1">
     <a href="/adm/dropadd?action=classlist">$Text{'view'}</a>      <a href="/adm/dropadd?action=classlist">$Text{'view'}</a>
 </font>      </font>$help{'Course_View_Class_List'}
 </p><p>  </p><p>
 <font size="+1">  <font size="+1">
     <a href="/adm/dropadd?action=drop">$Text{'drop'}</a>      <a href="/adm/dropadd?action=drop">$Text{'drop'}</a>
 </font>      </font>$help{'Course_Drop_Student'}
 </p><p>  </p><p>
 <font size="+1">  <font size="+1">
     <a href="/adm/populate">$Text{'populate'}</a>      <a href="/adm/populate">$Text{'populate'}</a>
Line 187  sub hidden_input { Line 190  sub hidden_input {
 sub print_upload_manager_header {  sub print_upload_manager_header {
     my ($r,$datatoken,$distotal,$krbdefdom)=@_;      my ($r,$datatoken,$distotal,$krbdefdom)=@_;
     my $javascript;      my $javascript;
       #
     if (! exists($ENV{'form.upfile_associate'})) {      if (! exists($ENV{'form.upfile_associate'})) {
         $ENV{'form.upfile_associate'} = 'forward';          $ENV{'form.upfile_associate'} = 'forward';
     }      }
Line 202  sub print_upload_manager_header { Line 206  sub print_upload_manager_header {
     } else {      } else {
  $javascript=&upload_manager_javascript_forward_associate();   $javascript=&upload_manager_javascript_forward_associate();
     }      }
     my $javascript_validations=&javascript_validations('auth',$krbdefdom);      #
       # Deal with restored settings
       my $password_choice = '';
       if (exists($ENV{'form.ipwd_choice'}) &&
           $ENV{'form.ipwd_choice'} ne '') {
           # If a column was specified for password, assume it is for an
           # internal password.  This is a bug waiting to be filed (could be
           # local or krb auth instead of internal) but I do not have the 
           # time to mess around with this now.
           $password_choice = 'int';        
       }
       #
       my $javascript_validations=&javascript_validations('auth',$krbdefdom,
                                       $password_choice);
     my $checked=(($ENV{'form.noFirstLine'})?' checked="1"':'');      my $checked=(($ENV{'form.noFirstLine'})?' checked="1"':'');
     $r->print('<h3>'.&mt('Uploading Class List')."</h3>\n".      $r->print('<h3>'.&mt('Uploading Class List')."</h3>\n".
               "<hr>\n".                "<hr>\n".
Line 232  sub print_upload_manager_header { Line 249  sub print_upload_manager_header {
 ###############################################################  ###############################################################
 ###############################################################  ###############################################################
 sub javascript_validations {  sub javascript_validations {
     my ($mode,$krbdefdom)=@_;      my ($mode,$krbdefdom,$curr_authtype,$curr_authfield)=@_;
     my $authheader;      my $authheader;
     if ($mode eq 'auth') {      if ($mode eq 'auth') {
         my %param = ( formname => 'studentform',          my %param = ( formname => 'studentform',
                       kerb_def_dom => $krbdefdom );                        kerb_def_dom => $krbdefdom,
                         curr_authtype => $curr_authtype);
         $authheader = &Apache::loncommon::authform_header(%param);          $authheader = &Apache::loncommon::authform_header(%param);
     } elsif ($mode eq 'createcourse') {      } elsif ($mode eq 'createcourse') {
         my %param = ( formname => 'ccrs',          my %param = ( formname => 'ccrs',
                   kerb_def_dom => $krbdefdom );                    kerb_def_dom => $krbdefdom,
                         curr_authtype => $curr_authtype );
           $authheader = &Apache::loncommon::authform_header(%param);
       } elsif ($mode eq 'modifycourse') {
           my %param = ( formname => 'cmod',
                     kerb_def_dom => $krbdefdom,
                     mode => 'modifycourse',
                     curr_authtype => $curr_authtype,
                     curr_autharg => $curr_authfield );
         $authheader = &Apache::loncommon::authform_header(%param);          $authheader = &Apache::loncommon::authform_header(%param);
     }      }
   
           
     my %alert = &Apache::lonlocal::texthash      my %alert = &Apache::lonlocal::texthash
         (username => 'You need to specify the username field.',          (username => 'You need to specify the username field.',
Line 260  sub javascript_validations { Line 287  sub javascript_validations {
     my $function_name =(<<END);      my $function_name =(<<END);
 function verify_message (vf,founduname,foundpwd,foundname,foundid,foundsec,foundemail) {  function verify_message (vf,founduname,foundpwd,foundname,foundid,foundsec,foundemail) {
 END  END
     my $auth_checks = (<<END);      my $auth_checks;
     var foundatype=0;      if ($mode eq 'createcourse') {
           $auth_checks .= (<<END);
       if (vf.autoadds[0].checked == true) {
           if (current.radiovalue == null || current.radiovalue == 'nochange') {
               alert('$alert{'authen'}');
               return;
           }
       }
 END  END
     unless ($mode eq 'createcourse') {      } else {
         $auth_checks .= (<<END);          $auth_checks .= (<<END);
       var foundatype=0;
     if (founduname==0) {      if (founduname==0) {
  alert('$alert{'username'}');   alert('$alert{'username'}');
         return;          return;
     }      }
 END  
     }  
     $auth_checks .= (<<END);  
     // alert('current.radiovalue = '+current.radiovalue);      // alert('current.radiovalue = '+current.radiovalue);
     if (current.radiovalue == null || current.radiovalue == 'nochange') {      if (current.radiovalue == null || current.radiovalue == 'nochange') {
         // They did not check any of the login radiobuttons.          // They did not check any of the login radiobuttons.
         alert('$alert{'authen'}');          alert('$alert{'authen'}');
         return;          return;
     }      }
   END
       }
       if ($mode eq 'createcourse') {
           $auth_checks .= "
       if ( (vf.autoadds[0].checked == true) &&
            (vf.elements[current.argfield].value == null || vf.elements[current.argfield].value == '') ) {
   ";
       } elsif ($mode eq 'modifycourse') {
           $auth_checks .= " 
       if (vf.elements[current.argfield].value == null || vf.elements[current.argfield].value == '') {
   ";
       }
       if ( ($mode eq 'createcourse') || ($mode eq 'modifycourse') ) {
           $auth_checks .= (<<END);
           var alertmsg = '';
           switch (current.radiovalue) {
               case 'krb':
                   alertmsg = '$alert{'krb'}';
                   break;
               default:
                   alertmsg = '';
           }
           if (alertmsg != '') {
               alert(alertmsg);
               return;
           }
       }
   END
       } else {
           $auth_checks .= (<<END);
     foundatype=1;      foundatype=1;
     if (current.argfield == null || current.argfield == '') {      if (current.argfield == null || current.argfield == '') {
         var alertmsg = '';          var alertmsg = '';
Line 301  END Line 363  END
         }          }
     }      }
 END  END
       }
     my $optional_checks = '';      my $optional_checks = '';
     if ($mode eq 'createcourse') {      if ( ($mode eq 'createcourse') || ($mode eq 'modifycourse') ) {
         $optional_checks = (<<END);          $optional_checks = (<<END);
     vf.submit();      vf.submit();
 }  }
Line 345  END Line 408  END
 END  END
     }      }
     my $result = $function_name;      my $result = $function_name;
     if ( ($mode eq 'auth') || ($mode eq 'createcourse') ) {      if ( ($mode eq 'auth') || ($mode eq 'createcourse') || ($mode eq 'modifycourse')  ) {
         $result .= $auth_checks;          $result .= $auth_checks;
     }      }
     $result .= $optional_checks;      $result .= $optional_checks;
     if ( ($mode eq 'auth') || ($mode eq 'createcourse') ) {      if ( ($mode eq 'auth') || ($mode eq 'createcourse') || ($mode eq 'modifycourse')  ) {
         $result .= $authheader;          $result .= $authheader;
     }      }
     return $result;      return $result;
Line 514  sub print_upload_manager_footer { Line 577  sub print_upload_manager_footer {
                   kerb_def_dom => $krbdefdom,                    kerb_def_dom => $krbdefdom,
                   kerb_def_auth => $krbdef                    kerb_def_auth => $krbdef
                   );                    );
       if (exists($ENV{'form.ipwd_choice'}) &&
           defined($ENV{'form.ipwd_choice'}) &&
           $ENV{'form.ipwd_choice'} ne '') {
           $param{'curr_authtype'} = 'int';
       }
     my $krbform = &Apache::loncommon::authform_kerberos(%param);      my $krbform = &Apache::loncommon::authform_kerberos(%param);
     my $intform = &Apache::loncommon::authform_internal(%param);      my $intform = &Apache::loncommon::authform_internal(%param);
     my $locform = &Apache::loncommon::authform_local(%param);      my $locform = &Apache::loncommon::authform_local(%param);
Line 543  sub print_upload_manager_footer { Line 611  sub print_upload_manager_footer {
                 'of Conflicting IDs (only do if you know what you are doing)').                  'of Conflicting IDs (only do if you know what you are doing)').
                 "\n</p><p>\n";                  "\n</p><p>\n";
     $Str .= '<input type="button" onClick="javascript:verify(this.form)" '.      $Str .= '<input type="button" onClick="javascript:verify(this.form)" '.
         'value="Update Courselist" />'."<br />\n";          'value="Update Class List" />'."<br />\n";
     $Str .= &mt('Note: for large courses, this operation may be time '.      $Str .= &mt('Note: for large courses, this operation may be time '.
                 'consuming');                  'consuming');
     $r->print($Str);      $r->print($Str);
Line 554  sub print_upload_manager_footer { Line 622  sub print_upload_manager_footer {
 ###############################################################  ###############################################################
 sub print_upload_manager_form {  sub print_upload_manager_form {
     my $r=shift;      my $r=shift;
   
     my $firstLine;      my $firstLine;
     my $datatoken;      my $datatoken;
     if (!$ENV{'form.datatoken'}) {      if (!$ENV{'form.datatoken'}) {
Line 570  sub print_upload_manager_form { Line 639  sub print_upload_manager_form {
     my $distotal=$total+1;      my $distotal=$total+1;
     my $today=time;      my $today=time;
     my $halfyear=$today+15552000;      my $halfyear=$today+15552000;
       #
       # Restore memorized settings
       &Apache::loncommon::restore_course_settings
           ('enrollment_upload',{ 'username_choice' => 'scalar', # column settings
                                  'names_choice' => 'scalar',
                                  'fname_choice' => 'scalar',
                                  'mname_choice' => 'scalar',
                                  'lname_choice' => 'scalar',
                                  'gen_choice' => 'scalar',
                                  'id_choice' => 'scalar',
                                  'sec_choice' => 'scalar',
                                  'ipwd_choice' => 'scalar',
                                  'email_choice' => 'scalar',
                              });
       #
       # Determine kerberos parameters as appropriate
     my $defdom=$ENV{'course.'.$ENV{'request.course.id'}.'.domain'};      my $defdom=$ENV{'course.'.$ENV{'request.course.id'}.'.domain'};
     my ($krbdef,$krbdefdom) =      my ($krbdef,$krbdefdom) =
         &Apache::loncommon::get_kerberos_defaults($defdom);          &Apache::loncommon::get_kerberos_defaults($defdom);
       #
     &print_upload_manager_header($r,$datatoken,$distotal,$krbdefdom);      &print_upload_manager_header($r,$datatoken,$distotal,$krbdefdom);
     my $i;      my $i;
     my $keyfields;      my $keyfields;
     if ($total>=0) {      if ($total>=0) {
         my @field=(['username',&mt('Username')],          my @field=
                    ['names',&mt('Last Name, First Names')],              (['username',&mt('Username'),     $ENV{'form.username_choice'}],
                    ['fname',&mt('First Name')],               ['names',&mt('Last Name, First Names'),$ENV{'form.names_choice'}],
                    ['mname',&mt('Middle Names/Initials')],               ['fname',&mt('First Name'),      $ENV{'form.fname_choice'}],
                    ['lname',&mt('Last Name')],               ['mname',&mt('Middle Names/Initials'),$ENV{'form.mname_choice'}],
                    ['gen',&mt('Generation')],               ['lname',&mt('Last Name'),       $ENV{'form.lname_choice'}],
                    ['id',&mt('ID/Student Number')],               ['gen',  &mt('Generation'),      $ENV{'form.gen_choice'}],
                    ['sec',&mt('Group/Section')],               ['id',   &mt('ID/Student Number'),$ENV{'form.id_choice'}],
                    ['ipwd',&mt('Initial Password')],               ['sec',  &mt('Group/Section'),   $ENV{'form.sec_choice'}],
                    ['email',&mt('EMail Address')]);               ['ipwd', &mt('Initial Password'),$ENV{'form.ipwd_choice'}],
                ['email',&mt('EMail Address'),   $ENV{'form.email_choice'}]);
  if ($ENV{'form.upfile_associate'} eq 'reverse') {   if ($ENV{'form.upfile_associate'} eq 'reverse') {
     &Apache::loncommon::csv_print_samples($r,\@records);      &Apache::loncommon::csv_print_samples($r,\@records);
     $i=&Apache::loncommon::csv_print_select_table($r,\@records,      $i=&Apache::loncommon::csv_print_select_table($r,\@records,
Line 1706  sub upfile_drop_add { Line 1793  sub upfile_drop_add {
         }          }
     }      }
     #      #
       # Store the field choices away
       foreach my $field (qw/username names 
                          fname mname lname gen id sec ipwd email/) {
           $ENV{'form.'.$field.'_choice'}=$fields{$field};
       }
       &Apache::loncommon::store_course_settings('enrollment_upload',
                                                 { 'username_choice' => 'scalar',
                                                   'names_choice' => 'scalar',
                                                   'fname_choice' => 'scalar',
                                                   'mname_choice' => 'scalar',
                                                   'lname_choice' => 'scalar',
                                                   'gen_choice' => 'scalar',
                                                   'id_choice' => 'scalar',
                                                   'sec_choice' => 'scalar',
                                                   'ipwd_choice' => 'scalar',
                                                   'email_choice' => 'scalar' });
   
       #
     my ($startdate,$enddate) = &get_dates_from_form();      my ($startdate,$enddate) = &get_dates_from_form();
     if ($ENV{'form.makedatesdefault'}) {      if ($ENV{'form.makedatesdefault'}) {
         $r->print(&make_dates_default($startdate,$enddate));          $r->print(&make_dates_default($startdate,$enddate));

Removed from v.1.94  
changed lines
  Added in v.1.99


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