--- loncom/homework/structuretags.pm 2010/07/29 18:00:06 1.470 +++ loncom/homework/structuretags.pm 2010/11/03 17:06:28 1.478 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: structuretags.pm,v 1.470 2010/07/29 18:00:06 raeburn Exp $ +# $Id: structuretags.pm,v 1.478 2010/11/03 17:06:28 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -161,6 +161,45 @@ function setmode(form,probmode) { ENDSCRIPT } +sub file_delchk_js { + my $delfilewarn = &mt('You have indicated you wish to delete some files previously included for submission.').'\\n'. + &mt('Deleted files will not be graded.').' '. + &mt('Submit Answer?'); + return <<"ENDSCRIPT"; + +ENDSCRIPT +} + sub page_start { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$name, $extra_head)=@_; @@ -177,12 +216,17 @@ sub page_start { $parstack,$parser,$safeeval); } - $extra_head .= &homework_js(); - - if ($env{'environment.wysiwygeditor'} eq 'on') { - $extra_head .= &Apache::lonhtmlcommon::dragmath_js("FCKEditMathPopup"); - } else { - $extra_head .= &Apache::lonhtmlcommon::dragmath_js("EditMathPopup"); + $extra_head .= &homework_js(). + &Apache::lonhtmlcommon::dragmath_js("EditMathPopup"); + if (&Apache::lonhtmlcommon::htmlareabrowser()) { + my %textarea_args = ( + dragmath => 'math', + ); + $extra_head .= &Apache::lonhtmlcommon::htmlareaselectactive(\%textarea_args); + } + my $is_task = ($env{'request.uri'} =~ /\.task$/); + if ($is_task) { + $extra_head .= &file_delchk_js(); } my %body_args; @@ -276,6 +320,9 @@ sub page_start { if ($target eq 'edit') { $form_tag_start.=&Apache::edit::form_change_detection(); } + if ($is_task) { + $form_tag_start .= ' onsubmit="return file_deletion_check(this);"'; + } $form_tag_start.='>'."\n"; my $symb=&Apache::lonnet::symbread(); @@ -401,8 +448,6 @@ sub problem_edit_footer {
'. - - &Apache::lonhtmlcommon::htmlareaselectactive(&Apache::lonhtmlcommon::get_htmlareafields()). "\n\n".&Apache::loncommon::end_page(); } @@ -649,7 +694,7 @@ item store_aggregates() sub store_aggregates { my ($symb,$courseid) = @_; - my %aggregate; + my (%aggregate,%anoncounter); my @parts; my $cdomain = $env{'course.'.$env{'request.course.id'}.'.domain'}; my $cname = $env{'course.'.$env{'request.course.id'}.'.num'}; @@ -680,17 +725,17 @@ sub store_aggregates { } if (($Apache::lonhomework::results{'resource.'.$part.'.type'} eq 'anonsurvey') || ($Apache::lonhomework::results{'resource.'.$part.'.type'} eq 'anonsurveycred')) { - $aggregate{$symb."\0".$part."\0anonymous"} = 1; + $anoncounter{$symb."\0".$part} = 1; my $needsrelease = $Apache::lonnet::needsrelease{'parameter:type:'.$Apache::lonhomework::results{'resource.'.$part.'.type'}}; if ($needsrelease) { my $curr_required = $env{'course.'.$env{'request.course.id'}.'.internal.releaserequired'}; if ($curr_required eq '') { - &update_courseenv($needsrelease,$cdomain,$cname); + &Apache::lonnet::update_released_required($needsrelease); } else { my ($currmajor,$currminor) = split(/\./,$curr_required); my ($needsmajor,$needsminor) = split(/\./,$needsrelease); if (($currmajor < $needsmajor) || ($currmajor == $needsmajor && $currminor < $needsminor)) { - &update_courseenv($needsrelease,$cdomain,$cname); + &Apache::lonnet::update_released_required($needsrelease); } } } @@ -700,23 +745,9 @@ sub store_aggregates { &Apache::lonnet::cinc('nohist_resourcetracker',\%aggregate, $cdomain,$cname); } -} - -sub update_courseenv { - my ($needsrelease,$cdom,$cnum) = @_; - my $chome = $env{'course.'.$env{'request.course.id'}.'.home'}; - my %needshash = ( - 'internal.releaserequired' => $needsrelease, - ); - my $putresult = &put('environment',\%needshash,$cdom,$cnum); - if ($putresult eq 'ok') { - &appenv({'course.'.$env{'request.course.id'}.'.internal.releaserequired' => $needsrelease}); - my %crsinfo = - &Apache::lonnet::courseiddump($cdom,'.',1,'.','.',$cnum,undef,undef,'.'); - if (ref($crsinfo{$env{'request.course.id'}}) eq 'HASH') { - $crsinfo{$env{'request.course.id'}}{'releaserequired'} = $needsrelease; - } - &Apache::lonnet::courseidput($cdom,\%crsinfo,$chome,'notime'); + if (keys(%anoncounter) > 0) { + &Apache::lonnet::cinc('nohist_anonsurveys',\%anoncounter, + $cdomain,$cname); } } @@ -798,6 +829,7 @@ sub init_problem_globals { &Apache::lonhomework::reset_show_problem_status(); $Apache::lonhomework::ignore_response_errors=1; } + @Apache::functionplotresponse::callscripts=(); @Apache::inputtags::responselist = (); @Apache::inputtags::importlist = (); @Apache::inputtags::previous=(); @@ -825,6 +857,7 @@ sub reset_problem_globals { undef($Apache::lonhomework::type); undef($Apache::lonhomework::scantronmode); undef($Apache::lonhomework::ignore_response_errors); + undef(@Apache::functionplotresponse::callscripts); &Apache::lonhomework::reset_show_problem_status(); } @@ -1197,7 +1230,6 @@ sub end_problem { if ($target ne 'tex' && $env{'form.answer_output_mode'} ne 'tex') { $result.=""; - $result.= &Apache::lonhtmlcommon::htmlareaselectactive(&Apache::lonhtmlcommon::get_htmlareafields()); } if ($target eq 'web') { $result.= &Apache::loncommon::end_page({'discussion' => 1}); @@ -1218,6 +1250,9 @@ sub end_problem { } } } + if ($target eq 'web') { + $result.=&Apache::functionplotresponse::init_script(); + } if ($target eq 'grade') { &Apache::lonhomework::showhash(%Apache::lonhomework::results); &finalize_storage(); @@ -1851,7 +1886,7 @@ sub start_part { } } elsif ($target eq 'web') { - $result.=''; + $result.=''; } } } @@ -2061,17 +2096,15 @@ sub end_startouttext { $result.=&Apache::edit::start_table($token)."".&mt('Text Block')."" .''.&mt('Delete?').' ' .&Apache::edit::deletelist($target,$token) - .''; - unless ($env{'environment.wysiwygeditor'} eq 'on') { - $result .= '' - .&Apache::lonhtmlcommon::dragmath_button($areaid,1) - .'' - .'' - .&Apache::edit::insertlist($target,$token) - .''; - } - $result.='' . - &Apache::loncommon::helpLatexCheatsheet(). + .'' + .'' + .&Apache::lonhtmlcommon::dragmath_button($areaid,1) + .'' + .'' + .&Apache::edit::insertlist($target,$token) + .'' + .'' . + &Apache::loncommon::helpLatexCheatsheet(). &Apache::edit::end_row(). &Apache::edit::start_spanning_row()."\n". &Apache::edit::editfield($token->[1],$text,"",80,8,1);