--- loncom/interface/lonevaluate.pm 2001/12/12 23:46:22 1.3 +++ loncom/interface/lonevaluate.pm 2006/03/19 22:22:49 1.19 @@ -1,7 +1,7 @@ # The LearningOnline Network # Evaluate # -# $Id: lonevaluate.pm,v 1.3 2001/12/12 23:46:22 www Exp $ +# $Id: lonevaluate.pm,v 1.19 2006/03/19 22:22:49 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -25,105 +25,165 @@ # # http://www.lon-capa.org/ # -# (Internal Server Error Handler -# -# (Login Screen -# 5/21/99,5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14, -# 1/14/00,5/29,5/30,6/1,6/29,7/1,11/9 Gerd Kortemeyer) -# -# 3/1/1 Gerd Kortemeyer) -# -# 3/1,12/6,12/12 Gerd Kortemeyer -# + package Apache::lonevaluate; use strict; use Apache::lonnet; use Apache::Constants qw(:common); +use Apache::loncommon(); +use Apache::lonenc(); sub handler { my $r = shift; - $r->content_type('text/html'); + &Apache::loncommon::content_type($r,'text/html'); + &Apache::loncommon::no_cache($r); + $r->send_http_header; return OK if $r->header_only; - my $feedurl=$ENV{'form.postdata'}; - $feedurl=~s/^http\:\/\///; - $feedurl=~s/^$ENV{'SERVER_NAME'}//; - $feedurl=~s/^$ENV{'HTTP_HOST'}//; + &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['postdata']); + my $feedurl=$env{'form.postdata'}; + $feedurl=~s/^http\:\/\///; + $feedurl=~s/^$ENV{'SERVER_NAME'}//; + $feedurl=~s/^$ENV{'HTTP_HOST'}//; - $feedurl=&Apache::lonnet::declutter($feedurl); - my $symb=&Apache::lonnet::symbread($feedurl); + $feedurl=&Apache::lonnet::declutter($feedurl); + + my $title=&Apache::lonnet::gettitle($feedurl); + my $showurl=&Apache::lonenc::check_encrypt($feedurl); my ($rdomain,$rauth)=($feedurl=~/^(\w+)\/(\w+)\//); - my $prefix=$ENV{'user.name.'}.'@'.$ENV{'user.domain'}.'___'. + my $prefix=$env{'user.name'}.'@'.$env{'user.domain'}.'___'. $feedurl.'___'; - my @items=('correct','helpful','depth','clear','technical','comments'); + my @items=('correct','helpful','depth','clear','technical','comments', + 'timestamp'); my @retrieve=map{ $prefix.$_ } @items; - if ($ENV{'form.submiteval'} eq 'true') { + my %currenteval= + &Apache::lonnet::get('nohist_resevaldata',\@retrieve,$rdomain,$rauth); + + my $already=($currenteval{$prefix.'timestamp'} ne ''); + + $env{'form.timestamp'}=time; + + my $warning=''; + + if ($env{'form.submiteval'} eq 'true') { # ------------------------------------------------ User is submitting something + my $complete=1; + foreach my $item (@items) { + if ($env{'form.'.$item}) { + $currenteval{$prefix.$item}=$env{'form.'.$item}; + } elsif ($item ne 'comments') { + $complete=0; + } + } + if ($complete) { + my $showurl=&Apache::lonenc::check_encrypt(&Apache::lonnet::clutter($feedurl)); + my $js =< + function goback() { + if ((window.name=='loncapaclient')) { + window.location='$showurl'; + } else { + self.close(); + } + } + +ENDJS + + my $start_page = + &Apache::loncommon::start_page('Evaluate Resource',$js); + $r->print(<Thank you for your input! +ENDHEADER + $r->print('Storing feedback: '. + &Apache::lonnet::put('nohist_resevaldata',\%currenteval,$rdomain,$rauth)); + unless ($already) { + $r->print('
Logging first evaluation'); + } + $r->print( + ''.&Apache::loncommon::end_page()); + return OK; + } else { + $warning='Please fill out all fields below'; + } + } -# ------------------------------------------------------- Print out eval screen - my $standardoptions=(<- - - - - - -ENDOPTIONS +# ---------------------------------------------------------- Dial in old values my $dialold=''; my $oldcomments=''; + foreach my $item (@items) { + unless ($item eq 'comments') { + unless (($item eq 'timestamp') || + (!defined($currenteval{$prefix.$item}))) { + $dialold.= + 'document.evaluation.'.$item.'.selectedIndex='. + $currenteval{$prefix.$item}.";\n"; + } + } else { + $oldcomments=$currenteval{$prefix.$item}; + } + } +# ------------------------------------------------------- Print out eval screen + my $standardoptions=(<- + + + + + +ENDOPTIONS + + my $start_page = &Apache::loncommon::start_page('Evaluate Resource'); + my $end_page = &Apache::loncommon::end_page(); $r->print(< - -The LearningOnline Network with CAPA - - -

Evaluate Resource

-$feedurl

+$start_page +$title

+

$warning

Please rank the following criteria: -
- - + + + The material appears to be correct -
$standardoptions -
+
The material is helpful -
$standardoptions -
+
The material is covered with sufficient depth -
$standardoptions -
+
The material is presented in a clear way -
$standardoptions -
+
The resource is technically correct (loads fast enough, does not produce errors, links work, etc) -
$standardoptions -
+
Any comments? -
-$dialold +
+ +
- - +$end_page ENDDOCUMENT return OK; } 500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.