--- loncom/publisher/lonupload.pm 2003/11/08 11:11:01 1.23 +++ loncom/publisher/lonupload.pm 2004/05/14 14:53:31 1.27 @@ -2,7 +2,7 @@ # The LearningOnline Network with CAPA # Handler to upload files into construction space # -# $Id: lonupload.pm,v 1.23 2003/11/08 11:11:01 albertel Exp $ +# $Id: lonupload.pm,v 1.27 2004/05/14 14:53:31 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -79,7 +79,13 @@ sub upfile_store { sub phaseone { - my ($r,$fn,$uname,$udom)=@_; + my ($r,$fn,$uname,$udom,$mode)=@_; + my $action = '/adm/upload'; + if ($mode eq 'testbank') { + $action = '/adm/testbank'; + } elsif ($mode eq 'imsimport') { + $action = '/adm/imsimport'; + } $ENV{'form.upfile.filename'}=~s/\\/\//g; $ENV{'form.upfile.filename'}=~s/^.*\/([^\/]+)$/$1/; if ($ENV{'form.upfile.filename'}) { @@ -94,16 +100,31 @@ sub phaseone { &Debug($r, "Filename for upload: $fn"); if (($fn) && ($fn!~/\/$/)) { - $r->print('
'); + "/priv/$uname/". + ''.
+ $r->print(' ');
+ '
'.
&mt('Back to Directory').'');
} elsif ($fn=~/\.(\w+)$/ &&
!defined(&Apache::loncommon::fileembstyle($1))) {
@@ -169,22 +199,27 @@ sub phasetwo {
''.
&mt('The extension on this file is not recognized by LON-CAPA.').
'');
- $r->print('
'.
+ $r->print('
'.
&mt('Back to Directory').'');
} elsif (-d $target) {
$r->print('File '.$fn.' could not be copied.
'.
''.
&mt('The target is an existing directory.').
'
');
- $r->print(''.
+ $r->print(''.
&mt('Back to Directory').'');
} elsif (copy($source,$target)) {
chmod(0660, $target); # Set permissions to rw-rw---.
- $r->print(&mt('File copied.'));
- $r->print('
'.
+ if ($mode eq 'testbank' || $mode eq 'imsimport') {
+ $r->print(&mt("Your file - $fn - was uploaded successfully")."
");
+ $returnflag = 'ok';
+ } else {
+ $r->print(&mt('File copied.'));
+ $r->print('
'.
&mt('View file').'');
- $r->print(''.
+ $r->print('
'.
&mt('Back to Directory').'
');
+ }
} else {
$r->print('Failed to copy: '.$!);
$r->print('
'.
@@ -194,13 +229,14 @@ sub phasetwo {
} else {
$r->print(''.
&mt('Please use browser "Back" button and pick a filename').
- '
>');
+ '
');
}
} else {
$r->print(''.
&mt('Please use browser "Back" button and pick a filename').
- '
>');
}
+ return $returnflag;
}
# ---------------------------------------------------------------- Main Handler
@@ -210,6 +246,7 @@ sub handler {
my $uname;
my $udom;
+ my $javascript = '';
#
# phase two: re-attach user
#
@@ -217,8 +254,45 @@ sub handler {
$ENV{'form.filename'}='/priv/'.$ENV{'form.uploaduname'}.'/'.
$ENV{'form.filename'};
}
-#
+ unless ($ENV{'form.phase'} eq 'two') {
+ $javascript = qq|
+function verifyForm() {
+ var mode = document.forms[0].filetype.options[document.forms[0].filetype.selectedIndex].value
+ if (mode == "testbank") {
+ document.forms[0].action = "/adm/testbank";
+ }
+ if (mode == "imsimport") {
+ document.forms[0].action = "/adm/imsimport";
+ }
+ if (mode == "standard") {
+ document.forms[0].action = "/adm/upload";
+ }
+ document.forms[0].submit();
+}
+
+function testbankWin() {
+ newWindow = window.open("","testbankinfo","HEIGHT=400,WIDTH=750,scrollbars=yes")
+ newWindow.document.open()
+ newWindow.document.write("\\n")
+ newWindow.document.write("
")
+ newWindow.document.close()
+ newWindow.focus()
+}
+|;
+ }
($uname,$udom)=
&Apache::loncacc::constructaccess($ENV{'form.filename'},
$r->dir_config('lonDefDomain'));
@@ -249,7 +323,7 @@ sub handler {
&Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
- $r->print(' \\n")
+ newWindow.document.write(" \\n")
+ newWindow.document.write("Importing Testbank questions into LON-CAPA
")
+ newWindow.document.write("
Four requirements must be met to ensure that you will succeed in building LON-CAPA problem files using your plain text file containing testbank questions.")
+ newWindow.document.write("
")
+ newWindow.document.write("