[LON-CAPA-cvs] cvs: loncom /interface londocs.pm

www lon-capa-cvs@mail.lon-capa.org
Tue, 15 Oct 2002 20:50:19 -0000


www		Tue Oct 15 16:50:19 2002 EDT

  Modified files:              
    /loncom/interface	londocs.pm 
  Log:
  Continued work on course verification
  
  
Index: loncom/interface/londocs.pm
diff -u loncom/interface/londocs.pm:1.26 loncom/interface/londocs.pm:1.27
--- loncom/interface/londocs.pm:1.26	Fri Oct 11 14:06:32 2002
+++ loncom/interface/londocs.pm	Tue Oct 15 16:50:19 2002
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Documents
 #
-# $Id: londocs.pm,v 1.26 2002/10/11 18:06:32 www Exp $
+# $Id: londocs.pm,v 1.27 2002/10/15 20:50:19 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -35,9 +35,14 @@
 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 @@
     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,7 @@
     $r->send_http_header;
     return OK if $r->header_only;
 
+  
   if ($ENV{'form.verify'}) {
  
    my $loaderror=&Apache::lonnet::overloaderror($r);
@@ -232,11 +255,45 @@
 
    $r->print('<html><head><title>Verify Content</title></head>'.
               &Apache::loncommon::bodytag('Verify Course Documents'));
-
+   $hashtied=0;
+   &tiehash();
+   foreach (keys %hash) {
+       if ($_=~/^src\_(.+)$/) {
+           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($fn);
+                   if ($result eq OK) {
+                       $r->print('<font color="green">ok</font>');
+                       $r->rflush();
+		       my $dependencies=
+                          &Apache::lonnet::metadata($_,'dependencies');
+                       $r->print('Dependencies: '.$dependencies.'<br>');
+                   } elsif ($result eq HTTP_SERVICE_UNAVAILABLE) {
+                       $r->print(
+                         '<font color="red"><b>connection down</b></font>');
+                   } elsif ($result eq 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?