--- loncom/html/res/adm/pages/annotator/admannotations.pm 2000/08/29 16:24:13 1.1 +++ loncom/html/res/adm/pages/annotator/admannotations.pm 2000/10/10 20:30:34 1.9 @@ -8,117 +8,134 @@ # ################## -package Apache::admannotation; +package Apache::admannotations; use strict; use CGI qw(:all); use Apache::Constants qw(:common); -use Apache::lonnet; - -########################## -# -# The following are fake get and put functions. -# DELETE the following get and put functions and edit the calls -# once the module is working. -# -# -#sub get { -# return "This is a sample annotation/n hopefully it'll look nice on the screen"; -#} -# -#sub put { -# return; -#} -# -# -# DELETE everything within this comment block -# -########################## +use Apache::lonnet(); # --------------------------------------------------------------Put annotation sub write_annotation { my $url_old=shift; my $annotation=shift; - put("annotations",($url_old,$annotation)); + Apache::lonnet::put("annotations",($url_old => $annotation)); return; } # --------------------------------------------------------------Get annotation sub get_annotation { - my $url_new=shift; - my $annotation=get("annotations",$url_new); - return $annotation; + my $urlnew=shift; + my %annotation=Apache::lonnet::get("annotations",$urlnew); + return %annotation; } # ------------------------------------------------------------Construct editor sub construct_editor { - my $url_new=shift; my $annotation=shift; - return(< - - - - -
-
- - - - -
- - - + + +
+
+
+ + + + +
+
+ + END_HTML } -# ----------------------------------------------------------------Main Handler +# ----------------------------------------------------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; - $r->content_type('text/html'); - $r->send_http_header; - if ($url_old=param("url_old")) { - $annotation=param("annotation"); - write_annotation($url_old,$annotation); - } - if (my $url_new=param("url_new")) { - unless ($url_old eq $url_new) { - $annotation=get_annotation($url_new); - } - my $page = construct_editor($url_new,$annotation); - $r->print($page); - } - return OK; + my $r=shift; + my $page; + my %annot_hash; + my $urlold; + my $annotation; + my $urlnew; + $r->content_type('text/html'); + $r->send_http_header; + if (exists($ENV{'form.urlold'})) { + $urlold=$ENV{'form.urlold'}; + $annotation=$ENV{'form.annotation'}; + write_annotation($urlold,$annotation); + } + if (exists($ENV{'form.urlnew'})) { + $urlnew=$ENV{'form.urlnew'}; + if ($urlnew eq '') { + $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},$urlnew); + } + } else { + $page=construct_error("Connection broken with home server. Please contact your system administrator.","try again"); + } + $r->print($page); + return OK; } 1; __END__ +