--- loncom/publisher/lonupload.pm 2003/11/08 11:04:52 1.22 +++ 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.22 2003/11/08 11:04:52 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,37 +100,61 @@ sub phaseone { &Debug($r, "Filename for upload: $fn"); if (($fn) && ($fn!~/\/$/)) { - $r->print('
'); + $r->print(''); # Check for bad extension and warn user if ($fn=~/\.(\w+)$/ && (&Apache::loncommon::fileembstyle($1) eq 'hdn')) { - $r->print(''.&mt('The extension on this file,'). + $r->print(''.&mt('The extension on this file,'). ' "'.$1.'"'.&mt(', is reserved internally by LON-CAPA.'). - ''.
+ $r->print(' '.
+ $r->print(' '.
+ ' '.
+ if ($mode eq 'testbank' || $mode eq 'imsimport') {
+ $r->print(&mt("Your file - $fn - was uploaded successfully")." '.
- &mt('Back to Directory').'');
+ $r->print(' '.
+ $r->print(' ');
+ ' ');
+ '
'.
&mt('Back to Directory').'');
} elsif ($fn=~/\.(\w+)$/ &&
!defined(&Apache::loncommon::fileembstyle($1))) {
$r->print(&mt('File').' '.$fn.' '.
&mt('could not be copied.').'
'.
- ''.
+ ''.
&mt('The extension on this file is not recognized by LON-CAPA.').
'');
- $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('
");
+ $returnflag = 'ok';
+ } else {
+ $r->print(&mt('File copied.'));
+ $r->print('
'.
&mt('View file').'');
- $r->print('
'.
+ &mt('Back to Directory').'
');
+ }
} else {
$r->print('Failed to copy: '.$!);
- $r->print('
'.
&mt('Back to Directory').'');
}
}
} else {
- $r->print(''.
+ $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
@@ -208,6 +246,7 @@ sub handler {
my $uname;
my $udom;
+ my $javascript = '';
#
# phase two: re-attach user
#
@@ -215,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'));
@@ -247,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("