[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--