--- loncom/homework/lonhomework.pm 2007/04/06 21:21:34 1.266 +++ loncom/homework/lonhomework.pm 2007/08/31 19:32:57 1.273 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Homework handler # -# $Id: lonhomework.pm,v 1.266 2007/04/06 21:21:34 albertel Exp $ +# $Id: lonhomework.pm,v 1.273 2007/08/31 19:32:57 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -112,7 +112,10 @@ sub get_target { return ('web'); } } else { - if ( $env{'form.problemmode'} eq &mt('View') || + if ($env{'form.problemstate'} eq 'WEB_GRADE') { + #$env{'form.webgrade'} = 'yes'; + return ('grade','webgrade','answer'); + } elsif ( $env{'form.problemmode'} eq &mt('View') || $env{'form.problemmode'} eq &mt('Discard Edits and View')) { if ( defined($env{'form.submitted'}) && (!defined($env{'form.resetdata'})) && @@ -185,7 +188,6 @@ sub proctor_checked_in { return 0; } -$Apache::lonxml::browse=''; sub check_ip_acc { my ($acc)=@_; &Apache::lonxml::debug("acc is $acc"); @@ -193,7 +195,8 @@ sub check_ip_acc { return 1; } my $allowed=0; - my $ip=$ENV{'REMOTE_ADDR'}; + my $ip=$env{'request.host'} || $ENV{'REMOTE_ADDR'}; + my $name; foreach my $pattern (split(',',$acc)) { $pattern =~ s/^\s*//; @@ -858,10 +861,18 @@ sub editxmlmode { if ($cols > 80) { $cols = 80; } if ($cols < 70) { $cols = 70; } if ($rows < 20) { $rows = 20; } + my $js = + &Apache::edit::js_change_detection(). + &Apache::loncommon::resize_textarea_js(); + my $only_body = ($env{'environment.remote'} eq 'off')? 0 : 1; my $start_page = - &Apache::loncommon::start_page(&mt("EditXML [_1]",$file), - &Apache::edit::js_change_detection(), - {'no_auto_mt_title' => 1,}); + &Apache::loncommon::start_page(&mt("EditXML [_1]",$file),$js, + {'no_auto_mt_title' => 1, + 'only_body' => $only_body, + 'add_entries' => { + 'onresize' => q[resize_textarea('LC_editxmltext','LC_aftertextarea')], + 'onload' => q[resize_textarea('LC_editxmltext','LC_aftertextarea')], + }}); $result.=$start_page. &renderpage($request,$file,['no_output_web'],1). @@ -878,10 +889,14 @@ sub editxmlmode {
' . $xml_help . ' -
- - + +
+ + +
'.&Apache::loncommon::end_page(); &Apache::lonxml::add_messages(\$result); $request->print($result); @@ -898,6 +913,7 @@ sub renderpage { my @targets = @{$targets || [&get_target()]}; &Apache::lonhomework::showhashsubset(\%env,'form.'); &Apache::lonxml::debug("Running targets ".join(':',@targets)); + my $overall_result; foreach my $target (@targets) { # FIXME need to do something intelligent when a problem goes @@ -935,7 +951,7 @@ sub renderpage { &Apache::lonxml::debug("Should be parsing now"); $result .= &Apache::lonxml::xmlparse($request, $target, $problem, &setup_vars($target),%mystyle); - undef($Apache::lonhomework::parsing_a_problem); + &finished_parsing(); if (!$output) { $result = ''; } #$request->print("Result follows:"); if ($target eq 'modified') { @@ -966,6 +982,11 @@ sub renderpage { } } +sub finished_parsing { + undef($Apache::lonhomework::parsing_a_problem); + undef($Apache::lonhomework::parsing_a_task); +} + # with no arg it returns a HTML