--- loncom/html/res/adm/pages/annotator/admannotations.pm 2000/09/19 16:55:50 1.6
+++ loncom/html/res/adm/pages/annotator/admannotations.pm 2003/06/23 18:54:37 1.18
@@ -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.18 2003/06/23 18:54:37 www 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,52 +35,63 @@
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;
}
# --------------------------------------------------------------Get annotation
sub get_annotation {
- my $url_new=shift;
- my %annotation=Apache::lonnet::get("annotations",($url_new));
+ my $urlnew=shift;
+ my %annotation=&Apache::lonnet::get('nohist_annotations',[$urlnew]);
return %annotation;
}
# ------------------------------------------------------------Construct editor
sub construct_editor {
- my $url_new=shift;
- my %annot_hash=@_;
+ my $annotation=shift;
+ if ($annotation=~/^error:/) { $annotation=''; }
+ my $urlnew=shift;
return(<Annotations
-
-
+
-
@@ -64,7 +99,7 @@ function getDomain() {
END_HTML
}
-# --------------------------------------------Constructs the can't edit window
+# ----------------------------------------------------Constructs error window
sub construct_error {
my $annot_error=shift;
@@ -72,28 +107,23 @@ sub construct_error {
return(<Annotations
-
-
+
-
@@ -101,38 +131,48 @@ $annot_error
END_HTML2
}
-# ----------------------------------------------------------------Main Handler
+# ---------------------------------------------------------------Main Handler
sub handler {
my $r=shift;
- my $url_old;
- my $annotation;
- my $page;
+
$r->content_type('text/html');
$r->send_http_header;
- if ($url_old=param("url_old")) {
- $annotation=param("annotation");
- write_annotation($url_old,$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 (my $url_new=param("url_new")) {
- my %annot_hash;
- if ($url_old eq $url_new) {
- %annot_hash=($url_new => $annotation);
- } else {
- %annot_hash=get_annotation($url_new);
- }
- if (exists($annot_hash{"con_lost"})) {
- $page=construct_error("Connection broken with home server. Please contact your system administrator.","try again");
- } else {
- $page=construct_editor($url_new,%annot_hash);
- }
- $r->print($page);
- } else {
- $page=construct_error("Cannot annotate current window. Please point your browser to a Lon-CAPA page and then 'continue'.","coninue");
- $r->print($page);
+ 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{$urlnew}=$annotation;
+ } else {
+ %annot_hash=get_annotation($urlnew);
+ }
+ $page=construct_editor($annot_hash{$urlnew},$ENV{'form.urlnew'});
+ }
}
+ $r->print($page);
return OK;
}
1;
__END__
+