--- loncom/interface/lonevaluate.pm 2001/12/13 00:30:22 1.4 +++ loncom/interface/lonevaluate.pm 2004/11/11 22:47:55 1.14 @@ -1,7 +1,7 @@ # The LearningOnline Network # Evaluate # -# $Id: lonevaluate.pm,v 1.4 2001/12/13 00:30:22 www Exp $ +# $Id: lonevaluate.pm,v 1.14 2004/11/11 22:47:55 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -33,13 +33,15 @@ # # 3/1/1 Gerd Kortemeyer) # -# 3/1,12/6,12/12 Gerd Kortemeyer +# 3/1,12/6,12/12,12/21,12/22 Gerd Kortemeyer # package Apache::lonevaluate; use strict; -use Apache::lonnet; +use Apache::lonnet(); use Apache::Constants qw(:common); +use Apache::loncommon(); +use Apache::lonenc(); sub handler { my $r = shift; @@ -47,17 +49,20 @@ sub handler { $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', @@ -66,7 +71,7 @@ sub handler { my @retrieve=map{ $prefix.$_ } @items; my %currenteval= - &Apache::lonnet::get('resevaldata',\@retrieve,$rdomain,$rauth); + &Apache::lonnet::get('nohist_resevaldata',\@retrieve,$rdomain,$rauth); my $already=($currenteval{$prefix.'timestamp'} ne ''); @@ -74,6 +79,8 @@ sub handler { my $warning=''; + my $bodytag=&Apache::loncommon::bodytag('Evaluate Resource'); + if ($ENV{'form.submiteval'} eq 'true') { # ------------------------------------------------ User is submitting something my $complete=1; @@ -85,32 +92,55 @@ sub handler { } } if ($complete) { + my $showurl=&Apache::lonenc::check_encrypt(&Apache::lonnet::clutter($feedurl)); $r->print(<<ENDHEADER); <html> <head> <title>Evaluation submitted</title> +<script> + function goback() { + if ((window.name=='loncapaclient')) { + window.location='$showurl'; + } else { + self.close(); + } + } +</script> <meta http-equiv="pragma" content="no-cache"></meta> -<meta HTTP-EQUIV="Refresh" CONTENT="2; url=/res/$feedurl"> </head> -<body bgcolor="#FFFFFF"> +$bodytag <h1>Thank you for your input!</h1> ENDHEADER $r->print('Storing feedback: '. - &Apache::lonnet::put('resevaldata',\%currenteval,$rdomain,$rauth)); + &Apache::lonnet::put('nohist_resevaldata',\%currenteval,$rdomain,$rauth)); unless ($already) { $r->print('<br>Logging first evaluation'); } - $r->print('</body></html>'); + $r->print( + '<script>setTimeout("goback()",2000);</script></body></html>'); return OK; } else { $warning='Please fill out all fields below'; } - + } # ---------------------------------------------------------- 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); <option value=0>-</option> @@ -121,21 +151,18 @@ ENDHEADER <option value=5>Strongly Agree</option> ENDOPTIONS - my $oldcomments=''; - $r->print(<<ENDDOCUMENT); <html> <head> <title>The LearningOnline Network with CAPA</title> </head> -<body bgcolor="#FFFFFF"> -<h1>Evaluate Resource</h1> -<tt>$feedurl</tt><p> +$bodytag +<tt>$title</tt><p> <h3><font color="red">$warning</font></h3> Please rank the following criteria: -<form method=post> +<form method=post name=evaluation> <input type=hidden name=submiteval value=true> -<input type=hidden name=postdata value="$feedurl"> +<input type=hidden name=postdata value="$showurl"> The material appears to be correct <br><select name=correct> $standardoptions @@ -164,7 +191,7 @@ $standardoptions <hr> Any comments? <br><textarea name=comments cols=40 rows=5>$oldcomments</textarea> -$dialold +<script>$dialold</script> <br><input type=submit value="Submit Evaluation"> </form> </body>