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