#!/usr/bin/perl -T # # This will take annotations and then plug them into a page. # # 08/25/00 Ben Tyszka # # # ################## 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 $annotation=shift; Apache::lonnet::put("annotations",($url_old => $annotation)); return; } # --------------------------------------------------------------Get annotation sub get_annotation { my $url_new=shift; my %annotation=Apache::lonnet::get("annotations",($url_new)); return %annotation; } # ------------------------------------------------------------Construct editor sub construct_editor { my $url_new=shift; my %annot_hash=@_; return(< Annotations

END_HTML } # ----------------------------------------------------Constructs error window sub construct_error { my $annot_error=shift; my $button_name=shift; return(< Annotations
$annot_error
END_HTML2 } # ---------------------------------------------------------------Main Handler 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); } 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); } 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); } return OK; } 1; __END__