--- loncom/html/res/adm/pages/annotator/admannotations.pm 2000/09/22 22:43:18 1.7 +++ loncom/html/res/adm/pages/annotator/admannotations.pm 2001/07/26 20:26:42 1.15 @@ -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 - - +
-
-
- - - - + +
+ + + +
@@ -72,28 +83,23 @@ sub construct_error { return(< Annotations - - +
-
+
- + $annot_error - +
- - - - + + + +
@@ -105,40 +111,42 @@ END_HTML2 sub handler { my $r=shift; - my $url_old; - my $annotation; - my $page; - my $url_new; - my %annot_hash; + $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 (defined(param("url_new"))) { - $url_new=param("url_new"); - if ($url_new eq "") { - $page=construct_error("Cannot annotate current window. Please point your browser to a Lon-CAPA page and then 'continue'.","coninue"); - } else { - if ($url_old eq $url_new) { - %annot_hash=($url_new => $annotation); + 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 { - %annot_hash=get_annotation($url_new); + if ($urlold eq $urlnew) { + $annot_hash{$urlnew}=$annotation; + } else { + %annot_hash=get_annotation($urlnew); + } + $page=construct_editor($annot_hash{$urlnew},$ENV{'form.urlnew'}); } - 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); } + $r->print($page); return OK; } 1; __END__ +