--- loncom/html/res/adm/pages/annotator/admannotations.pm 2000/09/19 16:55:50 1.6
+++ loncom/html/res/adm/pages/annotator/admannotations.pm 2001/07/27 20:17:14 1.16
@@ -1,9 +1,9 @@
-#!/usr/bin/perl -T
#
# This will take annotations and then plug them into a page.
#
# 08/25/00 Ben Tyszka
#
+# 10/17,10/18,10/20 Gerd Kortemeyer
#
#
##################
@@ -11,52 +11,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 +75,7 @@ function getDomain() {
END_HTML
}
-# --------------------------------------------Constructs the can't edit window
+# ----------------------------------------------------Constructs error window
sub construct_error {
my $annot_error=shift;
@@ -72,28 +83,23 @@ sub construct_error {
return(<
Annotations
-
-
+
-
@@ -101,38 +107,46 @@ $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/^[^\/]+//;
+ my $urlnew=$ENV{'form.urlnew'};
+ $urlnew=~s/^http\:\/\///;
+ $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__
+