--- loncom/homework/structuretags.pm 2011/07/28 02:53:38 1.494
+++ loncom/homework/structuretags.pm 2011/12/10 17:53:45 1.498
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# definition of tags that give a structure to a document
#
-# $Id: structuretags.pm,v 1.494 2011/07/28 02:53:38 raeburn Exp $
+# $Id: structuretags.pm,v 1.498 2011/12/10 17:53:45 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -172,166 +172,6 @@ function setmode(form,probmode) {
ENDSCRIPT
}
-sub file_delchk_js {
- my $delfilewarn = &mt('You have indicated you wish to remove some files previously included in your submission.').'\\n'.
- &mt('Continue submission with these files removed?');
- return <<"ENDSCRIPT";
-
-ENDSCRIPT
-}
-
-sub file_overwritechk_js {
- my $overwritewarn = &mt('File(s) you uploaded for your submission will overwrite existing file(s) submitted for this item').'\\n'.
- &mt('Continue submission and overwrite the file(s)?');
- return <<"ENDSCRIPT";
-
-ENDSCRIPT
-}
-
sub page_start {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$name,
$extra_head)=@_;
@@ -358,42 +198,61 @@ sub page_start {
}
my $is_task = ($env{'request.uri'} =~ /\.task$/);
my $needs_upload;
+ my ($symb)= &Apache::lonnet::whichuser();
+ my ($map,$resid,$resurl)=&Apache::lonnet::decode_symb($symb);
if ($is_task) {
- $extra_head .= &file_delchk_js();
+ $extra_head .= &Apache::lonhtmlcommon::file_submissionchk_js();
} else {
if (&Apache::lonnet::EXT("resource.$Apache::inputtags::part.uploadedfiletypes") ne '') {
- $needs_upload = 1;
+ unless ($env{'request.state'} eq 'construct') {
+ my $navmap = Apache::lonnavmaps::navmap->new();
+ if (ref($navmap)) {
+ my $mapres = $navmap->getResourceByUrl($map);
+ my $is_page;
+ if (ref($mapres)) {
+ $is_page = $mapres->is_page();
+ }
+ unless ($is_page) {
+ $needs_upload = 1;
+ }
+ }
+ }
} else {
unless ($env{'request.state'} eq 'construct') {
- my ($symb)= &Apache::lonnet::whichuser();
my $navmap = Apache::lonnavmaps::navmap->new();
if (ref($navmap)) {
- my $res = $navmap->getBySymb($symb);
- if (ref($res)) {
- my $partlist = $res->parts();
- if (ref($partlist) eq 'ARRAY') {
- foreach my $part (@{$partlist}) {
- my @types = $res->responseType($part);
- my @ids = $res->responseIds($part);
- for (my $i=0; $i < scalar(@ids); $i++) {
- if ($types[$i] eq 'essay') {
- my $partid = $part.'_'.$ids[$i];
- if (&Apache::lonnet::EXT("resource.$partid.uploadedfiletypes") ne '') {
- $needs_upload = 1;
- last;
+ my $mapres = $navmap->getResourceByUrl($map);
+ my $is_page;
+ if (ref($mapres)) {
+ $is_page = $mapres->is_page();
+ }
+ unless ($is_page) {
+ my $res = $navmap->getBySymb($symb);
+ if (ref($res)) {
+ my $partlist = $res->parts();
+ if (ref($partlist) eq 'ARRAY') {
+ foreach my $part (@{$partlist}) {
+ my @types = $res->responseType($part);
+ my @ids = $res->responseIds($part);
+ for (my $i=0; $i < scalar(@ids); $i++) {
+ if ($types[$i] eq 'essay') {
+ my $partid = $part.'_'.$ids[$i];
+ if (&Apache::lonnet::EXT("resource.$partid.uploadedfiletypes") ne '') {
+ $needs_upload = 1;
+ last;
+ }
}
}
}
- }
- }
+ }
+ }
}
}
}
}
- }
- if ($needs_upload) {
- $extra_head .= &file_overwritechk_js()."\n".
- &file_delchk_js();
+ if ($needs_upload) {
+ $extra_head .= &Apache::lonhtmlcommon::file_submissionchk_js();
+ }
}
my %body_args;
@@ -424,7 +283,7 @@ sub page_start {
&Apache::lonhtmlcommon::clear_breadcrumbs();
&Apache::lonhtmlcommon::add_breadcrumb({
'text' => 'Construction Space',
- 'href' => &Apache::loncommon::authorspace(),
+ 'href' => &Apache::loncommon::authorspace($env{'request.uri'}),
});
# breadcrumbs (and tools) will be created
# in start_page->bodytag->innerregister
@@ -489,10 +348,8 @@ sub page_start {
my ($symb,$courseid,$udom,$uname)=&Apache::lonnet::whichuser();
my ($path,$multiresp) =
&Apache::loncommon::get_turnedin_filepath($symb,$uname,$udom);
- if ($is_task) {
- $form_tag_start .= ' onsubmit="return file_deletion_check(this);"';
- } elsif ($needs_upload) {
- $form_tag_start .= ' onsubmit="return file_overwrite_check(this,'."'$path','$multiresp'".');"';
+ if (($is_task) || ($needs_upload)) {
+ $form_tag_start .= ' onsubmit="return file_submission_check(this,'."'$path','$multiresp'".');"';
}
$form_tag_start.='>'."\n";
@@ -1103,6 +960,9 @@ sub reset_problem_globals {
undef(%Apache::lonhomework::history);
undef(%Apache::lonhomework::results);
undef($Apache::inputtags::part);
+ if ($type eq 'Task') {
+ undef($Apache::inputtags::slot_name);
+ }
#don't undef this, lonhomework.pm takes care of this, we use this to
#detect if we try to do 2 problems in one file
# undef($Apache::lonhomework::parsing_a_problem);