You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							468 lines
						
					
					
						
							14 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							468 lines
						
					
					
						
							14 KiB
						
					
					
				
								#!/usr/bin/perl
							 | 
						|
								#
							 | 
						|
								# $Id: sadmin.pl,v 1.12 2006/11/28 21:07:48 psims Exp $
							 | 
						|
								#
							 | 
						|
								# Source File: sadmin.pl
							 | 
						|
								
							 | 
						|
								# Get config
							 | 
						|
								require 'sitecfg.pl';
							 | 
						|
								require 'testlib.pl';
							 | 
						|
								
							 | 
						|
								&app_initialize;
							 | 
						|
								
							 | 
						|
								print "Content-Type: text/html\n\n";
							 | 
						|
								
							 | 
						|
								if (&get_session($FORM{'tid'})) {
							 | 
						|
									&LanguageSupportInit();
							 | 
						|
									if ($SESSION{'clid'} ne 'std') {
							 | 
						|
										&get_client_profile($SESSION{'clid'});
							 | 
						|
										if ($SESSION{'uac'} eq 'admin' || $SESSION{'uac'} eq 'madmin') {
							 | 
						|
											$FORM{'pageid'} = "Group";
							 | 
						|
											$FORM{'PAGEID'} = "GROUP";
							 | 
						|
											$mainttmplt = "frgrpadmin";
							 | 
						|
										} else {
							 | 
						|
											&get_candidate_profile($SESSION{'clid'}, $SESSION{'uid'});
							 | 
						|
											$FORM{'pageid'} = "Gradebook";
							 | 
						|
											$FORM{'PAGEID'} = "GRADEBOOK";
							 | 
						|
											$mainttmplt = "frgradebooks";
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									my @tempacl = &popEmlAcl($SESSION{'clid'});
							 | 
						|
									foreach (@tempacl) {
							 | 
						|
										$CLIENT{'emlaclstr'} .= "$_,";
							 | 
						|
									}
							 | 
						|
									$CLIENT{'emlaclstr'} =~ s/@//g;
							 | 
						|
									$CLIENT{'emlaclstr'} =~ s/,$//g;
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
									if ($FORM{'idx'} eq '1') {
							 | 
						|
										&log_entry($SESSION{'clid'}, $SESSION{'uid'}, "2", "SA/I");
							 | 
						|
										if ($SESSION{'uac'} eq 'admin' || $SESSION{'uac'} eq 'gadmin' || $SESSION{'uac'} eq 'madmin') {
							 | 
						|
											&show_template("sadminidx");
							 | 
						|
										} else {
							 | 
						|
											&show_template("cndidx");
							 | 
						|
										}
							 | 
						|
									} elsif ($FORM{'dtl'} eq '0') {
							 | 
						|
										print "<HTML>\n$xlatphrase[539]<BR>$xlatphrase[540]</HTML>\n";
							 | 
						|
									} elsif ($FORM{'dtl'} eq '1') {
							 | 
						|
										&log_entry($SESSION{'clid'}, $SESSION{'uid'}, "2", "SA/CM");
							 | 
						|
										if ($SESSION{'uac'} eq 'gadmin') {
							 | 
						|
											&show_admin_request("maintclient");
							 | 
						|
										} else {
							 | 
						|
											$FORM{'dbop'} = 'ccupd';
							 | 
						|
											&show_admin_request("cdef");
							 | 
						|
										}
							 | 
						|
									} elsif ($FORM{'dtl'} eq '12') {
							 | 
						|
										&log_entry($SESSION{'clid'}, $SESSION{'uid'}, "2", "SA/TR");
							 | 
						|
										&show_admin_request("treplicaframe");
							 | 
						|
									} elsif ($FORM{'dtl'} eq '13') {
							 | 
						|
										&log_entry($SESSION{'clid'}, $SESSION{'uid'}, "2", "SA/TO");
							 | 
						|
										&show_admin_request("tocrinpframe");
							 | 
						|
									} elsif ($FORM{'dtl'} eq '2') {
							 | 
						|
										&log_entry($SESSION{'clid'}, $SESSION{'uid'}, "2", "SA/TM");
							 | 
						|
										$TEST{'id'} = $FORM{'tstid'};
							 | 
						|
										&show_admin_request("tdefframe");
							 | 
						|
									} elsif ($FORM{'dtl'} eq '21') {
							 | 
						|
										if ($SESSION{'uac'} eq 'cnd') {
							 | 
						|
											$CANDIDATE{'ownedtests'} = &get_group_tests($SESSION{'clid'}, $SESSION{'uid'}, 0);
							 | 
						|
										}
							 | 
						|
										&show_admin_request("mainttest");
							 | 
						|
									} elsif ($FORM{'dtl'} eq '99') {
							 | 
						|
										&show_template("selectpg");
							 | 
						|
									} elsif ($FORM{'dtl'} eq '3') {
							 | 
						|
										&log_entry($SESSION{'clid'}, $SESSION{'uid'}, "2", "SA/R");
							 | 
						|
										&show_admin_request("maintreport");
							 | 
						|
									} elsif ($FORM{'dtl'} eq '4') {
							 | 
						|
										&log_entry($SESSION{'clid'}, $SESSION{'uid'}, "2", "SA/DL");
							 | 
						|
										&show_admin_downloads;
							 | 
						|
									} elsif ($FORM{'dtl'} eq '5') {
							 | 
						|
										&log_entry($SESSION{'clid'}, $SESSION{'uid'}, "2", "SA/DB");
							 | 
						|
										&show_admin_request("maintdb");
							 | 
						|
									} elsif ($FORM{'dtl'} eq '6') {
							 | 
						|
										&log_entry($SESSION{'clid'}, $SESSION{'uid'}, "2", "SA/CF");
							 | 
						|
										# set FORM.colors
							 | 
						|
										$trash = join( $pathsep, $dataroot, "config.$SESSION{'clid'}");
							 | 
						|
										$omsg = "";
							 | 
						|
										open( CFGFILE, "<$trash" ) or $omsg="not found";
							 | 
						|
										if ($omsg eq 'not found') {
							 | 
						|
											$trash = join( $pathsep, $dataroot, "config.std");
							 | 
						|
											open( CFGFILE, "<$trash" ) or return;
							 | 
						|
										}
							 | 
						|
										@cfgentries = <CFGFILE>;
							 | 
						|
										close CFGFILE;
							 | 
						|
										$langdef = "enu";
							 | 
						|
										$FORM{'colors'} = "";
							 | 
						|
										for (0 .. $#cfgentries) {
							 | 
						|
											chop ($cfgentries[$_]);
							 | 
						|
											($entrykey,$entryvalue) = split(/=/, $cfgentries[$_]);
							 | 
						|
											if ($entrykey eq 'DEFAULTLANG') {
							 | 
						|
												$langdef = $entryvalue;
							 | 
						|
												$langselfr = ($langdef eq 'fr') ? " SELECTED" : "";
							 | 
						|
												$langselsp = ($langdef eq 'sp') ? " SELECTED" : "";
							 | 
						|
												$langseldeu = ($langdef eq 'deu') ? " SELECTED" : "";
							 | 
						|
												$langselenu = ($langdef eq 'enu') ? " SELECTED" : "";
							 | 
						|
												$langselena = ($langdef eq 'ena') ? " SELECTED" : "";
							 | 
						|
												$langseleuv = ($langdef eq 'euv') ? " SELECTED" : "";
							 | 
						|
												$langselcyr = ($langdef eq 'cyr') ? " SELECTED" : "";
							 | 
						|
												$langselmy = ($langdef eq 'my') ? " SELECTED" : "";
							 | 
						|
												$langselkor = ($langdef eq 'kor') ? " SELECTED" : "";
							 | 
						|
												$langselafr = ($langdef eq 'afr') ? " SELECTED" : "";
							 | 
						|
												$langselhin = ($langdef eq 'hin') ? " SELECTED" : "";
							 | 
						|
												$colortag = "<TR>
							 | 
						|
											<TD align=right>
							 | 
						|
												$xlatphrase[541]\ \;
							 | 
						|
											</TD>
							 | 
						|
											<TD align=left>
							 | 
						|
												<SELECT NAME=\"CDEFAULTLANG\" onChange=\"reset_autotimer()\">
							 | 
						|
												 	<OPTION VALUE=\"enu\"$langselenu>$LANGUAGE_ID{'enu'}
							 | 
						|
												 	<OPTION VALUE=\"ena\"$langselena>$LANGUAGE_ID{'ena'}
							 | 
						|
												 	<OPTION VALUE=\"euv\"$langseleuv>$LANGUAGE_ID{'euv'}
							 | 
						|
											 		<OPTION VALUE=\"fr\"$langselfr>Fr�nc��s ($LANGUAGE_ID{'fr'})
							 | 
						|
												 	<OPTION VALUE=\"deu\"$langseldeu>D�utsch ($LANGUAGE_ID{'deu'})
							 | 
						|
												 	<OPTION VALUE=\"sp\"$langselsp>Espa�ol ($LANGUAGE_ID{'sp'})
							 | 
						|
												        <OPTION VALUE=\"cyr\"$langselcyr>Cyrillic ($LANGUAGE_ID{'cyr'})
							 | 
						|
												        <OPTION VALUE=\"my\"$langselmy>Malay ($LANGUAGE_ID{'my'})
							 | 
						|
												        <OPTION VALUE=\"kor\"$langselkor>Korean ($LANGUAGE_ID{'kor'})
							 | 
						|
												        <OPTION VALUE=\"afr\"$langselafr>Afrikaans ($LANGUAGE_ID{'afr'})
							 | 
						|
												        <OPTION VALUE=\"hin\"$langselafr>Hindi ($LANGUAGE_ID{'hin'})
							 | 
						|
												</SELECT>
							 | 
						|
											</TD>
							 | 
						|
										</TR>\n";
							 | 
						|
												$FORM{'language'} = join('', $colortag, $FORM{'language'});
							 | 
						|
											} elsif ($entrykey eq 'IP_ACCESS_FILTER') {
							 | 
						|
												$FORM{'language'} = "		<TR>
							 | 
						|
											<TD align=right width=50\%>
							 | 
						|
												$xlatphrase[385]\ \;
							 | 
						|
											</TD>
							 | 
						|
											<TD align=left width=50\%>
							 | 
						|
												<INPUT TYPE=TEXT NAME=\"C$entrykey\" VALUE=\"$entryvalue\" onChange=\"reset_autotimer()\">
							 | 
						|
											</TD>
							 | 
						|
										</TR>\n";
							 | 
						|
											} else {
							 | 
						|
												if ($entrykey eq 'BACKGROUND') {
							 | 
						|
													$colortag = "		<TR>
							 | 
						|
											<TD align=right><font size=1>$entrykey:\ \;</font></TD>
							 | 
						|
											<TD align=left><INPUT TYPE=FILE NAME=\"C$entrykey\" VALUE=\"$entryvalue\" onChange=\"reset_autotimer()\"></TD>
							 | 
						|
										</TR>\n";
							 | 
						|
												} else {
							 | 
						|
													if (($entrykey =~ /COLOR/) 
							 | 
						|
														|| ($entrykey =~ 'LINK')
							 | 
						|
														|| ($entrykey =~ 'ALINK')
							 | 
						|
														|| ($entrykey =~ 'VLINK')
							 | 
						|
														|| ($entrykey eq 'TEXT') ) {
							 | 
						|
														$gotfocus = "onFocus=\"return tGotFocus(this)\"";
							 | 
						|
													} else {
							 | 
						|
														$gotfocus = "";
							 | 
						|
													}
							 | 
						|
													$colortag = "		<TR>
							 | 
						|
											<TD align=right nowrap><font size=1>$entrykey:\ \;</font></TD>
							 | 
						|
											<TD align=left><INPUT TYPE=TEXT NAME=\"C$entrykey\" SIZE=8 MAXLENGTH=7 VALUE=\"$entryvalue\" $gotfocus onChange=\"reset_autotimer()\"></TD>
							 | 
						|
										</TR>\n";
							 | 
						|
												}
							 | 
						|
												$FORM{'colors'} = join('', $FORM{'colors'}, $colortag);
							 | 
						|
											}
							 | 
						|
										}
							 | 
						|
										&show_admin_request("maintcfg");
							 | 
						|
									} elsif ($FORM{'dtl'} eq '7') {
							 | 
						|
										&log_entry($SESSION{'clid'}, $SESSION{'uid'}, "2", "SA/GP");
							 | 
						|
										&show_admin_request($mainttmplt);
							 | 
						|
									} elsif ($FORM{'dtl'} eq '8') {
							 | 
						|
								#Begin filtering
							 | 
						|
										$filterbydate = $FORM{'filterbydate'};
							 | 
						|
										$day_filter = $FORM{'day_filter'};
							 | 
						|
										$date_filter = $FORM{'date_filter'};
							 | 
						|
										$cnd1_filter = $FORM{'cnd1'};
							 | 
						|
										$cnd2_filter = $FORM{'cnd2'};
							 | 
						|
										$cnd3_filter = $FORM{'cnd3'};
							 | 
						|
										$cnd4_filter = $FORM{'cnd4'};
							 | 
						|
								#End filtering
							 | 
						|
										&log_entry($SESSION{'clid'}, $SESSION{'uid'}, "2", "SA/CC");
							 | 
						|
										&show_admin_request("maintcnd");
							 | 
						|
									} elsif ($FORM{'dtl'} eq '9') {
							 | 
						|
										&log_entry($SESSION{'clid'}, $SESSION{'uid'}, "2", "SA/RG");
							 | 
						|
										&show_admin_request("regcnd");
							 | 
						|
									} elsif ($FORM{'dtl'} eq '10') {
							 | 
						|
										&log_entry($SESSION{'clid'}, $SESSION{'uid'}, "2", "SA/IM");
							 | 
						|
										&show_admin_request("upimport");
							 | 
						|
									} elsif ($FORM{'dtl'} eq '11') {
							 | 
						|
										&log_entry($SESSION{'clid'}, $SESSION{'uid'}, "2", "SA/LC");
							 | 
						|
										&show_admin_request("frlicadmin");
							 | 
						|
									} elsif ($FORM{'dbop'} ne '') {
							 | 
						|
										&show_dbop_response;
							 | 
						|
									} else {
							 | 
						|
										&show_illegal_access_warning;
							 | 
						|
									}
							 | 
						|
								} else {
							 | 
						|
									&logger::logerr("Unable to get session with &get_session($FORM{'tid'})");
							 | 
						|
									&show_illegal_access_warning;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								sub show_license_request {
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								sub show_admin_downloads {
							 | 
						|
									@dlrecs = &get_data("downloads.dat");
							 | 
						|
									$bFirst=1;
							 | 
						|
									if ($#dlrecs eq 0) {
							 | 
						|
										$download = "<OPTION VALUE=\"nya\">No downloads are currently available.\n";
							 | 
						|
										$SYSTEM{'downloadcount'} = 1;
							 | 
						|
									} else {
							 | 
						|
										$downloadcount=0;
							 | 
						|
										foreach $dlrec (@dlrecs) {
							 | 
						|
											$msg = "";
							 | 
						|
											if ($bFirst) {
							 | 
						|
												$bFirst = 0;
							 | 
						|
											} else {
							 | 
						|
												chop ($dlrec);
							 | 
						|
												@flds = split(/&/, $dlrec);
							 | 
						|
												$dlfile = join($pathsep, $pubroot, "downloads/$flds[2]");
							 | 
						|
												open (TMPFILE, "<$dlfile") or $msg="nya";
							 | 
						|
												if ($msg eq 'nya') {
							 | 
						|
													$download = "<OPTION VALUE=\"nya\">$flds[1] (Coming Soon)\n";
							 | 
						|
												} else {
							 | 
						|
													binmode(TMPFILE);
							 | 
						|
													$fsize = (stat(TMPFILE))[7];
							 | 
						|
													close TMPFILE;
							 | 
						|
													$download = "<OPTION VALUE=\"$flds[2]\">$flds[1] ($fsize bytes)\n";
							 | 
						|
												}
							 | 
						|
												$downloadcount++;
							 | 
						|
												$downloads = join('', $downloads , $download);
							 | 
						|
											}
							 | 
						|
										}
							 | 
						|
										if ($downloadcount == 0) { $downloadcount = 1;}
							 | 
						|
										if ($downloadcount > 10) { $downloadcount = 10;};
							 | 
						|
										$SYSTEM{'downloadcount'} = $downloadcount;
							 | 
						|
									}
							 | 
						|
									$SYSTEM{'downloads'} = $downloads;
							 | 
						|
									@dlrecs = ();
							 | 
						|
									$downloads = "";
							 | 
						|
									$download = "";
							 | 
						|
									&show_template("download");
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								#sub show_admin_request {    ##moved to smilib
							 | 
						|
								#	my ($key) = @_;
							 | 
						|
								#	&get_template($key);
							 | 
						|
								#	@lines = &get_template($key);
							 | 
						|
								#	foreach $line (@lines) {
							 | 
						|
								#		$line = &xlatline($line);
							 | 
						|
								#	}
							 | 
						|
								#}
							 | 
						|
								
							 | 
						|
								sub show_dbop_response {
							 | 
						|
									if ($FORM{'dbop'} eq 'tnew') {
							 | 
						|
										&log_entry($SESSION{'clid'}, $SESSION{'uid'}, "2", "Define New Test");
							 | 
						|
										$FORM{'newtest'} = "Y";
							 | 
						|
										@lines = &get_template("tdefframe");
							 | 
						|
										&print_response;
							 | 
						|
									} elsif ($FORM{'dbop'} eq'tdel') {
							 | 
						|
										&log_entry($SESSION{'clid'}, $SESSION{'uid'}, "2", "Delete Test $FORM{'tstid'}");
							 | 
						|
										@trecs = &get_test_list($SESSION{'clid'});
							 | 
						|
										foreach $trec (@trecs) {
							 | 
						|
											chop ($trec);
							 | 
						|
											($id, $trash) = split(/\&/, $trec);
							 | 
						|
											if ($FORM{'tstid'} ne $id) {
							 | 
						|
												push @newtests, $trec;
							 | 
						|
											}
							 | 
						|
										}
							 | 
						|
										@trecs = @newtests;
							 | 
						|
										&save_test_list($SESSION{'clid'});
							 | 
						|
										$showmessage = "Test $FORM{'tstid'} has been deleted.";
							 | 
						|
										&show_message_with_close($showmessage);
							 | 
						|
									} elsif ($FORM{'dbop'} eq 'tupd') {
							 | 
						|
										&log_entry($SESSION{'clid'}, $SESSION{'uid'}, "2", "Edit Test $FORM{'tstid'}");
							 | 
						|
										$TEST{'new'} = "N";
							 | 
						|
										&get_test_profile($SESSION{'clid'}, $FORM{'tstid'});
							 | 
						|
										@lines = &get_template("tdefframe");
							 | 
						|
										&print_response;
							 | 
						|
									} elsif ($FORM{'dbop'} eq 'cnew') {
							 | 
						|
										&log_entry($SESSION{'clid'}, $SESSION{'uid'}, "2", "New Client");
							 | 
						|
										$FORM{'newclient'} = "Y";
							 | 
						|
										@lines = &get_template("cdef");
							 | 
						|
										&print_response;
							 | 
						|
									} elsif ($FORM{'dbop'} eq 'cdel') {
							 | 
						|
										&log_entry($SESSION{'clid'}, $SESSION{'uid'}, "2", "Delete Client $FORM{'clid'}");
							 | 
						|
										&open_results;
							 | 
						|
										&client_delete_response;
							 | 
						|
										&close_results;
							 | 
						|
										$FORM{'dtl'} eq 8;
							 | 
						|
									} elsif ($FORM{'dbop'} eq 'cupd') {
							 | 
						|
										&log_entry($SESSION{'clid'}, $SESSION{'uid'}, "2", "Edit Client $FORM{'clid'}");
							 | 
						|
										&get_client_profile($FORM{'clid'});
							 | 
						|
										@lines = &get_template("cdef");
							 | 
						|
										&print_response;
							 | 
						|
									}
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								sub print_response {
							 | 
						|
									foreach $line (@lines) {
							 | 
						|
										$srch = "<%=CLIENT.REPORTING%>";
							 | 
						|
										if ( $line =~ /$srch/i) {
							 | 
						|
											&client_reporting_options($CLIENT{'clid'});
							 | 
						|
										} else {
							 | 
						|
											$line = &xlatline($line);
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								sub client_reporting_options {
							 | 
						|
								#	@rrecs = &get_test_list($_[0]);
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								sub client_delete_response {
							 | 
						|
									&get_client_profile($FORM{'clid'});
							 | 
						|
								
							 | 
						|
									print "Deleting $FORM{'clid'} $CLIENT{'clnmc'} ...<BR>\n";
							 | 
						|
								
							 | 
						|
									# open preservation file
							 | 
						|
									$archivefile = join($pathsep, $dataroot, "$FORM{'clid'}.dat");
							 | 
						|
									$archivefile =~ s/$docroot/$archiveroot/g;
							 | 
						|
									open (ARCHFILE, ">$archivefile");
							 | 
						|
								
							 | 
						|
									# delete client profile
							 | 
						|
									@crecs = &get_data("clients.dat");
							 | 
						|
									$trash = join($pathsep, $dataroot, "clients.dat");
							 | 
						|
									open (TMPFILE, ">$trash");
							 | 
						|
									foreach $crec (@crecs) {
							 | 
						|
										chop ($crec);
							 | 
						|
										($id, $trash) = split(/&/, $crec);
							 | 
						|
										if ($id eq $CLIENT{'clid'}) {
							 | 
						|
											print ARCHFILE "$crec\n";
							 | 
						|
											print "client profile $id archived $! ...<BR>\n";
							 | 
						|
										} else {
							 | 
						|
											print TMPFILE "$crec\n";
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
									close TMPFILE;
							 | 
						|
								
							 | 
						|
									# delete administrative logins
							 | 
						|
									@crecs = &get_data("admin.dat");
							 | 
						|
									$trash = join($pathsep, $dataroot, "admin.dat");
							 | 
						|
									open (TMPFILE, ">$trash");
							 | 
						|
									foreach $crec (@crecs) {
							 | 
						|
										chop ($crec);
							 | 
						|
										($id, $pwd, $pv, $clid) = split(/&/, $crec);
							 | 
						|
										if ($clid eq $CLIENT{'clid'}) {
							 | 
						|
											print ARCHFILE "$crec\n";
							 | 
						|
											print "admin login $id archived $! ...<BR>\n";
							 | 
						|
										} else {
							 | 
						|
											print TMPFILE "$crec\n";
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
									close TMPFILE;
							 | 
						|
									close ARCHFILE;
							 | 
						|
									$chmodok = chmod 0666, $archivefile;
							 | 
						|
								
							 | 
						|
									# delete logos
							 | 
						|
									$ulinkdir = join($pathsep, $pubroot, "graphic");
							 | 
						|
									opendir (GDIR, $ulinkdir);
							 | 
						|
									@dots = readdir(GDIR);
							 | 
						|
									closedir GDIR;
							 | 
						|
									$rmmask = "$CLIENT{'clid'}.";
							 | 
						|
									foreach $rmfile (@dots) {
							 | 
						|
										if ($rmfile =~ /$rmmask/ ) {
							 | 
						|
											$ulinkfile = join($pathsep, $pubroot, "graphic", $rmfile);
							 | 
						|
											$archivefile = $ulinkfile;
							 | 
						|
											$archivefile =~ s/$docroot/$archiveroot/g;
							 | 
						|
											rename $ulinkfile, $archivefile;
							 | 
						|
											print "$ulinkfile archived $! ...<BR>\n";
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
									@dots = ();
							 | 
						|
								
							 | 
						|
									# delete cnd file
							 | 
						|
									$tofile = join($pathsep, $dataroot, "cnd.$CLIENT{'clid'}");
							 | 
						|
									$archivefile = $tofile;
							 | 
						|
									$archivefile =~ s/$docroot/$archiveroot/g;
							 | 
						|
									rename $tofile, $archivefile;
							 | 
						|
									print "$tofile archived $! ...<BR>\n";
							 | 
						|
								
							 | 
						|
									# delete reports file
							 | 
						|
									$tofile = join($pathsep, $dataroot, "reports.$CLIENT{'clid'}");
							 | 
						|
									$archivefile = $tofile;
							 | 
						|
									$archivefile =~ s/$docroot/$archiveroot/g;
							 | 
						|
									rename $tofile, $archivefile;
							 | 
						|
									print "$tofile archived $! ...<BR>\n";
							 | 
						|
								
							 | 
						|
									# delete tests file
							 | 
						|
									$tofile = join($pathsep, $dataroot, "tests.$CLIENT{'clid'}");
							 | 
						|
									$archivefile = $tofile;
							 | 
						|
									$archivefile =~ s/$docroot/$archiveroot/g;
							 | 
						|
									rename $tofile, $archivefile;
							 | 
						|
									print "$tofile archived $! ...<BR>\n";
							 | 
						|
								
							 | 
						|
									# delete test graphic files
							 | 
						|
									opendir (GDIR, $testgraphic);
							 | 
						|
									@dots = readdir(GDIR);
							 | 
						|
									closedir GDIR;
							 | 
						|
									$rmmask = "$CLIENT{'clid'}.";
							 | 
						|
									foreach $rmfile (@dots) {
							 | 
						|
										if ($rmfile =~ /$rmmask/ ) {
							 | 
						|
											$ulinkfile = join($pathsep, $testgraphic, $rmfile);
							 | 
						|
											$archivefile = $ulinkfile;
							 | 
						|
											$archivefile =~ s/$docroot/$archiveroot/g;
							 | 
						|
											rename $ulinkfile, $archivefile;
							 | 
						|
											print "$ulinkfile archived $! ...<BR>\n";
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
									@dots = ();
							 | 
						|
								
							 | 
						|
									# delete test questions files
							 | 
						|
									opendir (GDIR, $questionroot);
							 | 
						|
									@dots = readdir(GDIR);
							 | 
						|
									closedir GDIR;
							 | 
						|
									$rmmask = ".$CLIENT{'clid'}";
							 | 
						|
									foreach $rmfile (@dots) {
							 | 
						|
										if ($rmfile =~ /$rmmask/ ) {
							 | 
						|
											$ulinkfile = join($pathsep, $questionroot, $rmfile);
							 | 
						|
											$archivefile = $ulinkfile;
							 | 
						|
											$archivefile =~ s/$docroot/$archiveroot/g;
							 | 
						|
											rename $ulinkfile, $archivefile;
							 | 
						|
											print "$ulinkfile archived $! ...<BR>\n";
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
									@dots = ();
							 | 
						|
								
							 | 
						|
									# delete index page
							 | 
						|
									$tofile = join($pathsep, $pubroot, "$CLIENT{'clid'}", "index.htm");
							 | 
						|
									$cnt = unlink $tofile;
							 | 
						|
									print "$tofile deleted $! ...<BR>\n";
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								sub open_results {
							 | 
						|
									print "<HTML>
							 | 
						|
								<HEAD>
							 | 
						|
									<SCRIPT language=\"JavaScript\">
							 | 
						|
								<!--
							 | 
						|
								function right(e) {
							 | 
						|
									if (navigator.appName == 'Netscape' && (e.which == 3 || e.which == 2)) {
							 | 
						|
										alert(\"<%=PHRASE.473%>\");
							 | 
						|
										return false;
							 | 
						|
									} else {
							 | 
						|
										if (navigator.appName == 'Microsoft Internet Explorer' && (event.button == 2 || event.button == 3)) {
							 | 
						|
											alert(\"<%=PHRASE.473%>\");
							 | 
						|
											return false;
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
									return true;
							 | 
						|
								}
							 | 
						|
								document.onmousedown=right;
							 | 
						|
								document.onmouseup=right;
							 | 
						|
								if (document.layers) window.captureEvents(Event.MOUSEDOWN);
							 | 
						|
								if (document.layers) window.captureEvents(Event.MOUSEUP);
							 | 
						|
								window.onmousedown=right;
							 | 
						|
								window.onmouseup=right;
							 | 
						|
								// -->
							 | 
						|
									</SCRIPT>
							 | 
						|
								</HEAD>
							 | 
						|
								<BODY BACKGROUND=\"$SYSTEM{'BACKGROUND'}\" BGCOLOR==\"$SYSTEM{'BGCOLOR'}\"
							 | 
						|
									TEXT=\"$SYSTEM{'TEXT'}\" LINK=\"$SYSTEM{'LINK'}\"
							 | 
						|
									VLINK=\"$SYSTEM{'VLINK'}\" ALINK=\"$SYSTEM{'ALINK'}\">
							 | 
						|
								";
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								sub close_results {
							 | 
						|
									print "</BODY>\n</HTML>\n";
							 | 
						|
								}
							 | 
						|
								
							 |