--- loncom/html/res/adm/pages/annotator/admannotations.pm 2000/09/19 16:55:50 1.6
+++ loncom/html/res/adm/pages/annotator/admannotations.pm 2005/04/07 06:56:22 1.19
@@ -1,62 +1,92 @@
-#!/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;
# --------------------------------------------------------------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 +94,7 @@ function getDomain() {
END_HTML
}
-# --------------------------------------------Constructs the can't edit window
+# ----------------------------------------------------Constructs error window
sub construct_error {
my $annot_error=shift;
@@ -72,28 +102,23 @@ sub construct_error {
return(<Annotations
-
-
+
-
@@ -101,38 +126,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__
+