--- loncom/html/res/adm/pages/annotator/admannotations.pm 2000/10/14 16:58:19 1.10
+++ loncom/html/res/adm/pages/annotator/admannotations.pm 2001/12/19 17:17:46 1.17
@@ -1,9 +1,33 @@
-#!/usr/bin/perl -T
-#
+# The LearningOnline Network with CAPA
# This will take annotations and then plug them into a page.
#
+# $Id: admannotations.pm,v 1.17 2001/12/19 17:17:46 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/
+#
# 08/25/00 Ben Tyszka
#
+# 10/17,10/18,10/20 Gerd Kortemeyer
#
#
##################
@@ -11,16 +35,17 @@
package Apache::admannotations;
use strict;
-use CGI qw(:all);
use Apache::Constants qw(:common);
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,7 +53,7 @@ sub write_annotation {
sub get_annotation {
my $urlnew=shift;
- my %annotation=Apache::lonnet::get("annotations",$urlnew);
+ my %annotation=&Apache::lonnet::get('nohist_annotations',[$urlnew]);
return %annotation;
}
@@ -36,27 +61,37 @@ sub get_annotation {
sub construct_editor {
my $annotation=shift;
+ if ($annotation=~/^error:/) { $annotation=''; }
my $urlnew=shift;
return(<Annotations
-
-
+
@@ -105,32 +135,37 @@ 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/^[^\/]+//;
+ my $urlnew=$ENV{'form.urlnew'};
+ $urlnew=~s/^http\:\/\///;
+ $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");
+ 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{$urlnew}=$annotation;
} else {
%annot_hash=get_annotation($urlnew);
}
- $page=construct_editor($annot_hash{$urlnew},$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;