--- loncom/html/res/adm/pages/annotator/admannotations.pm 2000/10/10 07:51:11 1.8 +++ loncom/html/res/adm/pages/annotator/admannotations.pm 2005/04/07 06:56:22 1.19 @@ -1,26 +1,46 @@ -#!/usr/bin/perl -T -# +# The LearningOnline Network with CAPA # This will take annotations and then plug them into a page. # -# 08/25/00 Ben Tyszka +# $Id: admannotations.pm,v 1.19 2005/04/07 06:56:22 albertel Exp $ +# +# Copyright Michigan State University Board of Trustees +# +# This file is part of the LearningOnline Network with CAPA (LON-CAPA). +# +# LON-CAPA is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. # +# LON-CAPA is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # +# You should have received a copy of the GNU General Public License +# along with LON-CAPA; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# /home/httpd/html/adm/gpl.txt +# +# http://www.lon-capa.org/ # ################## package Apache::admannotations; use strict; -use CGI qw(:all); use Apache::Constants qw(:common); -use Apache::lonnet(); +use Apache::lonnet; # --------------------------------------------------------------Put annotation sub write_annotation { - my $url_old=shift; + my $urlold=shift; my $annotation=shift; - Apache::lonnet::put("annotations",($url_old => $annotation)); + if ($annotation) { + &Apache::lonnet::put('nohist_annotations',{$urlold => $annotation}); + } return; } @@ -28,35 +48,45 @@ sub write_annotation { sub get_annotation { my $urlnew=shift; - my @annotation=Apache::lonnet::get("annotations",$urlnew); - return @annotation; + my %annotation=&Apache::lonnet::get('nohist_annotations',[$urlnew]); + return %annotation; } # ------------------------------------------------------------Construct editor sub construct_editor { my $annotation=shift; + if ($annotation=~/^error:/) { $annotation=''; } my $urlnew=shift; return(< Annotations - - +
-
+
- + - - + +
@@ -72,28 +102,23 @@ sub construct_error { return(< Annotations - - +
-
+
- + $annot_error - +
- + - - + +
@@ -105,32 +130,39 @@ END_HTML2 sub handler { my $r=shift; - my $page; - my @annot_hash; - my $urlold; - my $annotation; - my $urlnew; + $r->content_type('text/html'); $r->send_http_header; - if (exists($ENV{'form.urlold'})) { - $urlold=$ENV{'form.urlold'}; - $annotation=$ENV{'form.annotation'}; + return OK if $r->header_only; + + + my $page; + my %annot_hash; + + my $urlold=$env{'form.urlold'}; + $urlold=~s/^http\:\/\///; + $urlold=~s/^[^\/]+//; + $urlold=~s/\?.*$//; + my $urlnew=$env{'form.urlnew'}; + $urlnew=~s/^http\:\/\///; + $urlnew=~s/^[^\/]+//; + $urlnew=~s/\?.*$//; + my $annotation=$env{'form.annotation'}; + + if ($urlold) { write_annotation($urlold,$annotation); } - if (exists($ENV{'form.urlnew'})) { - $urlnew=$ENV{'form.urlnew'}; - if ($urlnew eq '') { - $page=construct_error("Cannot annotate current window. Please point your browser to a Lon-CAPA page and then 'continue'.","continue"); + if (exists($env{'form.urlnew'})) { + unless ($urlnew) { + $page=construct_error("Cannot annotate current window. Please point your browser to a LON-CAPA page and then 'continue'.","continue"); } else { if ($urlold eq $urlnew) { - @annot_hash=($annotation); + $annot_hash{$urlnew}=$annotation; } else { - @annot_hash=get_annotation($urlnew); + %annot_hash=get_annotation($urlnew); } - $page=construct_editor($annot_hash[0],$urlnew); + $page=construct_editor($annot_hash{$urlnew},$env{'form.urlnew'}); } - } else { - $page=construct_error("Connection broken with home server. Please contact your system administrator.","try again"); } $r->print($page); return OK;