--- loncom/publisher/londiff.pm	2001/12/13 14:02:54	1.7
+++ loncom/publisher/londiff.pm	2003/12/10 15:42:49	1.13
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Handler to show differences between file versions
 #
-# $Id: londiff.pm,v 1.7 2001/12/13 14:02:54 harris41 Exp $
+# $Id: londiff.pm,v 1.13 2003/12/10 15:42:49 sakharuk Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -41,7 +41,6 @@
 # 03/31,04/03 Gerd Kortemeyer)
 #
 # 05/02/01,05/09 Gerd Kortemeyer
-# 12/13 Scott Harrison
 #
 ###
 
@@ -55,6 +54,7 @@ use Apache::Constants qw(:common :http :
 use Apache::loncacc;
 use Apache::lonnet();
 use Apache::loncommon();
+use Apache::lonlocal;
 
 sub handler {
 
@@ -62,24 +62,18 @@ sub handler {
 
 # Get query string for limited number of parameters
 
-    foreach (split(/&/,$ENV{'QUERY_STRING'})) {
-       my ($name, $value) = split(/=/,$_);
-       $value =~ tr/+/ /;
-       $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
-       if (($name eq 'filename') || ($name eq 'versiontwo') || 
-           ($name eq 'versionone')) {
-           unless ($ENV{'form.'.$name}) {
-              $ENV{'form.'.$name}=$value;
-	   }
-       }
-    }
-
+   &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
+                                       ['filename','versiontwo','versionone']);
 # Get the files
 
   my $cuname=$ENV{'user.name'};
   my $cudom=$ENV{'user.domain'};
 
-  unless (($cuname,$cudom)=
+  if ($ENV{'form.filename'}=~/^\/res\//) {
+      ($cudom,$cuname,$ENV{'form.filename'})=
+       ($ENV{'form.filename'}=~/^\/res\/(\w+)\/(\w+)\/(.*)$/);
+  } else {
+   unless (($cuname,$cudom)=
     &Apache::loncacc::constructaccess($ENV{'form.filename'},
                                       $r->dir_config('lonDefDomain'))) {
      $r->log_reason($cuname.' at '.$cudom.
@@ -87,6 +81,7 @@ sub handler {
          '  - not authorized', 
          $r->filename); 
      return HTTP_NOT_ACCEPTABLE;
+   }
   }
 
   my $efn=$ENV{'form.filename'};
@@ -101,10 +96,10 @@ sub handler {
 
   $r->print('<html><head><title>LON-CAPA Construction Diffs</title></head>');
 
-  $r->print('<body bgcolor="#FFFFFF">');
+  $r->print(&Apache::loncommon::bodytag(&mt('Resource Differences')));
 
   
-  $r->print('<h1>Compare versions of <tt>'.$efn.'</tt></h1>');
+  $r->print('<h1>'.&mt('Compare versions of').' <tt>'.$efn.'</tt></h1>');
    
        if (($cuname ne $ENV{'user.name'}) || ($cudom ne $ENV{'user.domain'})) {
           $r->print('<h3><font color=red>Co-Author: '.$cuname.' at '.$cudom.
@@ -114,6 +109,7 @@ sub handler {
 
  if (&Apache::loncommon::fileembstyle(($efn=~/\.(\w+)$/)) eq
       'ssi') {
+  $r->print('<p><font color="red">');
   if ($ENV{'form.versionone'} eq 'priv') {
       my $fn='/home/'.$cuname.'/public_html/'.$efn;
       if (-e $fn) {
@@ -124,22 +120,22 @@ sub handler {
              $f1[$#f1+1]=$line;
 	 }
       }
-      $r->print('<h3>Construction Space Version</h3>');
+      $r->print('<b>'.&mt('Construction Space Version').'</b>');
   } else {
       my $fn=
        '/home/httpd/html//res/'.$cudom.'/'.$cuname.'/';
       if ($ENV{'form.versionone'}) {
          my ($main,$suffix)=($efn=~/^(.+)\.(\w+)$/);
          $fn.=$main.'.'.$ENV{'form.versionone'}.'.'.$suffix;
-	 $r->print('<h3>Version '.$ENV{'form.versionone'}.'</h3>');
+	 $r->print('<b>'.&mt('Version').' '.$ENV{'form.versionone'}.'</b>');
       } else {
          $fn.=$efn;
-	 $r->print('<h3>Current Version</h3>');
+	 $r->print('<b>'.&mt('Current Version').'</b>');
       }
       @f1=split(/\n/,&Apache::lonnet::getfile($fn));      
   }
 
-  $r->print('versus');
+  $r->print('</font><br />'.&mt('versus').'<br /><font color="green">');
 
   if ($ENV{'form.versiontwo'} eq 'priv') {
       my $fn='/home/'.$cuname.'/public_html/'.$efn;
@@ -151,21 +147,21 @@ sub handler {
              $f2[$#f2+1]=$line;
 	 }
       }
-      $r->print('<h3>Construction Space Version</h3>');
+      $r->print('<b>'.&mt('Construction Space Version').'</b>');
   } else {
       my $fn=
        '/home/httpd/html/res/'.$cudom.'/'.$cuname.'/';
       if ($ENV{'form.versiontwo'}) {
          my ($main,$suffix)=($efn=~/^(.+)\.(\w+)$/);
          $fn.=$main.'.'.$ENV{'form.versiontwo'}.'.'.$suffix;
-	 $r->print('<h3>Version '.$ENV{'form.versiontwo'}.'</h3>');
+	 $r->print('<b>'.&mt('Version').' '.$ENV{'form.versiontwo'}.'</b>');
       } else {
          $fn.=$efn;
-	 $r->print('<h3>Current Version</h3>');
+	 $r->print('<b>'.&mt('Current Version').'</b>');
       }
       @f2=split(/\n/,&Apache::lonnet::getfile($fn));      
   }
-
+  $r->print('</font></p>');
 # Run diff
 
   my $diffs = diff(\@f1, \@f2);
@@ -192,9 +188,9 @@ sub handler {
   $r->print('</pre>');
 
 } else {
-    $r->print('<h1><font color=red>Binary File</font></h1>');
+    $r->print('<h1><font color=red>'.&mt('Binary File').'</font></h1>');
 }
-  $r->print('</body></html>');
+  $r->print('<center><a href="javascript:window.close();">'.&mt('Close This Window').'</a></center></body></html>'); 
   return OK;  
 }