--- loncom/interface/londocs.pm 2002/07/24 20:40:58 1.2 +++ loncom/interface/londocs.pm 2002/08/20 13:02:41 1.8 @@ -1,39 +1,202 @@ # The LearningOnline Network # Documents # -# (Internal Server Error Handler +# $Id: londocs.pm,v 1.8 2002/08/20 13:02:41 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. # +# 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; + +my $iconpath; + +# 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) { + if ($ENV{'form.cmd'}) { + } + } +# ---------------------------------------------------------------- Print screen + } +} + +# --------------------------------------------------------------- An entry line + +sub entryline { + my ($index,$title,$url,$folder,$allowed)=@_; + my $line=''; +# Edit commands + if ($allowed) { + $line.=(< + + +
+UP
+DOWN
+Remove +END + } +# URL + $line.='View'; +# Title + $title=&Apache::lonnet::unescape($title); + if ($title=~ + /^(\d+)\_\_\_\&\&\&\_\_\_(\w+)\_\_\_\&\&\&\_\_\_(\w+)\_\_\_\&\&\&\_\_\_(.*)$/ + ) { $title=''.localtime($1).' '.$2.' at '.$3.':
'. + &Apache::lontexconvert::msgtexconverted($4); + } + $line.='$title'; + $line.=''; + return $line; +} + +# ================================================================ Main Handler sub handler { my $r = shift; $r->content_type('text/html'); $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'}); + my $script=''; + if ($allowed) { + &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['cmd']); + $script=&Apache::lonratedt::editscript('docs'); + } + +# get course data + my $coursenum=$ENV{'course.'.$ENV{'request.course.id'}.'.num'}; + my $coursedom=$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}; + +# graphics settings + + $iconpath = $r->dir_config('lonIconsURL') . "/"; + +# upload a file, if present + if (($ENV{'form.uploaddoc.filename'}) && ($allowed)) { +# 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); + my $comment=$ENV{'form.comment'}; + $comment=~s/\/\>\;/g; + } + +# 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(<Post a new main course document +
+ +
+Title: + + + +
+ENDFORM + $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); + if ($allowed) { + $r->print(<Post a new supplemental course document +
+ +
Comment:
+ + + + +
+ENDSUPFORM + } + } + + $r->print(''); return OK; }