version 1.5, 2004/08/05 21:08:24
|
version 1.6, 2005/04/07 06:56:27
|
Line 40 use File::Basename();
|
Line 40 use File::Basename();
|
# ---------------------------------------------------------------- Display Control |
# ---------------------------------------------------------------- Display Control |
sub display_control { |
sub display_control { |
# figure out what page we're on and where we're heading. |
# figure out what page we're on and where we're heading. |
my $page = $ENV{'form.page'}; |
my $page = $env{'form.page'}; |
my $command = $ENV{'form.go'}; |
my $command = $env{'form.go'}; |
my $current_page = &calculate_page($page,$command); |
my $current_page = &calculate_page($page,$command); |
return $current_page; |
return $current_page; |
} |
} |
Line 86 function setElements() {
|
Line 86 function setElements() {
|
var iter = 0 |
var iter = 0 |
var selParam = 0 |
var selParam = 0 |
END_SCRIPT |
END_SCRIPT |
if (exists($ENV{'form.blocks'}) ) { |
if (exists($env{'form.blocks'}) ) { |
$$jsref .= qq| |
$$jsref .= qq| |
document.forms.display.blocks.value = $ENV{'form.blocks'}\n|; |
document.forms.display.blocks.value = $env{'form.blocks'}\n|; |
} elsif (exists($ENV{'form.qnumformat'}) ) { |
} elsif (exists($env{'form.qnumformat'}) ) { |
$$jsref .= <<"TO_HERE"; |
$$jsref .= <<"TO_HERE"; |
for (iter=0; iter<document.forms.display.qnumformat.length; iter++) { |
for (iter=0; iter<document.forms.display.qnumformat.length; iter++) { |
if(document.forms.display.qnumformat.options[iter].value == "$ENV{'form.qnumformat'}") { |
if(document.forms.display.qnumformat.options[iter].value == "$env{'form.qnumformat'}") { |
selParam = iter |
selParam = iter |
} |
} |
} |
} |
Line 108 TO_HERE
|
Line 108 TO_HERE
|
sub jscript_two { |
sub jscript_two { |
my ($jsref,$qcount) = @_; |
my ($jsref,$qcount) = @_; |
my $blocks = 0; |
my $blocks = 0; |
if ( exists( $ENV{'form.blocks'}) ) { |
if ( exists( $env{'form.blocks'}) ) { |
$blocks = $ENV{'form.blocks'}; |
$blocks = $env{'form.blocks'}; |
} |
} |
$$jsref = <<"END_SCRIPT"; |
$$jsref = <<"END_SCRIPT"; |
function verify() { |
function verify() { |
Line 308 END_SCRIPT
|
Line 308 END_SCRIPT
|
for (my $x=0; $x<$blocks; $x++) { |
for (my $x=0; $x<$blocks; $x++) { |
foreach my $name (@names) { |
foreach my $name (@names) { |
my $parname = $name.$x; |
my $parname = $name.$x; |
my $value = $ENV{"form.$parname"}; |
my $value = $env{"form.$parname"}; |
if ($value ne "") { |
if ($value ne "") { |
if (($name eq "start_") || ($name eq "end_")) { |
if (($name eq "start_") || ($name eq "end_")) { |
$$jsref .= qq| |
$$jsref .= qq| |
Line 345 TO_HERE
|
Line 345 TO_HERE
|
sub jscript_three { |
sub jscript_three { |
my ($fullpath,$jsref) = @_; |
my ($fullpath,$jsref) = @_; |
my $source = ''; |
my $source = ''; |
if (exists($ENV{'form.go'}) ) { |
if (exists($env{'form.go'}) ) { |
$source = $ENV{'form.go'}; |
$source = $env{'form.go'}; |
} |
} |
$$jsref = <<"END_OF_ONE"; |
$$jsref = <<"END_OF_ONE"; |
function verify() { |
function verify() { |
Line 398 function setElements() {
|
Line 398 function setElements() {
|
var iter = 0 |
var iter = 0 |
var selParam = 0 |
var selParam = 0 |
|; |
|; |
foreach my $item (keys %ENV) { |
foreach my $item (keys %env) { |
if ($item =~ m/^form\.(\w+)$/) { |
if ($item =~ m/^form\.(\w+)$/) { |
my $name = $1; |
my $name = $1; |
my $value = $ENV{"form.$name"}; |
my $value = $env{"form.$name"}; |
unless ($value eq "") { |
unless ($value eq "") { |
if ($name eq "newdir") { |
if ($name eq "newdir") { |
$$jsref .= qq( document.forms.dataForm.$name.value = "$value"\n); |
$$jsref .= qq( document.forms.dataForm.$name.value = "$value"\n); |
Line 654 Please indicate the number of blocks of
|
Line 654 Please indicate the number of blocks of
|
|
|
sub display_two { |
sub display_two { |
my ($r,$uname,$fn,$page,$textref,$qcount) = @_; |
my ($r,$uname,$fn,$page,$textref,$qcount) = @_; |
my $blocks = $ENV{'form.blocks'}; |
my $blocks = $env{'form.blocks'}; |
my $qnumformat = $ENV{'form.qnumformat'}; |
my $qnumformat = $env{'form.qnumformat'}; |
my @types = ("MC","MA","TF","Ess","FIB","Ord"); |
my @types = ("MC","MA","TF","Ess","FIB","Ord"); |
my %typenames = ( |
my %typenames = ( |
MC => "Multiple Choice", |
MC => "Multiple Choice", |
Line 867 END_OF_FUNC
|
Line 867 END_OF_FUNC
|
# ---------------------------------------------------------------- Display Three |
# ---------------------------------------------------------------- Display Three |
sub display_three { |
sub display_three { |
my ($r,$uname,$fn,$page,$textref,$qcount) = @_; |
my ($r,$uname,$fn,$page,$textref,$qcount) = @_; |
my $qnumformat = $ENV{'form.qnumformat'}; |
my $qnumformat = $env{'form.qnumformat'}; |
my $filename = $ENV{'form.filename'}; |
my $filename = $env{'form.filename'}; |
my $source = $ENV{'form.go'}; |
my $source = $env{'form.go'}; |
my $blocks = $ENV{'form.blocks'}; |
my $blocks = $env{'form.blocks'}; |
my @items = (); |
my @items = (); |
my @bgcolors = ('#ffffff','#eeeeee'); |
my @bgcolors = ('#ffffff','#eeeeee'); |
my @types = ("MC","MA","TF","Ess","FIB","Ord"); |
my @types = ("MC","MA","TF","Ess","FIB","Ord"); |
Line 885 sub display_three {
|
Line 885 sub display_three {
|
my %multparts = (); |
my %multparts = (); |
my $numitems = 0; |
my $numitems = 0; |
for (my $i=0; $i<$blocks; $i++) { |
for (my $i=0; $i<$blocks; $i++) { |
if (($ENV{"form.start_$i"} ne '') && ($ENV{"form.end_$i"} ne '')) { |
if (($env{"form.start_$i"} ne '') && ($env{"form.end_$i"} ne '')) { |
$start[$i] = $ENV{"form.start_$i"}; |
$start[$i] = $env{"form.start_$i"}; |
$end[$i] = $ENV{"form.end_$i"}; |
$end[$i] = $env{"form.end_$i"}; |
$nums[$i] = $end[$i]-$start[$i] +1; |
$nums[$i] = $end[$i]-$start[$i] +1; |
$qtype[$i] = $ENV{"form.qtype_$i"}; |
$qtype[$i] = $env{"form.qtype_$i"}; |
if (($qtype[$i] eq "MC") || ($qtype[$i] eq "MA") || ($qtype[$i] eq "Ord")) { |
if (($qtype[$i] eq "MC") || ($qtype[$i] eq "MA") || ($qtype[$i] eq "Ord")) { |
$foilformats[$i] = $ENV{"form.foilformat_$i"}; |
$foilformats[$i] = $env{"form.foilformat_$i"}; |
} else { |
} else { |
$foilformats[$i] = ''; |
$foilformats[$i] = ''; |
} |
} |
if (($qtype[$i] eq "MA") || ($qtype[$i] eq "FIB") || ($qtype[$i] eq "TF") || ($qtype[$i] eq "Ord")) { |
if (($qtype[$i] eq "MA") || ($qtype[$i] eq "FIB") || ($qtype[$i] eq "TF") || ($qtype[$i] eq "Ord")) { |
$ansrtypes[$i] = $ENV{"form.ansr_$i"}; |
$ansrtypes[$i] = $env{"form.ansr_$i"}; |
} else { |
} else { |
$ansrtypes[$i] = ''; |
$ansrtypes[$i] = ''; |
} |
} |
Line 1094 Please choose a destination LON-CAPA dir
|
Line 1094 Please choose a destination LON-CAPA dir
|
# ---------------------------------------------------------------- Final Display |
# ---------------------------------------------------------------- Final Display |
sub final_display { |
sub final_display { |
my ($r,$uname,$fn,$page,$textref) = @_; |
my ($r,$uname,$fn,$page,$textref) = @_; |
my $qnumformat = $ENV{'form.qnumformat'}; |
my $qnumformat = $env{'form.qnumformat'}; |
my $blocks = $ENV{'form.blocks'}; |
my $blocks = $env{'form.blocks'}; |
my $newdir = $ENV{'form.newdir'}; |
my $newdir = $env{'form.newdir'}; |
my $linkdir = $newdir; |
my $linkdir = $newdir; |
if ($linkdir =~ m#^/home/$uname/public_html/(.+)$#) { |
if ($linkdir =~ m#^/home/$uname/public_html/(.+)$#) { |
$linkdir = '/priv/'.$uname.'/'.$1; |
$linkdir = '/priv/'.$uname.'/'.$1; |
Line 1113 sub final_display {
|
Line 1113 sub final_display {
|
my %multparts = (); |
my %multparts = (); |
my $numitems = 0; |
my $numitems = 0; |
for (my $i=0; $i<$blocks; $i++) { |
for (my $i=0; $i<$blocks; $i++) { |
$start[$i] = $ENV{"form.start_$i"}; |
$start[$i] = $env{"form.start_$i"}; |
$end[$i] = $ENV{"form.end_$i"}; |
$end[$i] = $env{"form.end_$i"}; |
if (($end[$i] - $start[$i]) >= 0) { |
if (($end[$i] - $start[$i]) >= 0) { |
$nums[$i] = $end[$i] - $start[$i]+1; |
$nums[$i] = $end[$i] - $start[$i]+1; |
} else { |
} else { |
$nums[$i] = 0; |
$nums[$i] = 0; |
} |
} |
$qtype[$i] = $ENV{"form.qtype_$i"}; |
$qtype[$i] = $env{"form.qtype_$i"}; |
if (($qtype[$i] eq "MC") || ($qtype[$i] eq "MA") || ($qtype[$i] eq "Ord")) { |
if (($qtype[$i] eq "MC") || ($qtype[$i] eq "MA") || ($qtype[$i] eq "Ord")) { |
$foilformats[$i] = $ENV{"form.foilformat_$i"}; |
$foilformats[$i] = $env{"form.foilformat_$i"}; |
} else { |
} else { |
$foilformats[$i] = ''; |
$foilformats[$i] = ''; |
} |
} |
if (($qtype[$i] eq "MA") || ($qtype[$i] eq "FIB") || ($qtype[$i] eq "TF") || ($qtype[$i] eq "Ord")) { |
if (($qtype[$i] eq "MA") || ($qtype[$i] eq "FIB") || ($qtype[$i] eq "TF") || ($qtype[$i] eq "Ord")) { |
$ansrtypes[$i] = $ENV{"form.ansr_$i"}; |
$ansrtypes[$i] = $env{"form.ansr_$i"}; |
} |
} |
$numitems += $nums[$i]; |
$numitems += $nums[$i]; |
} |
} |
Line 1705 sub handler {
|
Line 1705 sub handler {
|
# |
# |
# phase two: re-attach user |
# phase two: re-attach user |
# |
# |
if ($ENV{'form.uploaduname'}) { |
if ($env{'form.uploaduname'}) { |
$ENV{'form.filename'}='/priv/'.$ENV{'form.uploaduname'}.'/'. |
$env{'form.filename'}='/priv/'.$env{'form.uploaduname'}.'/'. |
$ENV{'form.filename'}; |
$env{'form.filename'}; |
} |
} |
($uname,$udom)= |
($uname,$udom)= |
&Apache::loncacc::constructaccess($ENV{'form.filename'}, |
&Apache::loncacc::constructaccess($env{'form.filename'}, |
$r->dir_config('lonDefDomain')); |
$r->dir_config('lonDefDomain')); |
unless (($uname) && ($udom)) { |
unless (($uname) && ($udom)) { |
$r->log_reason($uname.' at '.$udom. |
$r->log_reason($uname.' at '.$udom. |
' trying to publish file '.$ENV{'form.filename'}. |
' trying to publish file '.$env{'form.filename'}. |
' - not authorized', |
' - not authorized', |
$r->filename); |
$r->filename); |
return HTTP_NOT_ACCEPTABLE; |
return HTTP_NOT_ACCEPTABLE; |
Line 1722 sub handler {
|
Line 1722 sub handler {
|
|
|
my $fn; |
my $fn; |
my $badfile = 0; |
my $badfile = 0; |
if ($ENV{'form.filename'}) { |
if ($env{'form.filename'}) { |
$fn=$ENV{'form.filename'}; |
$fn=$env{'form.filename'}; |
$fn=~s/^http\:\/\/[^\/]+\///; |
$fn=~s/^http\:\/\/[^\/]+\///; |
$fn=~s/^\///; |
$fn=~s/^\///; |
$fn=~s/(\~|priv\/)(\w+)//; |
$fn=~s/(\~|priv\/)(\w+)//; |
$fn=~s/\/+/\//g; |
$fn=~s/\/+/\//g; |
} else { |
} else { |
$r->log_reason($ENV{'user.name'}.' at '.$ENV{'user.domain'}. |
$r->log_reason($env{'user.name'}.' at '.$env{'user.domain'}. |
' unspecified filename for upload', $r->filename); |
' unspecified filename for upload', $r->filename); |
return HTTP_NOT_FOUND; |
return HTTP_NOT_FOUND; |
} |
} |
Line 1743 sub handler {
|
Line 1743 sub handler {
|
|
|
my @text = (); |
my @text = (); |
my $loadentries = ''; |
my $loadentries = ''; |
if ($ENV{'form.phase'} eq 'three') { |
if ($env{'form.phase'} eq 'three') { |
if (-e "$dirpath$fn") { |
if (-e "$dirpath$fn") { |
open(TESTBANK,"<$dirpath$fn"); |
open(TESTBANK,"<$dirpath$fn"); |
@text = <TESTBANK>; |
@text = <TESTBANK>; |
Line 1757 sub handler {
|
Line 1757 sub handler {
|
&Apache::loncommon::content_type($r,'text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
$r->send_http_header; |
$r->send_http_header; |
|
|
if ($ENV{'form.phase'} eq 'three') { |
if ($env{'form.phase'} eq 'three') { |
$current_page = &display_control(); |
$current_page = &display_control(); |
my @PAGES = ('Welcome','Blocks','Format','Target','Confirmation'); |
my @PAGES = ('Welcome','Blocks','Format','Target','Confirmation'); |
$page_name = $PAGES[$current_page]; |
$page_name = $PAGES[$current_page]; |
Line 1766 sub handler {
|
Line 1766 sub handler {
|
$loadentries = 'onLoad= "setElements()"'; |
$loadentries = 'onLoad= "setElements()"'; |
&jscript_one(\$javascript); |
&jscript_one(\$javascript); |
} elsif ($page_name eq 'Format') { |
} elsif ($page_name eq 'Format') { |
$qcount = question_count($ENV{'form.qnumformat'},\@text); |
$qcount = question_count($env{'form.qnumformat'},\@text); |
&jscript_two(\$javascript,$qcount); |
&jscript_two(\$javascript,$qcount); |
} elsif ($page_name eq 'Target') { |
} elsif ($page_name eq 'Target') { |
if ($ENV{'form.go'} eq "PreviousPage") { |
if ($env{'form.go'} eq "PreviousPage") { |
$loadentries = 'onLoad = "setElements()"'; |
$loadentries = 'onLoad = "setElements()"'; |
} |
} |
&jscript_three($fullpath,\$javascript); |
&jscript_three($fullpath,\$javascript); |
Line 1782 sub handler {
|
Line 1782 sub handler {
|
|
|
$r->print(&Apache::loncommon::bodytag('Upload testbank questions to Construction Space',undef,$loadentries)); |
$r->print(&Apache::loncommon::bodytag('Upload testbank questions to Construction Space',undef,$loadentries)); |
|
|
if (($uname ne $ENV{'user.name'}) || ($udom ne $ENV{'user.domain'})) { |
if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) { |
$r->print('<h3><font color=red>'.&mt('Co-Author').': '.$uname. |
$r->print('<h3><font color=red>'.&mt('Co-Author').': '.$uname. |
&mt(' at ').$udom.'</font></h3>'); |
&mt(' at ').$udom.'</font></h3>'); |
} |
} |
|
|
if ($ENV{'form.phase'} eq 'three') { |
if ($env{'form.phase'} eq 'three') { |
if ($badfile) { |
if ($badfile) { |
&file_error($r,$uname,$fn,$current_page); |
&file_error($r,$uname,$fn,$current_page); |
} else { |
} else { |
Line 1797 sub handler {
|
Line 1797 sub handler {
|
&display_three ($r,$uname,$fn,$current_page,\@text,$qcount) if $page_name eq 'Target'; |
&display_three ($r,$uname,$fn,$current_page,\@text,$qcount) if $page_name eq 'Target'; |
&final_display ($r,$uname,$fn,$current_page,\@text) if $page_name eq 'Confirmation'; |
&final_display ($r,$uname,$fn,$current_page,\@text) if $page_name eq 'Confirmation'; |
} |
} |
} elsif ($ENV{'form.phase'} eq 'two') { |
} elsif ($env{'form.phase'} eq 'two') { |
my $flag = &Apache::lonupload::phasetwo($r,$fn,$uname,$udom,'testbank'); |
my $flag = &Apache::lonupload::phasetwo($r,$fn,$uname,$udom,'testbank'); |
if ($flag eq 'ok') { |
if ($flag eq 'ok') { |
my $current_page = 0; |
my $current_page = 0; |