--- loncom/interface/londocs.pm 2002/07/31 13:50:38 1.3 +++ loncom/interface/londocs.pm 2002/08/28 14:11:27 1.13 @@ -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.13 2002/08/28 14:11:27 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -30,33 +30,279 @@ 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 +# @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); +} + +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('+ |
+ |