--- loncom/interface/londocs.pm 2002/08/01 15:26:23 1.6 +++ loncom/interface/londocs.pm 2002/09/02 15:27:08 1.15 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.6 2002/08/01 15:26:23 www Exp $ +# $Id: londocs.pm,v 1.15 2002/09/02 15:27:08 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -32,92 +32,304 @@ use strict; use Apache::Constants qw(:common); use Apache::lonnet; use Apache::loncommon; +use Apache::lonratedt; +use Apache::lonratsrv; +use Apache::lonxml; +my $iconpath; + +# Mapread read maps into lonratedt::global arrays +# @order 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,1); +} + +sub editor { + my ($r,$coursenum,$coursedom,$folder,$allowed)=@_; + my $errtext=''; + my $fatal=0; + ($errtext,$fatal)= + &mapread($coursenum,$coursedom,$folder.'.sequence'); + if ($fatal) { + $r->print('
'.$errtext.'
'); + } else { +# ------------------------------------------------------------ Process commands + if ($allowed) { +# upload a file, if present + if (($ENV{'form.uploaddoc.filename'}) && + ($ENV{'form.cmd'}=~/^upload_(\w+)/)) { + if ($folder=~/^$1/) { +# 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 $ext='false'; + if ($url=~/^http\:\/\//) { $ext='true'; } + $url=~s/\:/\:/g; + my $comment=$ENV{'form.comment'}; + $comment=~s/\\<\;/g; + $comment=~s/\>/\>\;/g; + $comment=~s/\:/\:/g; + my $newidx=$#Apache::lonratedt::resources+1; + $Apache::lonratedt::resources[$newidx]= + $comment.':'.$url.':'.$ext.':normal:res'; + $Apache::lonratedt::order[$#Apache::lonratedt::order+1]= + $newidx; + &storemap($coursenum,$coursedom,$folder.'.sequence'); + } + } + if ($ENV{'form.cmd'}) { + my ($cmd,$idx)=split(/\_/,$ENV{'form.cmd'}); + if ($cmd eq 'del') { + for (my $i=$idx;$i<$#Apache::lonratedt::order;$i++) { + $Apache::lonratedt::order[$i]= + $Apache::lonratedt::order[$i+1]; + } + $#Apache::lonratedt::order--; + } elsif ($cmd eq 'up') { + my $i=$Apache::lonratedt::order[$idx-1]; + $Apache::lonratedt::order[$idx-1]= + $Apache::lonratedt::order[$idx]; + $Apache::lonratedt::order[$idx]=$i; + } elsif ($cmd eq 'down') { + my $i=$Apache::lonratedt::order[$idx+1]; + $Apache::lonratedt::order[$idx+1]= + $Apache::lonratedt::order[$idx]; + $Apache::lonratedt::order[$idx]=$i; + } +# Store the changed version + &storemap($coursenum,$coursedom,$folder.'.sequence'); + } +# Group import/search + if ($ENV{'form.importdetail'}) { + foreach (split(/\&/,$ENV{'form.importdetail'})) { + if (defined($_)) { + my ($name,$url)=split(/\=/,$_); + $name=&Apache::lonnet::unescape($name); + $url=&Apache::lonnet::unescape($url); + if ($url) { + my $idx=$#Apache::lonratedt::resources+1; + $Apache::lonratedt::order + [$#Apache::lonratedt::order+1]=$idx; + my $ext='false'; + if ($url=~/^http\:\/\//) { $ext='true'; } + $url=~s/\:/\:/g; + $Apache::lonratedt::resources[$idx]= + $name.':'.$url.':'.$ext.':normal:res'; + } + } + } +# Store the changed version + &storemap($coursenum,$coursedom,$folder.'.sequence'); + } + } +# ---------------------------------------------------------------- Print screen + my $idx=0; + $r->print('+ |
+ |
'. - &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(&Apache::loncommon::bodytag('Course Documents','',$events)); +# --------------------------------------------------0------ Standard documents + if (($standard) && ($allowed) && (!$forcesupplement)) { + $r->print('