--- loncom/homework/bridgetask.pm 2007/02/18 02:04:04 1.225 +++ loncom/homework/bridgetask.pm 2007/04/06 21:22:24 1.230 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: bridgetask.pm,v 1.225 2007/02/18 02:04:04 albertel Exp $ +# $Id: bridgetask.pm,v 1.230 2007/04/06 21:22:24 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -38,7 +38,6 @@ use Apache::lonlocal; use Apache::lonxml; use Apache::slotrequest(); use Time::HiRes qw( gettimeofday tv_interval ); -use lib '/home/httpd/lib/perl/'; use LONCAPA; @@ -1332,9 +1331,7 @@ DONEBUTTON $result.=&Apache::response::meta_stores_write('status','string', 'Bridge Task Status'); } elsif ($target eq 'edit') { - &Apache::structuretags::reset_problem_globals('Task'); - undef($Apache::lonhomework::parsing_a_task); - return ('','no'); + $result.= &Apache::structuretags::problem_edit_footer(); } &Apache::structuretags::reset_problem_globals('Task'); undef($Apache::lonhomework::parsing_a_task); @@ -2078,13 +2075,8 @@ sub start_ClosingParagraph { } elsif ($target eq 'webgrade') { &Apache::lonxml::startredirection(); } elsif ($target eq 'edit') { - my $bodytext=&Apache::lonxml::get_all_text("/closingparagraph", - $parser); $result = &Apache::edit::tag_start($target,$token); - $result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4); } elsif ($target eq 'modified') { - $result = $token->[4].&Apache::edit::modifiedfield('/closingparagraph', - $parser); } return $result; } @@ -2099,6 +2091,14 @@ sub end_ClosingParagraph { return $result; } +sub insert_ClosingParagraph { + return ' + + + +'; +} + sub get_dim_id { if (@Apache::bridgetask::dimension) { return $Apache::bridgetask::dimension[-1]; @@ -2225,12 +2225,8 @@ sub start_QuestionText { my $dim = &get_dim_id(); $dimension{$dim}{'questiontext'}=$text; } elsif ($target eq 'edit') { - my $bodytext=&Apache::lonxml::get_all_text("/questiontext",$parser); $result = &Apache::edit::tag_start($target,$token); - $result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4); } elsif ($target eq 'modified') { - $result = $token->[4].&Apache::edit::modifiedfield('/questiontext', - $parser); } return $result; } @@ -2239,6 +2235,14 @@ sub end_QuestionText { return ''; } +sub insert_QuestionText { + return ' + + + +'; +} + sub get_instance { my ($dim)=@_; my $rand_alg=&Apache::lonnet::get_rand_alg(); @@ -2383,8 +2387,11 @@ sub end_Dimension { } } # puts the results at the end of the dimension - $result .= $dim_info; - + if ($result =~m{}) { + $result=~s{}{$dim_info}; + } else { + $result .= $dim_info; + } # puts the results at the beginning of the dimension # my $internal_location=&internal_location($dim); # $result=~s/\Q$internal_location\E/$dim_info/; @@ -2704,12 +2711,8 @@ sub start_IntroParagraph { } } elsif ($target eq 'edit') { - my $bodytext=&Apache::lonxml::get_all_text("/introparagraph",$parser); $result = &Apache::edit::tag_start($target,$token); - $result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4); } elsif ($target eq 'modified') { - $result = $token->[4].&Apache::edit::modifiedfield('/introparagraph', - $parser); } return $result; } @@ -2721,6 +2724,14 @@ sub end_IntroParagraph { } } +sub insert_IntroParagraph { + return ' + + + +'; +} + sub start_Instance { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; my $dim = &get_dim_id(); @@ -2777,12 +2788,8 @@ sub start_InstanceText { my $instance_id=$Apache::bridgetask::instance{$dim}[-1]; $dimension{$dim}{$instance_id.'.text'}=$text; } elsif ($target eq 'edit') { - my $bodytext=&Apache::lonxml::get_all_text("/instancetext",$parser); $result = &Apache::edit::tag_start($target,$token); - $result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4); } elsif ($target eq 'modified') { - $result = $token->[4].&Apache::edit::modifiedfield('/instancetext', - $parser); } return $result; } @@ -2791,6 +2798,14 @@ sub end_InstanceText { return ''; } +sub insert_InstanceText { + return ' + + + +'; +} + sub start_Criteria { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; my $result = ''; @@ -2823,35 +2838,6 @@ sub start_Criteria { push(@{$dimension{$dim}{'criterias'}},$id); } } elsif ($target eq 'edit') { - if (0) { - $result = &Apache::edit::tag_start($target,$token); - my $text=&Apache::lonxml::get_all_text("/criteria",$parser); - &Apache::lonnet::logthis("get_all_text criteria \n$text"); - my $local_parser = HTML::LCParser->new(\$text); - $local_parser->xml_mode(1); - $local_parser->marked_sections(1); - while (1) { - my $criteria_text = - &Apache::lonxml::get_all_text('gradernote',$local_parser); - $result.= - &Apache::edit::editfield($token->[1],$criteria_text,'',80,4); - - # check for a next might be end - my $token = $local_parser->get_token(); - # is the end - last if (!$token); - my $gradernote = &Apache::lonxml::get_all_text('/gradernote', - $local_parser); - # purge the end tag - my $token = $local_parser->get_token(); - $gradernote = ''.$gradernote.''; - @Apache::scripttag::parser_env = @_; - $result .= - &Apache::edit::end_row().&Apache::edit::start_spanning_row(). - &Apache::scripttag::xmlparse($gradernote). - &Apache::edit::end_row().&Apache::edit::start_spanning_row(); - } - } $result .=&Apache::edit::tag_start($target,$token); $result.= &Apache::edit::text_arg('Id:','id',$token,10).' '. @@ -2957,6 +2943,15 @@ sub end_Criteria { } elsif ($target eq 'modified') { } } +sub insert_Criteria { + return ' + + + + + +'; +} sub start_CriteriaText { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; @@ -2964,12 +2959,8 @@ sub start_CriteriaText { if ($target eq 'grade' || $target eq 'web' || $target eq 'webgrade') { } elsif ($target eq 'edit') { - my $bodytext=&Apache::lonxml::get_all_text("/criteriatext",$parser); $result = &Apache::edit::tag_start($target,$token); - $result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4); } elsif ($target eq 'modified') { - $result = $token->[4].&Apache::edit::modifiedfield('/criteriatext', - $parser); } return $result; } @@ -2978,6 +2969,14 @@ sub end_CriteriaText { return ''; } +sub insert_CriteriaText { + return ' + + + +'; +} + sub start_GraderNote { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; my $result; @@ -2985,12 +2984,8 @@ sub start_GraderNote { $result = '
'. &mt('Note to graders:').''; } elsif ($target eq 'edit') { - my $bodytext=&Apache::lonxml::get_all_text("/gradernote",$parser); $result = &Apache::edit::tag_start($target,$token); - $result.= &Apache::edit::editfield($token->[1],$bodytext,'',80,4); } elsif ($target eq 'modified') { - $result = $token->[4].&Apache::edit::modifiedfield('/gradernote', - $parser); } elsif ($target eq 'web' || $target eq 'grade') { my $note=&Apache::lonxml::get_all_text('/gradernote',$parser,$style); } @@ -3006,25 +3001,56 @@ sub end_GraderNote { return; } +sub insert_GraderNote { + return ' + + + +'; +} sub proctor_validation_screen { my ($slot) = @_; my (undef,undef,$domain,$user) = &Apache::lonnet::whichuser(); my $url=&Apache::lonnet::studentphoto($domain,$user,'jpg'); + if ($url ne '/adm/lonKaputt/lonlogo_broken.gif') { + $url = ""; + } else { + undef($url); + } + my $name=&Apache::loncommon::plainname($user,$domain); my $msg; if ($env{'form.proctorpassword'}) { - $msg='

'.&mt("Failed to authenticate the proctor.") - .'

'; + $msg.='

' + .&mt("Failed to authenticate the proctor.") + .'

'; } + + my $valid; + my @possible_proctors=split(",",$slot->{'proctor'}); + foreach my $proctor (@possible_proctors) { + if ($proctor =~ /$LONCAPA::username_re:$LONCAPA::domain_re/) { + $valid = 1; + last; + } + } + if (!$valid) { + $msg.='

' + .&mt("No valid poctors are defined.") + .'

'; + } + if (!$env{'form.proctordomain'}) { $env{'form.proctordomain'}=$domain; } + my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'}); + $uri = &HTML::Entities::encode($uri,'<>&"'); my $result= (<Proctor Validation

Your room's proctor needs to validate your access to this resource.

$msg -
+ @@ -3040,7 +3066,7 @@ sub proctor_validation_screen { - + $url
Name:$name
Student ID:$env{'environment.id'}
Usename$user:$domain