--- loncom/interface/lontrackstudent.pm 2005/06/30 17:56:28 1.16 +++ loncom/interface/lontrackstudent.pm 2006/12/06 22:22:37 1.21 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lontrackstudent.pm,v 1.16 2005/06/30 17:56:28 albertel Exp $ +# $Id: lontrackstudent.pm,v 1.21 2006/12/06 22:22:37 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -48,6 +48,8 @@ use Apache::lonmysql; use Apache::lonnet; use Apache::lonlocal; use Time::HiRes; +use lib '/home/httpd/lib/perl/'; +use LONCAPA; my $num_records=500; @@ -63,9 +65,9 @@ sub get_data { # my $max_time = &get_max_time_in_db($r,$prog_state); if (defined($max_time)) { - $r->print('

'.&mt('Activity data goes to [_1]', + $r->print('

'.&mt('Activity data compiled up to [_1]', &Apache::lonlocal::locallocaltime($max_time)). - '

'); + ''.&mt('While data is processed, periodically reload this page for more recent activity').'
'); $r->rflush(); } else { $r->print('

'.&mt('Unable to retrieve any data. Please reload this page and try again.').'

'); @@ -183,7 +185,7 @@ sub get_max_time_in_db { my $timestr = ''; while (my $line = ) { chomp($line); - $timestr = &Apache::lonnet::unescape($line); + $timestr = &unescape($line); } close(TIMEDATA); return &Apache::lonmysql::unsqltime($timestr); @@ -236,7 +238,7 @@ sub output_results { ## if (! -s $results_file) { # results file is empty, just let them know there is no data - $r->print('

'.&mt('No data was returned for your request').'

'); + $r->print('

'.&mt('So far, no data has been returned for your request').'

'); return; } if (! open(ACTIVITYDATA,$results_file)) { @@ -278,7 +280,7 @@ sub output_results { while (my $line = ) { # FIXME: does not pass symbs along :( chomp($line); - $line = &Apache::lonnet::unescape($line); + $line = &unescape($line); if (++$count % 50 == 0) { if ($count != 0) { $r->print(''.$/); @@ -293,7 +295,7 @@ sub output_results { ($symb,$timestamp,$action,$machine,$values) = split(',',$line,5); } foreach ($symb,$timestamp,$student,$action,$machine) { - $_=&Apache::lonnet::unescape($_); + $_=&unescape($_); } my ($title,$src); if ($symb =~ m:^/adm/:) { @@ -380,14 +382,14 @@ sub display_values { my %values=map {split('=',$_,-1)} split(/\&/,$values); foreach my $key (sort(keys(%values))) { $result.=''. - &Apache::lonnet::unescape($key). + &unescape($key). '='. - &Apache::lonnet::unescape($values{$key}).''; + &unescape($values{$key}).''; } $result.=''; } elsif ($action eq 'POST') { my %values= - map {split('=',&Apache::lonnet::unescape($_),-1)} split(/\&/,$values); + map {split('=',&unescape($_),-1)} split(/\&/,$values); foreach my $key (sort(keys(%values))) { if ($key eq 'counter') { next; } $result.=''.$key.''. @@ -395,7 +397,7 @@ sub display_values { } $result.=''; } else { - $result=&Apache::lonnet::unescape($values) + $result=&unescape($values) } return $result; } @@ -510,12 +512,8 @@ sub handler { bug=>'instructor interface'}); # # Give the LON-CAPA page header - my $html=&Apache::lonxml::xmlbegin(); - $r->print($html.''.&styles().''. - &mt('Student Activity'). - "\n". - &Apache::loncommon::bodytag('Student Activity'). - &Apache::lonhtmlcommon::breadcrumbs(undef,'Student Activity')); + $r->print(&Apache::loncommon::start_page('Student Activity',&styles()). + &Apache::lonhtmlcommon::breadcrumbs('Student Activity')); $r->rflush(); # # Begin form output @@ -539,18 +537,19 @@ sub handler { # For now, just show all the data, in the future allow selection of # a student my ($sname,$sdom) = split(':',$env{'form.selected_student'}); - if ($sname =~ /^\w*$/ && $sdom =~ /^\w*$/) { + if ($sname =~ /^$LONCAPA::username_re$/ + && $sdom =~ /^$LONCAPA::domain_re$/) { $r->print('

'. - &mt('Recent activity of [_1]@[_2]',$sname,$sdom). + &mt('Recent activity of [_1]:[_2]',$sname,$sdom). '

'); $r->print('

'.&mt(<'); Compiling student activity data can take a long time. -It may be necessary to reload this page to get the most current information. +Your request continues to be processed while results are displayed. END &get_data($r,\%prog_state,$navmap, 'student:'.$env{'form.selected_student'}); } else { - $r->print('

'.&mt('Unable to process for [_1]@[_2]', + $r->print('

'.&mt('Unable to process for [_1]:[_2]', $sname,$sdom).'

'); } } else { @@ -562,7 +561,7 @@ END &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state); # $r->print("\n"); - $r->print("\n\n"); + $r->print(&Apache::loncommon::end_page()); $r->rflush(); # return OK;