--- loncom/interface/londocs.pm 2002/10/09 20:16:12 1.24
+++ 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.24 2002/10/09 20:16:12 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('
Verify Content'.
+ &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('
'.
+ ($hash{'title_'.$resid}?$hash{'title_'.$resid}:$fn).' ');
+ if ($fn=~/^\/res\//) {
+ my $result=&Apache::lonnet::repcopy(
+ &Apache::lonnet::filelocation('',$fn));
+ if ($result==OK) {
+ $r->print('ok');
+ $r->rflush();
+ my $dependencies=
+ &Apache::lonnet::metadata($hash{$_},'dependencies');
+ $r->print('Dependencies: '.$dependencies.'
');
+ } elsif ($result==HTTP_SERVICE_UNAVAILABLE) {
+ $r->print(
+ 'connection down');
+ } elsif ($result==HTTP_NOT_FOUND) {
+ $r->print('not found');
+ } else {
+ $r->print(
+ 'access denied');
+ }
+ }
+ }
+ }
+ }
+ &untiehash();
+ } elsif ($ENV{'form.versions'}) {
+ $r->print('Check Versions'.
+ &Apache::loncommon::bodytag('Check Course Document Versions'));
+ $hashtied=0;
+ &tiehash();
+
+ &untiehash();
+ } else {
# is this a standard course?
my $standard=($ENV{'request.course.uri'}=~/^\/uploaded\//);
@@ -327,6 +400,14 @@ ENDNEWSCRIPT
$r->print(''.
&Apache::loncommon::bodytag('Course Documents','',$events));
unless ($showdoc) {
+ if ($allowed) {
+ $r->print(<
+
+
+
+ENDCOURSEVERIFY
+ }
# --------------------------------------------------------- Standard documents
$r->print('');
if (($standard) && ($allowed) && (!$forcesupplement)) {
@@ -504,8 +585,9 @@ ENDSUPFORM
$r->print("Uploaded Document
It is recommended that you use an up-to-date virus scanner before handling this file.
".
&entryline(0,"Click to download or use your browser's Save Link function",$showdoc).'
');
}
- $r->print('