--- loncom/html/res/adm/pages/annotator/admannotations.pm 2001/12/19 17:17:46 1.17 +++ loncom/html/res/adm/pages/annotator/admannotations.pm 2006/04/10 23:28:52 1.21 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # This will take annotations and then plug them into a page. # -# $Id: admannotations.pm,v 1.17 2001/12/19 17:17:46 albertel Exp $ +# $Id: admannotations.pm,v 1.21 2006/04/10 23:28:52 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -25,24 +25,19 @@ # # http://www.lon-capa.org/ # -# 08/25/00 Ben Tyszka -# -# 10/17,10/18,10/20 Gerd Kortemeyer -# -# ################## package Apache::admannotations; use strict; use Apache::Constants qw(:common); -use Apache::lonnet(); +use Apache::loncommon(); +use Apache::lonnet; # --------------------------------------------------------------Put annotation sub write_annotation { - my $urlold=shift; - my $annotation=shift; + my ($urlold, $annotation) = @_; if ($annotation) { &Apache::lonnet::put('nohist_annotations',{$urlold => $annotation}); } @@ -52,7 +47,7 @@ sub write_annotation { # --------------------------------------------------------------Get annotation sub get_annotation { - my $urlnew=shift; + my ($urlnew) = @_; my %annotation=&Apache::lonnet::get('nohist_annotations',[$urlnew]); return %annotation; } @@ -60,14 +55,11 @@ sub get_annotation { # ------------------------------------------------------------Construct editor sub construct_editor { - my $annotation=shift; + my ($annotation,$urlnew) = @_; if ($annotation=~/^error:/) { $annotation=''; } - my $urlnew=shift; - return(< - -Annotations - - - +ENDJS + + my %load_items = ('onload' => "timeout=setTimeout('changed()','1000')", + 'onunload' => 'clearTimeout(timeout);'); + my $start_page = + &Apache::loncommon::start_page('Annotations',$js, + {'only_body' => 1, + 'add_entries' => \%load_items,}); + + my $end_page = + &Apache::loncommon::end_page(); + return(<

@@ -94,21 +95,20 @@ function changed() {
- - +$end_page END_HTML } # ----------------------------------------------------Constructs error window sub construct_error { - my $annot_error=shift; - my $button_name=shift; - return(< -Annotations - - + my ($annot_error,$button_name) = @_; + my $start_page = &Apache::loncommon::start_page('Annotations',undef, + {'only_body' => 1,}); + my $end_page = &Apache::loncommon::end_page(); + + return(<
@@ -126,49 +126,50 @@ $annot_error - - +$end_page END_HTML2 } # ---------------------------------------------------------------Main Handler sub handler { - my $r=shift; + my $r=shift; - $r->content_type('text/html'); - $r->send_http_header; - 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 (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; + $r->content_type('text/html'); + $r->send_http_header; + 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 (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;