[system] / trunk / webwork / system / cgi / cgi-scripts / profClasslist.pl Repository:
ViewVC logotype

Annotation of /trunk/webwork/system/cgi/cgi-scripts/profClasslist.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2 - (view) (download) (as text)

1 : sam 2 #!/usr/bin/perl
2 :    
3 :    
4 :    
5 :     ## This file is profClasslist.pl
6 :     ## It provides access to utilities for building, correcting and viewing classlist files
7 :     ##
8 :    
9 :     ####################################################################
10 :     # Copyright @ 1995-1998 University of Rochester
11 :     # All Rights Reserved
12 :     ####################################################################
13 :    
14 :     use lib '/ww/webwork/development/'; # mainWeBWorKDirectory;
15 :     use CGI qw(:standard);
16 :     use Global;
17 :     use Auth;
18 :     use strict;
19 :    
20 :     my $logTimingData = 0;
21 :     my $beginTime;
22 :    
23 :     # begin Timing code
24 :     if ($logTimingData == 1) {
25 :     use Benchmark;
26 :     $beginTime = new Benchmark;
27 :     }
28 :     # end Timing code
29 :    
30 :    
31 :     my $cgi = new CGI;
32 :     my %inputs = $cgi->Vars();
33 :    
34 :     # get information from CGI inputs (see also below for additional information)
35 :    
36 :     my $Course = $inputs{'course'};
37 :     my $User = $inputs{'user'};
38 :     my $Session_key = $inputs{'key'};
39 :    
40 :     # verify that information has been received
41 :     unless($Course && $User && $Session_key) {
42 :     &wwerror("$0","The script did not receive the proper input data.","","");
43 :     die "The script profLogin.pl did not receive the proper input data.";
44 :     }
45 :    
46 :     # establish environment for this script
47 :    
48 :     &Global::getCourseEnvironment($inputs{'course'});
49 :    
50 :    
51 :     my $cgiURL = getWebworkCgiURL;
52 :     my $courseScriptsDirectory = getCourseScriptsDirectory;
53 :     my $databaseDirectory = getCourseDatabaseDirectory;
54 :     my $htmlURL = getCourseHtmlURL;
55 :     my $scriptDirectory = getWebworkScriptDirectory;
56 :     my $templateDirectory = getCourseTemplateDirectory;
57 :     my $dat = getDat;
58 :     my $dd = getDirDelim();
59 :    
60 :     require "${scriptDirectory}$Global::DBglue_pl";
61 :     require "${scriptDirectory}$Global::FILE_pl";
62 :     require "${scriptDirectory}$Global::HTMLglue_pl";
63 :     require "${scriptDirectory}$Global::classlist_DBglue_pl";
64 :    
65 :     # log access
66 :     &Global::log_info('', query_string);
67 :    
68 :    
69 :     my $permissionsFile = &Global::getCoursePermissionsFile($inputs{'course'});
70 :     my $permissions = &get_permissions($inputs{'user'}, $permissionsFile);
71 :     my $keyFile = &Global::getCourseKeyFile($inputs{'course'});
72 :    
73 :     #verify session key
74 :     &verify_key($inputs{'user'}, $inputs{'key'}, $keyFile, $inputs{'course'});
75 :    
76 :     # verify permissions are correct
77 :     if ($permissions != $Global::instructor_permissions ) {
78 :     print "permissions = $permissions instructor_permissions = $Global::instructor_permissions\n";
79 :     print &html_NO_PERMISSION;
80 :     exit(0);
81 :     }
82 :     # get the rest of the information from the submitted form
83 :    
84 :     my $format = $inputs{'format'}; #alph, section, or recitation
85 :     my $set_status = $inputs{'set_status'}; #locked or unlocked
86 :    
87 :     # print HTML text
88 :     print &htmlTOP("Classlist Utilities");
89 :    
90 :     # print navigation buttons
91 :     print qq!
92 :     <A HREF="${cgiURL}profLogin.pl?user=$inputs{'user'}&key=$inputs{'key'}&course=$inputs{'course'}">
93 :     <IMG SRC="${Global::upImgUrl}" align="right" BORDER=1 ALT="[Up]"></A><p>
94 :     !;
95 :    
96 :     print <<EOF;
97 :     <HR><BR>
98 :    
99 :     <h3 align="left">WeBWorK classlist editing programs for $Course</h3>
100 :    
101 :     From this page you can edit classlist database or give a student a new password.
102 :     You can also import and export the database. <p>
103 :     EOF
104 :    
105 :     my $classList_ref;
106 :     $format = '' unless defined $format;
107 :     if ($format eq 'section') {
108 :     $classList_ref = getAllLoginNamesSortedBySectionThenByName();
109 :     }
110 :     elsif ($format eq 'recitation') {
111 :     $classList_ref = getAllLoginNamesSortedByRecitationThenByName();
112 :     }
113 :     else {
114 :     $classList_ref = getAllLoginNamesSortedByName();
115 :     }
116 :    
117 :     my @classList = @$classList_ref;
118 :    
119 :     if ((defined $set_status) and ($set_status eq 'lock')) {
120 :     lock_CL_database();
121 :     }
122 :     elsif ((defined $set_status) and ($set_status eq 'unlock')) {
123 :     unlock_CL_database();
124 :     }
125 :    
126 :     my $status = get_CL_database_status();
127 :    
128 :     if ($status eq 'locked') {
129 :     print <<EOF;
130 :     <P>
131 :     <FONT COLOR='#ff00aa'><B>CLASSLIST DATABASE IS LOCKED</B></font> <P>
132 :     This means the database can NOT be updated via the web but the database can be
133 :     exported to and imported from an ascii comma separated (.cvs) classlist file.
134 :    
135 :     <HR NOSHADE>
136 :     <H4 ALIGN=LEFT>
137 :     <IMG SRC="$Global::bluesquareImgUrl" BORDER=1 ALT="">
138 :     1. Unlock the classlist database for $Course.
139 :     </H4>
140 :    
141 :     Unlock the database.
142 :    
143 :     <FORM METHOD = "POST" ACTION= "${cgiURL}profClasslist.pl">
144 :     <INPUT TYPE="HIDDEN" NAME='set_status' VALUE='unlock'>
145 :     <INPUT TYPE="HIDDEN" NAME='user' VALUE="$inputs{'user'}">
146 :     <INPUT TYPE="HIDDEN" NAME='key' VALUE="$inputs{'key'}">
147 :     <INPUT TYPE="HIDDEN" NAME='course' VALUE="$inputs{'course'}">
148 :     <INPUT TYPE="HIDDEN" NAME='format' VALUE="$inputs{'format'}">
149 :     <INPUT TYPE="SUBMIT" VALUE= 'Unlock'>
150 :     </FORM>
151 :     EOF
152 :     }
153 :    
154 :     elsif ($status eq 'unlocked') {
155 :    
156 :     print <<EOF;
157 :     <P>
158 :     <FONT COLOR='#ff00aa'><B>CLASSLIST DATABASE IS UNLOCKED</B></font> <P>
159 :     This means the database can be updated via the web but the database can NOT be
160 :     exported to and imported from an ascii comma separated (.cvs) classlist file.
161 :    
162 :     <HR NOSHADE>
163 :     <H4 ALIGN=LEFT>
164 :     <IMG SRC="$Global::bluesquareImgUrl" BORDER=1 ALT="">
165 :     1. Lock the classlist database for $Course.
166 :     </H4>
167 :    
168 :     Lock the database.
169 :    
170 :     <FORM METHOD = "POST" ACTION= "${cgiURL}profClasslist.pl">
171 :     <INPUT TYPE="HIDDEN" NAME='set_status' VALUE='lock'>
172 :     <INPUT TYPE="HIDDEN" NAME="user" VALUE="$inputs{'user'}">
173 :     <INPUT TYPE="HIDDEN" NAME="key" VALUE="$inputs{'key'}">
174 :     <INPUT TYPE="HIDDEN" NAME="course" VALUE="$inputs{'course'}">
175 :     <INPUT TYPE="HIDDEN" NAME='format' VALUE="$inputs{'format'}">
176 :     <INPUT TYPE="SUBMIT" VALUE= 'Lock'>
177 :     </FORM>
178 :     EOF
179 :     }
180 :    
181 :     print <<EOF;
182 :     <P>
183 :     <HR NOSHADE>
184 :     <H4 ALIGN=LEFT>
185 :     <IMG SRC="$Global::bluesquareImgUrl" BORDER=1 ALT="">
186 :     2. Edit the classlist database for $Course.
187 :     </H4>
188 :    
189 :     Select the student record that you wish to edit. <BR>
190 :    
191 :     <FORM METHOD = "POST" ACTION= "${cgiURL}profEditClasslistDB.pl">
192 :     <INPUT TYPE="SUBMIT" VALUE="Select student">
193 :     EOF
194 :    
195 :    
196 :    
197 :     # enter available individual logins
198 :     print qq! <BR><SELECT Name='studentLogin' >\n!;
199 :     my ($lastName, $firstName, $studentID, $login_name, $section, $recitation, $label);
200 :    
201 :     # get a list of logins to list as option values. save this in a string as we will use it
202 :     # twice
203 :    
204 :     my $option_list ='';
205 :     foreach $login_name (@classList) {
206 :     attachCLRecord($login_name);
207 :     ## student
208 :     $lastName = CL_getStudentLastName($login_name);
209 :     $firstName = CL_getStudentFirstName($login_name);
210 :     $studentID = CL_getStudentID($login_name);
211 :     $section = CL_getClassSection($login_name);
212 :     $recitation = CL_getClassRecitation($login_name);
213 :    
214 :     if ($format eq 'section') {
215 :     $label = ", $section";
216 :     }
217 :     elsif ($format eq 'recitation') {
218 :     $label = ", $recitation";
219 :     }
220 :     else {
221 :     $label = '';
222 :     }
223 :     $label = "$lastName, $firstName, $studentID, $login_name". $label;
224 :     $option_list .= "<OPTION VALUE = \"$login_name\">$label \n";
225 :     # print "<OPTION VALUE = \"$login_name\">$label \n";
226 :     }
227 :     print $option_list;
228 :     print qq! \n</SELECT>\n!;
229 :    
230 :     # resume printing the rest of the forms
231 :    
232 :     print <<EOF;
233 :     <INPUT TYPE="HIDDEN" NAME="user" VALUE="$inputs{'user'}">
234 :     <INPUT TYPE="HIDDEN" NAME="key" VALUE="$inputs{'key'}">
235 :     <INPUT TYPE="HIDDEN" NAME="course" VALUE="$inputs{'course'}">
236 :     <INPUT TYPE="HIDDEN" NAME='save' VALUE='OFF'>
237 :     <INPUT TYPE="HIDDEN" NAME='firsttime' VALUE=1>
238 :    
239 :    
240 :     </FORM>
241 :     EOF
242 :    
243 :     print <<EOF;
244 :     <P>
245 :     <HR NOSHADE>
246 :     <H4 ALIGN=LEFT>
247 :     <IMG SRC="$Global::bluesquareImgUrl" BORDER=1 ALT="">
248 :     3. Give a student a new password for $Course.
249 :     </H4>
250 :    
251 :     Select the student who needs a new password. <BR>
252 :    
253 :     <FORM METHOD = "POST" ACTION= "${cgiURL}profNewPassword.pl">
254 :     <INPUT TYPE="SUBMIT" VALUE="Select student">
255 :     EOF
256 :    
257 :     # enter available individual logins
258 :     print qq! <BR><SELECT Name='studentLogin' >\n!;
259 :     print $option_list;
260 :     print qq! \n</SELECT>\n!;
261 :    
262 :     # resume printing the rest of the forms
263 :    
264 :     print <<EOF;
265 :     <INPUT TYPE="HIDDEN" NAME="user" VALUE="$inputs{'user'}">
266 :     <INPUT TYPE="HIDDEN" NAME="key" VALUE="$inputs{'key'}">
267 :     <INPUT TYPE="HIDDEN" NAME="course" VALUE="$inputs{'course'}">
268 :     <INPUT TYPE="HIDDEN" NAME='save' VALUE='OFF'>
269 :     <INPUT TYPE="HIDDEN" NAME='firsttime' VALUE=1>
270 :    
271 :    
272 :     </FORM>
273 :     EOF
274 :    
275 :    
276 :    
277 :     print <<EOF;
278 :     <P>
279 :     <HR NOSHADE>
280 :     <H4 ALIGN=LEFT>
281 :     <IMG SRC="$Global::bluesquareImgUrl" BORDER=1 ALT="">
282 :     4. View the classlist database for $Course.
283 :     </H4>
284 :    
285 :     Use this to see all the data in the classlist database. You can edit the classlist database
286 :     by using item 2 above and you can add students to the classlist database from the
287 :     Add Student(s) Page. You can also use item 5 to
288 :     export it to a classlist file suitable for editing by a spreadsheet program such as Excel. Item 6
289 :     imports the classlist database from a classlist file. You can use items 7 and 8 to download and
290 :     upload classlist files to and from your personal computer.
291 :    
292 :     EOF
293 :    
294 :     my %labels = ();
295 :     $labels{alph} = 'Alphabetically';
296 :     $labels{section} = 'By section';
297 :     $labels{recitation} = 'By recitation';
298 :    
299 :     print $cgi->startform(-action=>"${cgiURL}profViewClasslistDB.pl"),
300 :     $cgi->submit(-value=>'View classlist Database'), "\n",
301 :     "Order students \n",
302 :     $cgi->radio_group(
303 :     -name=>'format',
304 :     -values=>['alph','section','recitation'],
305 :     -default=>'alph',
306 :     -labels=>\%labels
307 :     ),
308 :     $cgi->hidden(-name=>'course', -value=>"$inputs{'course'}"), "\n",
309 :     $cgi->hidden(-name=>'user', -value=>"$inputs{'user'}"), "\n",
310 :     $cgi->hidden(-name=>'key', -value=>"$inputs{'key'}"), "\n",
311 :     $cgi->endform(), "\n",
312 :     $cgi->p, "\n" ;
313 :    
314 :     # resume printing the rest of the form
315 :    
316 :    
317 :     print <<EOF;
318 :     <P>
319 :     <HR NOSHADE>
320 :     <FONT COLOR='#ff00aa'><b>Before exporting or importing the
321 :     classlist database or downloading or uploading classlist files, make sure you understand
322 :     the difference between the classlist database and classlist files. Click on help below.</b></font><p>
323 :     <HR NOSHADE>
324 :     <H4 ALIGN=LEFT>
325 :     <IMG SRC="$Global::bluesquareImgUrl" BORDER=1 ALT="">
326 :     5. Export the $Course classlist database to a classlist file.
327 :     </H4>
328 :     This will export the current classlist database to the
329 :     selected classlist file. Note the classlist database must locked first.
330 :    
331 :     EOF
332 :    
333 :     my $shortFileName = getCourseClasslistFile($Course);
334 :     if ($shortFileName =~ m|$dd|) {
335 :     $shortFileName =~ m|$dd([^$dd]*)$|; ## extract filename from full path name
336 :     $shortFileName = $1;
337 :     }
338 :    
339 :     print $cgi->startform(-action=>"${cgiURL}profExportClasslistDatabase.pl"),"\n",
340 :     $cgi->textfield(-name=>'savefilename', -size => 25, -value=> "$shortFileName", -override=>1), ' ',
341 :     'Enter a new file name or use the default. The file will be saved with the extension .lst',"\n",p,
342 :     $cgi->checkbox(-name=>'overWrite',-value => 1, -label => 'Overwrite existing file'),"\n", br,
343 :     $cgi->checkbox(-name=>'backUp',-value => 1, -label => 'Backup existing file first',-checked, -override),"\n",p,
344 :     $cgi->submit(-value=>'Export classlist Database'), "\n",
345 :     $cgi->hidden(-name=>'course', -value=>"$inputs{'course'}"), "\n",
346 :     $cgi->hidden(-name=>'user', -value=>"$inputs{'user'}"), "\n",
347 :     $cgi->hidden(-name=>'key', -value=>"$inputs{'key'}"), "\n",
348 :     $cgi->endform(), "\n",
349 :     $cgi->p, "\n";
350 :    
351 :    
352 :     print <<EOF;
353 :     <P>
354 :     <HR NOSHADE>
355 :    
356 :     <H4 ALIGN=LEFT>
357 :     <IMG SRC="$Global::bluesquareImgUrl" BORDER=1 ALT="">
358 :     6. Import the $Course classlist database from a classlist file.
359 :     </H4>
360 :     This will update the classlist database using the information from the
361 :     selected classlist file. Note the classlist database must locked first.
362 :     If you have a large classlist and/or have already built many sets, this may
363 :     take quite a bit of time. Carefully select the classlist file and the
364 :     options you want.<p>
365 :    
366 :     EOF
367 :    
368 :     # get all classlist files
369 :     my ($ar_sortedNames, $hr_classlistLabels) = getClasslistFilesAndLabels($Course);
370 :     my @sortedNames = @$ar_sortedNames;
371 :     my %classlistLabels = %$hr_classlistLabels;
372 :    
373 :     print $cgi->startform(-action=>"${cgiURL}profImportClasslistDatabase.pl"),
374 :     $cgi->popup_menu(-name=>'classList',
375 :     -values=>\@sortedNames,
376 :     -labels=>\%classlistLabels), ' Select classlist file.',p,
377 :    
378 :     "If a student is in the current classlist database <FONT COLOR='#ff00aa'><b>and</b></FONT>
379 :     is in the the selected classlist file:",'<BR>',
380 :    
381 :     $cgi->checkbox(-name=>'update_firstName',-value => 1, -label => 'update first name', -override), '<BR>',
382 :     $cgi->checkbox(-name=>'update_lastName',-value => 1, -label => 'update last name', -override),'<BR>',
383 :     $cgi->checkbox(-name=>'update_status',-value => 1, -label => 'update status', -checked, -override),'<BR>',
384 :     $cgi->checkbox(-name=>'update_comment',-value => 1, -label => 'update comment', -override), '<BR>',
385 :     $cgi->checkbox(-name=>'update_section',-value => 1, -label => 'update section', -override),'<BR>',
386 :     $cgi->checkbox(-name=>'update_recitation',-value => 1, -label => 'update recitation', -override),'<BR>',
387 :     $cgi->checkbox(-name=>'update_email_address',-value => 1, -label => 'update email_address', -override), '<p>',
388 :    
389 :     "If a student is in the current classlist database <FONT COLOR='#ff00aa'><b>but is not</b></FONT>
390 :     in the the selected classlist file:",'<BR>',
391 :    
392 :     $cgi->input({-type=>'radio', -name=>'update_drop', -value=>'drop',-checked=>1}), " \n",
393 :     "Change student's status to 'drop' in the classlist database. This removes the student's login privileges and is the
394 :     recommended action. \n", $cgi->br,
395 :     $cgi->input({-type=>'radio', -name=>'update_drop', -value=>'leave'}), " \n",
396 :     "Leave the student's records in the classlist database unchanged.\n", $cgi->br,
397 :     $cgi->input({-type=>'radio', -name=>'update_drop', -value=>'remove' }), " \n",
398 :     "Remove the student's records from the classlist database.\n", $cgi->br,
399 :    
400 :     $cgi->submit(-value=>'Import classlist Database'), "\n",p,
401 :     $cgi->hidden(-name=>'course', -value=>"$inputs{'course'}"), "\n",
402 :     $cgi->hidden(-name=>'user', -value=>"$inputs{'user'}"), "\n",
403 :     $cgi->hidden(-name=>'key', -value=>"$inputs{'key'}"), "\n",
404 :     $cgi->endform(), "\n",
405 :     $cgi->p, "\n";
406 :    
407 :    
408 :     print <<EOF;
409 :     <P>
410 :     <HR NOSHADE>
411 :    
412 :     <H4 ALIGN=LEFT>
413 :     <IMG SRC="$Global::bluesquareImgUrl" BORDER=1 ALT="">
414 :    
415 :     7. Download (or view) $Course classlist file(s) to your personal computer.
416 :     </H4>
417 :    
418 :     You can download files for editing or viewing in either cvs (i.e. comma delimited), html, text, or
419 :     tab (i.e. tab delimited) format. <BR>
420 :     csv is a supported format for Excel and is the recommended format if you use Excel. <BR> <BR>
421 :    
422 :    
423 :     <FORM METHOD = "POST" ACTION= "${cgiURL}profDownloadClasslistFiles.pl">
424 :     format:
425 :     <INPUT TYPE=RADIO NAME="format" VALUE="csv" CHECKED>csv
426 :     <INPUT TYPE=RADIO NAME="format" VALUE="html" >html
427 :     <INPUT TYPE=RADIO NAME="format" VALUE="text" >text
428 :     <INPUT TYPE=RADIO NAME="format" VALUE="tab" >tab <BR>
429 :    
430 :     <INPUT TYPE="SUBMIT" VALUE="Select file(s)">
431 :    
432 :     EOF
433 :    
434 :     # resume printing the rest of the form
435 :    
436 :     print <<EOF;
437 :     <INPUT TYPE="HIDDEN" NAME="user" VALUE="$inputs{'user'}">
438 :     <INPUT TYPE="HIDDEN" NAME="key" VALUE="$inputs{'key'}">
439 :     <INPUT TYPE="HIDDEN" NAME="course" VALUE="$inputs{'course'}">
440 :     <INPUT TYPE="HIDDEN" NAME="download" VALUE= 0 >
441 :     <INPUT TYPE="HIDDEN" NAME="fileName" VALUE= "" >
442 :     </FORM>
443 :     EOF
444 :    
445 :    
446 :    
447 :     print <<EOF;
448 :     <P>
449 :     <HR NOSHADE>
450 :     <H4 ALIGN=LEFT>
451 :     <IMG SRC="$Global::bluesquareImgUrl" BORDER=1 ALT="">
452 :     8. Upload $Course classlist files from your personal computer.
453 :     </H4>
454 :    
455 :     You can upload classlist files from your personal computer in cvs (i.e. comma delimited),
456 :     tab (i.e. tab delimited), or html format. Usually you would do this after exporting the
457 :     classlist database to a file, downloading and then editing the file in Excel or some other
458 :     editor or spreadsheet program. Only valid classlist files
459 :     can be uploaded. For csv format, the filename on your personal computer must have extension
460 :     .csv or .lst. For tab format, the extension must be .txt and for html format, the extension
461 :     must be .html or .htm. The file will be saved on the server with extension .lst (e.g. MTH140A.csv would be
462 :     saved as MTH140A.lst). Be very careful. Students can change their own email
463 :     addresses and it is possible that a student my have changed his or her address after you
464 :     started working on the file. This can only happen if you explicitly unlocked the classlist
465 :     database after exporting it.
466 :    
467 :     <FORM METHOD = 'POST' enctype='multipart/form-data' ACTION= "${cgiURL}profUploadClasslistFile.pl">
468 :    
469 :     format on personal computer:
470 :     <INPUT TYPE=RADIO NAME="format" VALUE="csv" CHECKED>csv
471 :     <INPUT TYPE=RADIO NAME="format" VALUE="tab" >tab
472 :     <INPUT TYPE=RADIO NAME="format" VALUE="html" >html <BR>
473 :     <INPUT TYPE=CHECKBOX NAME="overWrite" VALUE=1 unchecked> Overwrite existing file
474 :     <INPUT TYPE=CHECKBOX NAME="backUp" VALUE=1 checked> Backup existing file first <BR>
475 :    
476 :     File to upload: <input type=file name=upload><br>
477 :     <br>
478 :     <input type=submit value=UpLoad> the file.
479 :    
480 :     <INPUT TYPE="HIDDEN" NAME="user" VALUE="$inputs{'user'}">
481 :     <INPUT TYPE="HIDDEN" NAME="key" VALUE="$inputs{'key'}">
482 :     <INPUT TYPE="HIDDEN" NAME="course" VALUE="$inputs{'course'}">
483 :     </FORM>
484 :     EOF
485 :    
486 :     print <<EOF;
487 :     <P>
488 :     <HR NOSHADE>
489 :     <H4 ALIGN=LEFT>
490 :     <IMG SRC="$Global::bluesquareImgUrl" BORDER=1 ALT="">
491 :     9. Simple editing of $Course classlist files.
492 :     </H4>
493 :    
494 :     Use this for simple editing, e.g. changing a few items or adding a couple of new students.
495 :     For more complicated editing, download the file to a preadsheet program such as Excel by option 7 above.
496 :     <FONT COLOR='#ff00aa'><b>Note that editing a classlist files has no effect on the classlist database.</b></font>
497 :    
498 :     <FORM METHOD = "POST" ACTION= "${cgiURL}profFormEditClasslistFiles.pl">
499 :    
500 :     <INPUT TYPE="SUBMIT" VALUE="Select file(s)">
501 :    
502 :     EOF
503 :    
504 :    
505 :    
506 :     # resume printing the rest of the form
507 :    
508 :     print <<EOF;
509 :     <INPUT TYPE="HIDDEN" NAME="user" VALUE="$inputs{'user'}">
510 :     <INPUT TYPE="HIDDEN" NAME="key" VALUE="$inputs{'key'}">
511 :     <INPUT TYPE="HIDDEN" NAME="course" VALUE="$inputs{'course'}">
512 :     <INPUT TYPE="HIDDEN" NAME="action" VALUE= "" >
513 :     <INPUT TYPE="HIDDEN" NAME="fileName" VALUE= "" >
514 :     <INPUT TYPE="HIDDEN" NAME="readWrite" VALUE= "readOnly" >
515 :     </FORM>
516 :     EOF
517 :    
518 :    
519 :    
520 :    
521 :     print &htmlBOTTOM("profClasslist.pl", \%inputs,'profClasslistHelp.html');
522 :    
523 :     # begin Timing code
524 :     if ($logTimingData == 1) {
525 :     my $endTime = new Benchmark;
526 :     &Global::logTimingInfo($beginTime,$endTime,'profClasslist.pl',$Course,$User);
527 :     }
528 :     # end Timing code
529 :     exit;
530 :    
531 :    
532 :    
533 :    

aubreyja at gmail dot com
ViewVC Help
Powered by ViewVC 1.0.9