--- loncom/interface/londocs.pm 2002/07/24 20:25:23 1.1 +++ loncom/interface/londocs.pm 2002/08/19 21:15:08 1.7 @@ -1,20 +1,74 @@ # The LearningOnline Network -# Printout +# Documents # -# (Internal Server Error Handler +# $Id: londocs.pm,v 1.7 2002/08/19 21:15:08 www Exp $ # -# (Login Screen -# 5/21/99,5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14, -# 1/14/00,5/29,5/30,6/1,6/29,7/1,11/9 Gerd Kortemeyer) +# Copyright Michigan State University Board of Trustees # -# 3/1/1 Gerd Kortemeyer) +# This file is part of the LearningOnline Network with CAPA (LON-CAPA). # -# 3/1 Gerd Kortemeyer +# LON-CAPA is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. # -package Apache::lonprintout; +# LON-CAPA is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LON-CAPA; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# /home/httpd/html/adm/gpl.txt +# +# http://www.lon-capa.org/ +# + +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; @@ -22,18 +76,113 @@ sub handler { $r->send_http_header; return OK if $r->header_only; -# --------------------------------------------------- Print login screen header +# 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']); + } + +# 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(< The LearningOnline Network with CAPA -

Printout

- - - +

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:
+ + +
+ENDFORM + } + + foreach (@Apache::lonratedt::resources) { + $r->print($_.'
'); + } + + $r->print(''); return OK; }