--- loncom/homework/bridgetask.pm 2017/12/22 02:00:39 1.268 +++ loncom/homework/bridgetask.pm 2025/03/31 13:55:08 1.274 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: bridgetask.pm,v 1.268 2017/12/22 02:00:39 raeburn Exp $ +# $Id: bridgetask.pm,v 1.274 2025/03/31 13:55:08 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -32,12 +32,14 @@ package Apache::bridgetask; use strict; use Apache::lonnet; +use Apache::loncommon; use Apache::File(); use Apache::lonmenu; use Apache::lonlocal; use Apache::lonxml; use Apache::slotrequest(); use Apache::structuretags(); +use HTML::Entities(); use Time::HiRes qw( gettimeofday tv_interval ); use LONCAPA; @@ -65,6 +67,7 @@ sub initialize_bridgetask { sub proctor_check_auth { my ($slot_name,$slot,$type)=@_; my $user=$env{'form.proctorname'}; + $user =~ s/^\s+|\s+$//g; my $domain=$env{'form.proctordomain'}; my @allowed=split(",",$slot->{'proctor'}); @@ -123,7 +126,7 @@ sub check_in_sequence { my ($symb) = &Apache::lonnet::whichuser(); my ($map) = &Apache::lonnet::decode_symb($symb); my @resources = - $navmap->retrieveResources($map, sub { $_[0]->is_problem() },0,0); + $navmap->retrieveResources($map, sub { $_[0]->is_problem() || $_[0]->is_tool() },0,0); my %old_history = %Apache::lonhomework::history; my %old_results = %Apache::lonhomework::results; @@ -3277,14 +3280,8 @@ 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 = "<tr><td colspan=\"2\"><img src=\"$url\" /></td></tr>"; - } else { - undef($url); - } - my $name=&Apache::loncommon::plainname($user,$domain); - + my $msg; if ($env{'form.proctorpassword'}) { $msg.='<p><span class="LC_warning">' @@ -3312,43 +3309,77 @@ sub proctor_validation_screen { my %lt = &Apache::lonlocal::texthash( 'prva' => "Proctor Validation", 'yoro' => "Your room's proctor needs to validate your access to this resource.", - 'prus' => "Proctor's Username:", - 'pasw' => "Password:", - 'prdo' => "Proctor's Domain:", + 'prus' => "Proctor's Username", + 'pasw' => "Password", + 'prdo' => "Proctor's Domain", 'vali' => 'Validate', 'stui' => "Student who should be logged in is:", - 'name' => "Name:", + 'name' => "Name", 'sid' => "Student/Employee ID", - 'unam' => "Username:", + 'unam' => "Username", + 'phot' => "Photo", ); - my $result= (<<ENDCHECKOUT); -<h2>$lt{'prva'}</h2> - <p>$lt{'yoro'}</p> - $msg + my $proctortable = + &Apache::lonhtmlcommon::start_pick_box()."\n". + &Apache::lonhtmlcommon::row_title('<label for="proctorname">'.$lt{'prus'}.'</label>'). + '<input type="text" name="proctorname" value="'.$env{'form.proctorname'}.'" '. + 'id="proctorname" autocomplete="new-password" />'. + &Apache::lonhtmlcommon::row_closure()."\n". + &Apache::lonhtmlcommon::row_title('<label for="proctorpassword">'.$lt{'pasw'}.'</label>'). + '<input type="password" name="proctorpassword" value="" '. + 'id="proctorpassword" autocomplete="new-password" />'. + &Apache::lonhtmlcommon::row_closure()."\n". + &Apache::lonhtmlcommon::row_title('<label for="proctordomain">'.$lt{'prdo'}.'</label>'). + '<input type="text" name="proctordomain" value="'.$env{'form.proctordomain'}.'" '. + 'id="proctordomain" autocomplete="off" />'. + &Apache::lonhtmlcommon::row_closure(1)."\n". + &Apache::lonhtmlcommon::end_pick_box()."\n"; + + my $studenttable = + &Apache::loncommon::start_data_table('LC_manage_reservations'). + &Apache::loncommon::start_data_table_row(). + '<th>'.$lt{'name'}.':</th><td>'.$name.'</td>'. + &Apache::loncommon::end_data_table_row()."\n". + &Apache::loncommon::start_data_table_row(). + '<th>'.$lt{'sid'}.':</th><td>'.$env{'environment.id'}.'</td>'. + &Apache::loncommon::end_data_table_row()."\n". + &Apache::loncommon::start_data_table_row(). + '<th>'.$lt{'unam'}.':</th><td>'.$user.':'.$domain.'</td>'. + &Apache::loncommon::end_data_table_row(); + if ($url ne '/adm/lonKaputt/lonlogo_broken.gif') { + $studenttable .= &Apache::loncommon::start_data_table_row(). + '<th valign="top">'.$lt{'phot'}.'</th>'. + '<td valign="top"><img src="'.&HTML::Entities::encode($url,'&<>"').'" '. + 'alt="'.&mt('Photo of [_1]',$name).'" /></td>'. + &Apache::loncommon::end_data_table_row()."\n"; + } + $studenttable .= &Apache::loncommon::end_data_table()."\n"; + if ($msg ne '') { + $msg = "<p>$msg</p>"; + } else { + $msg = '<br /><br />'; + } + return (<<ENDCHECKOUT); +<div style="padding:0;clear:both;margin:0;border:0"> +<h2 class="LC_heading_2">$lt{'prva'}</h2><hr /> +<div class="LC_left_float"> +$lt{'yoro'} +$msg <form name="checkout" method="post" action="$uri"> <input type="hidden" name="validate" value="yes" /> <input type="hidden" name="submitted" value="yes" /> -<table> - <tr><td>$lt{'prus'}</td><td><input type="string" name="proctorname" value="$env{'form.proctorname'}" /></td></tr> - <tr><td>$lt{'pasw'}</td><td><input type="password" name="proctorpassword" value="" /></td></tr> - <tr><td>$lt{'prdo'}</td><td><input type="string" name="proctordomain" value="$env{'form.proctordomain'}" /></td></tr> -</table> -<input type="submit" name="checkoutbutton" value="$lt{'vali'}" /><br /> -<table border="1"> - <tr><td> - <table> - <tr><td colspan="2">$lt{'stui'}</td></tr> - <tr><td>$lt{'name'}</td><td>$name</td></tr> - <tr><td>$lt{'sid'}</td><td>$env{'environment.id'}</td></tr> - <tr><td>$lt{'unam'}</td><td>$user:$domain</td></tr> - $url - </table> - </tr></td> -</table> +$proctortable +<br /> +<input type="submit" name="checkoutbutton" value="$lt{'vali'}" /> </form> +</div> +<div class="LC_left_float"> +$lt{'stui'} +<br /><br /> +$studenttable +</div> +</div> ENDCHECKOUT - - return $result; } 1;