# The LearningOnline Network
# Documents
#
# $Id: londocs.pm,v 1.9 2002/08/21 17:18:08 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
#
# 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.=(<
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;
# 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;
$comment=~s/\>/\>\;/g;
}
# print screen
$r->print(<
The LearningOnline Network with CAPA
ENDDOCUMENT
$r->print(&Apache::loncommon::bodytag('Course Documents'));
# --------------------------------------------------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
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
ENDSUPFORM
}
}
$r->print('