[LON-CAPA-cvs] cvs: loncom /html/res/adm/pages menu.html /html/res/adm/pages/annotator admannotations.pm /interface lonmenu.pm
albertel
lon-capa-cvs-allow@mail.lon-capa.org
Tue, 24 Apr 2007 23:26:30 -0000
This is a MIME encoded message
--albertel1177457190
Content-Type: text/plain
albertel Tue Apr 24 19:26:30 2007 EDT
Modified files:
/loncom/interface lonmenu.pm
/loncom/html/res/adm/pages menu.html
/loncom/html/res/adm/pages/annotator admannotations.pm
Log:
- make annotations work correctly in encrypted mode, encrypted urls have notes stored against their symbs, and un encrypted have thier notes store under the plain url
--albertel1177457190
Content-Type: text/plain
Content-Disposition: attachment; filename="albertel-20070424192630.txt"
Index: loncom/interface/lonmenu.pm
diff -u loncom/interface/lonmenu.pm:1.216 loncom/interface/lonmenu.pm:1.217
--- loncom/interface/lonmenu.pm:1.216 Tue Apr 24 16:12:30 2007
+++ loncom/interface/lonmenu.pm Tue Apr 24 19:26:02 2007
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Routines to control the menu
#
-# $Id: lonmenu.pm,v 1.216 2007/04/24 20:12:30 albertel Exp $
+# $Id: lonmenu.pm,v 1.217 2007/04/24 23:26:02 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1238,7 +1238,7 @@
'$start_page_annotate'
+"<form name='goannotate' target='Annotator' method='post' "
+"action='/adm/annotations'>"
- +"<input type='hidden' name='urlnew' value='"+currentURL+"' />"
+ +"<input type='hidden' name='symbnew' value='"+currentSymb+"' />"
+"<\\/form>"
+'$end_page_annotate');
annotator.document.close();
Index: loncom/html/res/adm/pages/menu.html
diff -u loncom/html/res/adm/pages/menu.html:1.119 loncom/html/res/adm/pages/menu.html:1.120
--- loncom/html/res/adm/pages/menu.html:1.119 Fri Jun 30 20:39:50 2006
+++ loncom/html/res/adm/pages/menu.html Tue Apr 24 19:26:15 2007
@@ -4,7 +4,7 @@
Remote Control
//
-// $Id: menu.html,v 1.119 2006/07/01 00:39:50 www Exp $
+// $Id: menu.html,v 1.120 2007/04/24 23:26:15 albertel Exp $
//
// Copyright Michigan State University Board of Trustees
//
@@ -324,7 +324,7 @@
"<html><body onload='Javascript:document.goannotate.submit();'>"
+"<form name='goannotate' target='Annotator' method='post' "
+"action='/adm/annotations'>"
- +"<input type='hidden' name='urlnew' value='"+currentURL+"'>"
+ +"<input type='hidden' name='symbnew' value='"+currentSymb+"'>"
+"</form></body></html>");
annotator.document.close();
}
Index: loncom/html/res/adm/pages/annotator/admannotations.pm
diff -u loncom/html/res/adm/pages/annotator/admannotations.pm:1.26 loncom/html/res/adm/pages/annotator/admannotations.pm:1.27
--- loncom/html/res/adm/pages/annotator/admannotations.pm:1.26 Thu Apr 20 00:19:55 2006
+++ loncom/html/res/adm/pages/annotator/admannotations.pm Tue Apr 24 19:26:26 2007
@@ -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.26 2006/04/20 04:19:55 albertel Exp $
+# $Id: admannotations.pm,v 1.27 2007/04/24 23:26:26 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -38,52 +38,66 @@
# --------------------------------------------------------------Put annotation
sub write_annotation {
- my ($urlold, $annotation) = @_;
- if ($annotation) {
- &Apache::lonnet::put('nohist_annotations',{$urlold => $annotation});
+ my ($symb, $enc, $annotation) = @_;
+
+ return if (!$annotation);
+
+ my $key = $symb;
+ if (!$enc) {
+ $key =
+ &Apache::lonnet::clutter((&Apache::lonnet::decode_symb($symb))[2]);
}
+
+ &Apache::lonnet::put('nohist_annotations',{$key => $annotation});
return;
}
# --------------------------------------------------------------Get annotation
sub get_annotation {
- my ($urlnew) = @_;
- my %annotation=&Apache::lonnet::get('nohist_annotations',[$urlnew]);
- return %annotation;
+ my ($symb,$enc) = @_;
+
+ my $key = $symb;
+ if (!$enc) {
+ $key =
+ &Apache::lonnet::clutter((&Apache::lonnet::decode_symb($symb))[2]);
+ }
+ my %annotation=&Apache::lonnet::get('nohist_annotations',[$key]);
+ return $annotation{$key};
}
# ------------------------------------------------------------Construct editor
-sub js_get_url {
+sub js_get_symb {
return <<ENDJS;
-function get_url() {
- var url;
+function get_symb() {
+ var symb;
if (typeof(window.opener.clientwindow) != 'undefined') {
- url=window.opener.clientwindow.location.href;
+ symb=window.opener.clientwindow.location.href;
} else {
- url=window.opener.location.href;
+ symb=window.opener.location.href;
}
- return url;
+ symb=window.opener.currentSymb;
+ return symb;
}
ENDJS
}
sub construct_editor {
- my ($annotation,$urlnew) = @_;
+ my ($annotation,$symbnew) = @_;
if ($annotation=~/^error:/) { $annotation=''; }
- my $get_url = &js_get_url();
+ my $get_symb = &js_get_symb();
my $js = <<ENDJS;
<script type="text/javascript">
var timeout;
-$get_url
+$get_symb
function changed() {
- var urlnew=get_url();
- if (urlnew!=document.annotInfo.urlold.value) {
- document.annotInfo.urlnew.value=urlnew;
+ var symbnew=get_symb();
+ if (symbnew!=document.annotInfo.symbold.value) {
+ document.annotInfo.symbnew.value=symbnew;
document.annotInfo.submit();
}
timeout=setTimeout('changed();','1000');
@@ -110,10 +124,10 @@
<center>
<form name="annotInfo" method="post" action="/adm/annotations">
<textarea name="annotation" wrap="on" rows="12" cols="36">$annotation</textarea><br />
- <input type="hidden" name="urlold" value="$urlnew" />
- <input type="hidden" name="urlnew" value="" />
+ <input type="hidden" name="symbold" value="$symbnew" />
+ <input type="hidden" name="symbnew" value="" />
<input type="button" name="send" value="$lt{'save'}"
- onclick="javascript:this.form.urlnew.value=get_url();this.form.submit();" />
+ onclick="javascript:this.form.symbnew.value=get_symb();this.form.submit();" />
<input type="button" name="close" value="$lt{'close no save'}"
onclick="javascript:window.close();" />
</form>
@@ -127,10 +141,10 @@
sub construct_error {
my ($annot_error,$button_name) = @_;
- my $get_url = &js_get_url();
+ my $get_symb = &js_get_symb();
my $js = <<ENDJS;
<script type="text/javascript">
-$get_url
+$get_symb
</script>
ENDJS
@@ -153,10 +167,10 @@
</i></font>
</td>
</table>
- <input type="hidden" name="urlold" value="" />
- <input type="hidden" name="urlnew" value="" />
+ <input type="hidden" name="symbold" value="" />
+ <input type="hidden" name="symbnew" value="" />
<input type="button" name="send" value="$lt{'button'}"
- onclick="javascript:this.form.urlnew.value=get_url();this.form.submit();" />
+ onclick="javascript:this.form.symbnew.value=get_symb();this.form.submit();" />
<input type="button" name="close" value="$lt{'close'}"
onclick="javascript:window.close();" />
</form>
@@ -165,6 +179,16 @@
END_HTML2
}
+sub clean_symb {
+ my ($symb) = @_;
+
+ &Apache::lonenc::check_decrypt(\$symb);
+ my $enc = $env{'request.enc'};
+ delete($env{'request.enc'});
+
+ return ($symb,$enc);
+}
+
# ---------------------------------------------------------------Main Handler
sub handler {
@@ -176,31 +200,24 @@
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 ($symb_old,$symb_old_enc) = &clean_symb($env{'form.symbold'});
+ my ($symb_new,$symb_new_enc) = &clean_symb($env{'form.symbnew'});
+
my $annotation=$env{'form.annotation'};
- if ($urlold) {
- &write_annotation($urlold,$annotation);
+ if ($symb_old) {
+ &write_annotation($symb_old,$symb_old_enc,$annotation);
}
- if (exists($env{'form.urlnew'})) {
- unless ($urlnew) {
+ if (exists($env{'form.symbnew'})) {
+ unless ($symb_new) {
$page=&construct_error(&mt("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);
+ if ($symb_old ne $symb_new) {
+ $annotation=&get_annotation($symb_new,$symb_new_enc);
}
- $page=&construct_editor($annot_hash{$urlnew},$env{'form.urlnew'});
+ # pass same symb through.
+ $page=&construct_editor($annotation,$env{'form.symbnew'});
}
}
$r->print($page);
--albertel1177457190--