--- loncom/interface/londocs.pm	2002/10/10 17:17:11	1.25
+++ loncom/interface/londocs.pm	2002/10/16 18:48:12	1.28
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Documents
 #
-# $Id: londocs.pm,v 1.25 2002/10/10 17:17:11 www Exp $
+# $Id: londocs.pm,v 1.28 2002/10/16 18:48:12 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -29,15 +29,20 @@
 package Apache::londocs;
 
 use strict;
-use Apache::Constants qw(:common);
+use Apache::Constants qw(:common :http);
 use Apache::lonnet;
 use Apache::loncommon;
 use Apache::lonratedt;
 use Apache::lonratsrv;
 use Apache::lonxml;
+use GDBM_File;
 
 my $iconpath;
 
+my %hash;
+
+my $hashtied;
+
 # Mapread read maps into lonratedt::global arrays 
 # @order and @resources, determines status
 # sets @order - pointer to resources in right order
@@ -218,6 +223,23 @@ END
     return $line;
 }
 
+# ---------------------------------------------------------------- tie the hash
+
+sub tiehash {
+    $hashtied=0;
+    if ($ENV{'request.course.fn'}) {
+        if (tie(%hash,'GDBM_File',$ENV{'request.course.fn'}.".db",
+            &GDBM_READER(),0640)) {
+                $hashtied=1;
+        }
+    }    
+}
+
+sub untiehash {
+    if ($hashtied) { untie %hash; }
+    $hashtied=0;
+}
+
 # ================================================================ Main Handler
 sub handler {
     my $r = shift;
@@ -225,6 +247,57 @@ sub handler {
     $r->send_http_header;
     return OK if $r->header_only;
 
+  
+  if ($ENV{'form.verify'}) {
+ 
+   my $loaderror=&Apache::lonnet::overloaderror($r);
+   if ($loaderror) { return $loaderror; }
+
+   $r->print('<html><head><title>Verify Content</title></head>'.
+              &Apache::loncommon::bodytag('Verify Course Documents'));
+   $hashtied=0;
+   my %alreadyseen=();
+   &tiehash();
+   foreach (keys %hash) {
+       if (($_=~/^src\_(.+)$/) && (!$alreadyseen{$hash{$_}})) {
+           $alreadyseen{$hash{$_}}=1;
+           my $resid=$1;
+           $r->rflush();
+	   if ($hash{$_}) {
+               my $fn=$hash{$_};
+               $r->print('<br /><a href="'.$fn.'" target="cat">'.
+		 ($hash{'title_'.$resid}?$hash{'title_'.$resid}:$fn).'</a> ');
+ 	       if ($fn=~/^\/res\//) {
+		   my $result=&Apache::lonnet::repcopy(
+                              &Apache::lonnet::filelocation('',$fn));
+                   if ($result==OK) {
+                       $r->print('<font color="green">ok</font>');
+                       $r->rflush();
+		       my $dependencies=
+                          &Apache::lonnet::metadata($hash{$_},'dependencies');
+                       $r->print('Dependencies: '.$dependencies.'<br />');
+                   } elsif ($result==HTTP_SERVICE_UNAVAILABLE) {
+                       $r->print(
+                         '<font color="red"><b>connection down</b></font>');
+                   } elsif ($result==HTTP_NOT_FOUND) {
+                       $r->print('<font color="red"><b>not found</b></font>');
+                   } else {
+                       $r->print(
+                             '<font color="red"><b>access denied</b></font>');
+                   }
+               }
+           }
+       }
+   }
+   &untiehash();
+  } elsif ($ENV{'form.versions'}) {
+    $r->print('<html><head><title>Check Versions</title></head>'.
+              &Apache::loncommon::bodytag('Check Course Document Versions'));
+   $hashtied=0;
+   &tiehash();
+
+   &untiehash();
+  } else {
 # is this a standard course?
 
     my $standard=($ENV{'request.course.uri'}=~/^\/uploaded\//);
@@ -329,7 +402,7 @@ ENDNEWSCRIPT
   unless ($showdoc) {
     if ($allowed) {
        $r->print(<<ENDCOURSEVERIFY);
-<form name="courseverify">
+<form action="/adm/coursedocs" method="post" name="courseverify">
 <input type="submit" name="verify" value="Verify Content" />
 <input type="submit" name="versions" value="Check Resource Versions" />
 </form>
@@ -512,8 +585,9 @@ ENDSUPFORM
       $r->print("<h1>Uploaded Document</h1><p>It is recommended that you use an up-to-date virus scanner before handling this file.</p><p><table>".
          &entryline(0,"Click to download or use your browser's Save Link function",$showdoc).'</table></p>');
   }
-  $r->print('</body></html>');
-  return OK;
+ }
+ $r->print('</body></html>');
+ return OK;
 } 
 
 1;