--- loncom/interface/lonpickstudent.pm 2009/11/05 14:24:01 1.28 +++ loncom/interface/lonpickstudent.pm 2013/07/15 14:32:45 1.31 @@ -1,7 +1,7 @@ # The LearningOnline Network # Pick a student from the classlist # -# $Id: lonpickstudent.pm,v 1.28 2009/11/05 14:24:01 raeburn Exp $ +# $Id: lonpickstudent.pm,v 1.31 2013/07/15 14:32:45 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -50,7 +50,7 @@ sub handler { &Apache::loncommon::get_unprocessed_cgi ($ENV{'QUERY_STRING'},['filter','form','unameelement','udomelement', - 'roles','courseadvonly']); + 'roles','courseadvonly','clicker']); # Allowed? my $allowed; my $scope = $env{'request.course.id'}; @@ -121,7 +121,7 @@ ENDSCRIPT my ($puname,$pudom)=split(/\:/,$user); $r->print(&Apache::loncommon::start_data_table_row(). ''. - ''.$role.''. &Apache::loncommon::aboutmewrapper(&Apache::loncommon::plainname($puname,$pudom),$puname,$pudom).''. &Apache::loncommon::end_data_table_row()); @@ -133,9 +133,31 @@ ENDSCRIPT $r->print('

'); + $r->rflush(); + unless ($env{'form.courseadvonly'}) { # ------------------------------------------------------------------ Students + +# Do we have a clicker? + + my $clicker=$env{'form.clicker'}; + my @fragments=(); + if ($clicker) { + $r->print('

'.&mt('Clicker: [_1]',$clicker).'

'); + my $clicklength=length($clicker); + my $maxlength=$clicklength-1; + if ($maxlength>2) { + my $minlength=$maxlength-2; + if ($minlength<2) { $minlength=2; } + for (my $length=$maxlength;$length>=$minlength;$length--) { + for (my $startidx=0; $startidx<=$clicklength-$length; $startidx++) { + push(@fragments,substr($clicker,$startidx,$length)); + } + } + } + } + my $result; my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; @@ -164,9 +186,23 @@ ENDSCRIPT } } $grouplist =~ s/,$//; + my $markedupclicker; + if ($clicker) { + $markedupclicker=(&Apache::lonnet::userenvironment($udom,$uname,'clickers'))[1]; + if ($markedupclicker!~/\w/) { + $markedupclicker='-'; + } else { + foreach my $frag (@fragments) { + if ($markedupclicker=~/\Q$frag\E/is) { + $markedupclicker=~s/(\Q$frag\E)/$1<\/b><\/font>/gis; + last; + } + } + } + } $result .=&Apache::loncommon::start_data_table_row(). ''. - ''. ''.$uname.' '.$udom. ''. @@ -174,6 +210,7 @@ ENDSCRIPT $uname,$udom). ''.$id.''.$section. ''.$grouplist.''. + ($clicker?''.$markedupclicker.'':''). &Apache::loncommon::end_data_table_row(); } } @@ -191,6 +228,7 @@ ENDSCRIPT ''.&mt('ID').''. ''.&mt('section').''. ''.&mt('active group(s)').''. + ($clicker?''.&mt('clicker').'':''). &Apache::loncommon::end_data_table_header_row(). $result. &Apache::loncommon::end_data_table()); @@ -201,6 +239,7 @@ ENDSCRIPT &Apache::loncommon::plainname($env{'user.name'}, $env{'user.domain'}).''); $r->print($filtermsg); + $r->rflush(); $r->print('

'.&Apache::loncommon::start_data_table()); my %user_role=&Apache::lonnet::get_my_roles(); @@ -221,7 +260,7 @@ ENDSCRIPT my ($uname,$udom) = split(':',$user); $r->print(&Apache::loncommon::start_data_table_row(). ''. - ''. ''.$uname.''. ''.$udom.''.