--- loncom/interface/londocs.pm 2002/07/31 13:50:38 1.3 +++ loncom/interface/londocs.pm 2002/08/19 21:15:08 1.7 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.3 2002/07/31 13:50:38 www Exp $ +# $Id: londocs.pm,v 1.7 2002/08/19 21:15:08 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -30,6 +30,45 @@ package Apache::londocs; use strict; use Apache::Constants qw(:common); +use Apache::lonnet; +use Apache::loncommon; +use Apache::lonratedt; +use Apache::lonratsrv; + + +# Mapread read maps into lonratedt::global arrays +# @links and @resources, determines status +# sets @order - pointer to resources in right order +# sets @resources - array with the resources with correct idx +# + +sub mapread { + my ($coursenum,$coursedom,$map)=@_; + return + &Apache::lonratedt::mapread('/uploaded/'.$coursedom.'/'.$coursenum.'/'. + $map); +} + +sub storemap { + my ($coursenum,$coursedom,$map)=@_; + return + &Apache::lonratedt::storemap('/uploaded/'.$coursedom.'/'.$coursenum.'/'. + $map); +} + +sub editor { + my ($r,$coursenum,$coursedom,$folder,$allowed)=@_; + my ($errtext,$fatal)= + &mapread($coursenum,$coursedom,$folder.'.sequence'); + if ($fatal) { + $r->print('

'.$errtext.'

'); + } else { +# ------------------------------------------------------------ Process commands + if ($allowed) { + } +# ---------------------------------------------------------------- Print screen + } +} sub handler { my $r = shift; @@ -37,11 +76,53 @@ sub handler { $r->send_http_header; return OK if $r->header_only; - my $url; +# is this a standard course? + + &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['folder']); + my $standard=($ENV{'request.course.uri'}=~/^\/uploaded\//); + my $forcestandard=($ENV{'form.folder'}=~/^default_/); + my $forcesupplement=($ENV{'form.folder'}=~/^supplement_/); + +# does this user have privileges to post, etc? + my $allowed=&Apache::lonnet::allowed('srm',$ENV{'request.course.id'}); + + if ($allowed) { + &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, + ['remove']); + } - if ($ENV{'form.uploaddoc.filename'}) { - $url=&Apache::lonnet::userfileupload('uploaddoc'); +# get course data + my $coursenum=$ENV{'course.'.$ENV{'request.course.id'}.'.num'}; + my $coursedom=$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}; + + +# upload a file + if (($ENV{'form.uploaddoc.filename'}) && ($allowed)) { + my $id=time.'_'.$ENV{'user.name'}.'_'.$ENV{'user.domain'}; +# this is for a course, not a user, so set coursedoc flag +# probably the only place in the system where this should be "1" + my $url=&Apache::lonnet::userfileupload('uploaddoc',1); + if ($url=~/^error\:/) { + } else { + my $comment=$ENV{'form.comment'}; + $comment=~s/\/\>\;/g; + &Apache::lonnet::put('coursedocs', + { $id.'.url' => $url, + $id.'.comment' => $comment }, + $coursedom,$coursenum); + } } + +# delete a file + if ($ENV{'form.remove'}=~/$ENV{'user.name'}\_$ENV{'user.domain'}$/) { + my $id=$ENV{'form.remove'}; + &Apache::lonnet::del('coursedocs', + [$id.'.url',$id.'.comment'], + $coursedom,$coursenum); + } + +# print screen $r->print(< @@ -49,14 +130,59 @@ sub handler {

Course Documents

+ENDDOCUMENT +# --------------------------------------------------0------ Standard documents + if (($standard) && ($allowed) && (!$forcesupplement)) { + $r->print('

Main Course Documents

'); + my $folder=$ENV{'form.folder'}; + unless ($folder) { $folder='default'; } + &editor($r,$coursenum,$coursedom,$folder,$allowed); + $r->print('
'); + } +# ----------------------------------------------------- Supplemental documents + if (!$forcestandard) { + $r->print('

Supplemental Course Documents

'); + my $folder=$ENV{'form.folder'}; + unless ($folder) { $folder='supplemental'; } + &editor($r,$coursenum,$coursedom,$folder,$allowed); + } +# ------------------------------------------------------- Print headers to docs + my %currentdocs=&Apache::lonnet::dump('coursedocs',$coursedom,$coursenum); + foreach (sort keys (%currentdocs)) { + if ($_=~/(\d+)\_(\w+)\_(\w+)\.url/) { + $r->print('
'.localtime($1).' '.$2.' '.$3.'
'. + &Apache::lontexconvert::msgtexconverted( + $currentdocs{$1.'_'.$2.'_'.$3.'.comment'} + ). + '
View'); + if (($2 eq $ENV{'user.name'}) && ($3 eq $ENV{'user.domain'}) + && ($allowed)) { + $r->print(' Remove'); + } + } + } +# ----------------------------------------------------------------- Upload form + if ($allowed) { + $r->print(< +

Post a new course document

- + +
Comment:
+
-$url - - -ENDDOCUMENT +ENDFORM + } + + foreach (@Apache::lonratedt::resources) { + $r->print($_.'
'); + } + + $r->print(''); return OK; }