--- loncom/interface/Attic/londropadd.pm 2000/12/26 16:39:28 1.1
+++ loncom/interface/Attic/londropadd.pm 2004/03/17 19:56:47 1.108
@@ -1,73 +1,2263 @@
# The LearningOnline Network with CAPA
# Handler to drop and add students in courses
#
-# (Handler to set parameters for assessments
+# $Id: londropadd.pm,v 1.108 2004/03/17 19:56:47 matthew Exp $
#
-# (Handler to resolve ambiguous file locations
+# Copyright Michigan State University Board of Trustees
#
-# (TeX Content Handler
+# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
#
-# 05/29/00,05/30,10/11 Gerd Kortemeyer)
+# LON-CAPA is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
#
-# 10/11,10/12,10/16 Gerd Kortemeyer)
+# LON-CAPA is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
#
-# 11/20,11/21,11/22,11/23,11/24,11/25,11/27,11/28,
-# 12/08,12/12 Gerd Kortemeyer)
+# You should have received a copy of the GNU General Public License
+# along with LON-CAPA; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
-# 12/26 Gerd Kortemeyer
+# /home/httpd/html/adm/gpl.txt
+#
+# http://www.lon-capa.org/
+#
+#
+###############################################################
+##############################################################
package Apache::londropadd;
use strict;
-use Apache::lonnet;
+use Apache::lonnet();
+use Apache::loncommon();
+use Apache::lonhtmlcommon();
use Apache::Constants qw(:common :http REDIRECT);
+use Spreadsheet::WriteExcel;
+use Apache::lonlocal;
+###############################################################
+###############################################################
+sub header {
+ my $bodytag=&Apache::loncommon::bodytag('Enrollment Manager');
+ my $title = &mt('LON-CAPA Enrollment Manager');
+ return(<
+
+$title
+
+$bodytag
+
+
+ $Text{'populate'}
+
+END
+}
+
+###############################################################
+###############################################################
+sub hidden_input {
+ my ($name,$value) = @_;
+ return ''."\n";
+}
+
+sub print_upload_manager_header {
+ my ($r,$datatoken,$distotal,$krbdefdom)=@_;
+ my $javascript;
+ #
+ if (! exists($ENV{'form.upfile_associate'})) {
+ $ENV{'form.upfile_associate'} = 'forward';
+ }
+ if ($ENV{'form.associate'} eq 'Reverse Association') {
+ if ( $ENV{'form.upfile_associate'} ne 'reverse' ) {
+ $ENV{'form.upfile_associate'} = 'reverse';
+ } else {
+ $ENV{'form.upfile_associate'} = 'forward';
+ }
+ }
+ if ($ENV{'form.upfile_associate'} eq 'reverse') {
+ $javascript=&upload_manager_javascript_reverse_associate();
+ } else {
+ $javascript=&upload_manager_javascript_forward_associate();
+ }
+ #
+ # 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"':'');
+ $r->print('
'.&mt('Uploading Class List')."
\n".
+ "\n".
+ '
'.&mt('Identify fields')."
\n");
+ $r->print("
\n".
+ &mt('Total number of records found in file: [_1].',$distotal).
+ "\n".
+ "
\n");
+ $r->print(&mt('Enter as many fields as you can. The system will inform you and bring you back to this page if the data selected is insufficient to enroll students in your class.')."\n");
+ $r->print(&hidden_input('action','upload').
+ &hidden_input('state','got_file').
+ &hidden_input('associate','').
+ &hidden_input('datatoken',$datatoken).
+ &hidden_input('fileupload',$ENV{'form.fileupload'}).
+ &hidden_input('upfiletype',$ENV{'form.upfiletype'}).
+ &hidden_input('upfile_associate',$ENV{'form.upfile_associate'}));
+ $r->print('');
+ $r->print(''.
+ &mt('Ignore First Line'));
+ $r->print("\n".
+ '');
+}
+
+###############################################################
+###############################################################
+sub javascript_validations {
+ my ($mode,$krbdefdom,$curr_authtype,$curr_authfield)=@_;
+ my $authheader;
+ if ($mode eq 'auth') {
+ my %param = ( formname => 'studentform',
+ kerb_def_dom => $krbdefdom,
+ curr_authtype => $curr_authtype);
+ $authheader = &Apache::loncommon::authform_header(%param);
+ } elsif ($mode eq 'createcourse') {
+ my %param = ( formname => 'ccrs',
+ 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);
+ }
+
+
+ my %alert = &Apache::lonlocal::texthash
+ (username => 'You need to specify the username field.',
+ authen => 'You must choose an authentication type.',
+ krb => 'You need to specify the Kerberos domain.',
+ ipass => 'You need to specify the initial password.',
+ name => 'The optional name field was not specified.',
+ snum => 'The optional student number field was not specified.',
+ section => 'The optional section or group field was not specified.',
+ email => 'The optional email address field was not specified.',
+ continue => 'Continue enrollment?',
+ );
+
+# my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition();
+ my $function_name =(<=2) && (tw<=6)) { foundname=1; }
+ if (tw==7) { foundid=1; }
+ if (tw==8) { foundsec=1; }
+ if (tw==9) { foundpwd=1; }
+ if (tw==10) { foundemail=1; }
+ }
+ verify_message(vf,founduname,foundpwd,foundname,foundid,foundsec,foundemail);
+}
+
+//
+// vf = this.form
+// tf = column number
+//
+// values of nw
+//
+// 0 = none
+// 1 = username
+// 2 = names (lastname, firstnames)
+// 3 = fname (firstname)
+// 4 = mname (middlename)
+// 5 = lname (lastname)
+// 6 = gen (generation)
+// 7 = id
+// 8 = section
+// 9 = ipwd (password)
+// 10 = email address
- if ($r->header_only) {
- $r->content_type('text/html');
- $r->send_http_header;
- return OK;
+function flip(vf,tf) {
+ var nw=eval('vf.f'+tf+'.selectedIndex');
+ var i;
+ // make sure no other columns are labeled the same as this one
+ for (i=0;i<=vf.nfields.value;i++) {
+ if ((i!=tf) && (eval('vf.f'+i+'.selectedIndex')==nw)) {
+ eval('vf.f'+i+'.selectedIndex=0;')
+ }
}
+ // If we set this to 'lastname, firstnames', clear out all the ones
+ // set to 'fname','mname','lname','gen' (3,4,5,6) currently.
+ if (nw==2) {
+ for (i=0;i<=vf.nfields.value;i++) {
+ if ((eval('vf.f'+i+'.selectedIndex')>=3) &&
+ (eval('vf.f'+i+'.selectedIndex')<=6)) {
+ eval('vf.f'+i+'.selectedIndex=0;')
+ }
+ }
+ }
+ // If we set this to one of 'fname','mname','lname','gen' (3,4,5,6),
+ // clear out any that are set to 'lastname, firstnames' (2)
+ if ((nw>=3) && (nw<=6)) {
+ for (i=0;i<=vf.nfields.value;i++) {
+ if (eval('vf.f'+i+'.selectedIndex')==2) {
+ eval('vf.f'+i+'.selectedIndex=0;')
+ }
+ }
+ }
+ // If we set the password, make the password form below correspond to
+ // the new value.
+ if (nw==9) {
+ changed_radio('int',document.studentform);
+ set_auth_radio_buttons('int',document.studentform);
+ vf.intarg.value='';
+ vf.krbarg.value='';
+ vf.locarg.value='';
+ }
+}
-# ----------------------------------------------------- Needs to be in a course
+function clearpwd(vf) {
+ var i;
+ for (i=0;i<=vf.nfields.value;i++) {
+ if (eval('vf.f'+i+'.selectedIndex')==9) {
+ eval('vf.f'+i+'.selectedIndex=0;')
+ }
+ }
+}
- if (($ENV{'request.course.fn'}) &&
- (&Apache::lonnet::allowed('cst',$ENV{'request.course.id'}))) {
+ENDPICK
+}
-# ------------------------------------------------------------------ Start page
- $r->content_type('text/html');
- $r->send_http_header;
- $r->print(<
-
-LON-CAPA Student Drop/Add
-
-
-
-