--- loncom/interface/londocs.pm 2005/02/17 08:29:42 1.167 +++ loncom/interface/londocs.pm 2005/02/21 00:32:45 1.168 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.167 2005/02/17 08:29:42 albertel Exp $ +# $Id: londocs.pm,v 1.168 2005/02/21 00:32:45 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -895,6 +895,14 @@ sub breadcrumbs { @folders=split('&',$ENV{'form.folderpath'}); } my $folderpath; + my $cpinfo=''; + if ($ENV{'form.markedcopy_url'}) { + &Apache::lonnet::logthis('Found '.$ENV{'form.markedcopy_url'}); + $cpinfo='&markedcopy_url='. + &Apache::lonnet::escape($ENV{'form.markedcopy_url'}). + '&markedcopy_title='. + &Apache::lonnet::escape($ENV{'form.markedcopy_title'}); + } while (@folders) { my $folder=shift(@folders); my $foldername=shift(@folders); @@ -903,7 +911,7 @@ sub breadcrumbs { my $url='/adm/coursedocs?folderpath='. &Apache::lonnet::escape($folderpath); &Apache::lonhtmlcommon::add_breadcrumb( - {'href'=>$url, + {'href'=>$url.$cpinfo, 'title'=>&Apache::lonnet::unescape($foldername), 'text'=>''. &Apache::lonnet::unescape($foldername).'' @@ -917,8 +925,6 @@ sub breadcrumbs { sub editor { my ($r,$coursenum,$coursedom,$folder,$allowed)=@_; - - $r->print(&breadcrumbs($folder)); my $errtext=''; my $fatal=0; my $container='sequence'; @@ -931,6 +937,13 @@ sub editor { $Apache::lonratedt::order[0]=1; $Apache::lonratedt::resources[1]=''; } + if (defined($ENV{'form.markcopy'})) { +# Mark for copying + my ($title,$url)=split(':',$Apache::lonratedt::resources[$Apache::lonratedt::order[$ENV{'form.markcopy'}]]); + $ENV{'form.markedcopy_title'}=$title; + $ENV{'form.markedcopy_url'}=$url; + } + $r->print(&breadcrumbs($folder)); if ($fatal) { $r->print('

'.$errtext.'

'); } else { @@ -1001,7 +1014,42 @@ sub editor { } } + if ($ENV{'form.pastemarked'}) { +# paste resource to end of list + my $url=$ENV{'form.markedcopy_url'}; + my $title=$ENV{'form.markedcopy_title'}; +# Maps need to be copied first + if (($url=~/\.(page|sequence)$/) || ($url=~/^\/uploaded\//)) { + $title=&mt('Copy of').' '.$title; + my $newid=$$.time; + $url=~/^(.+)\.(\w+)$/; + my $newurl=$1.$newid.'.'.$2; + my $storefn=$newurl; + $storefn=~s/^\/\w+\/\w+\/\w+\///; + &Apache::loncreatecourse::writefile + ($ENV{'request.course.id'},$storefn, + &Apache::lonnet::getfile($url)); + $url=$newurl; + } + $title=~s/\/\>\;/g; + $title=~s/\:/\:/g; + my $ext='false'; + if ($url=~/^http\:\/\//) { $ext='true'; } + $url=~s/\:/\:/g; +# Now insert the URL at the bottom + my $newidx=1+$#Apache::lonratedt::resources; + $Apache::lonratedt::resources[$newidx]= + $title.':'.$url.':'.$ext.':normal:res'; + $Apache::lonratedt::order[1+$#Apache::lonratedt::order]=$newidx; +# Store the result + ($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container); + if ($fatal) { + $r->print('

'.$errtext.'

'); + return; + } + } # upload a file, if present if (($ENV{'form.uploaddoc.filename'}) && ($ENV{'form.cmd'}=~/^upload_(\w+)/)) { @@ -1137,7 +1185,30 @@ sub editor { unless ($shown) { $r->print(''.&mt('Currently no documents.').''); } - $r->print(''); + $r->print("\n\n"); + if ($ENV{'form.markedcopy_url'}) { + $r->print(<
+ + +ENDPASTE + $r->print( + ' '.&Apache::loncommon::filedescription( + (split(/\./,$ENV{'form.markedcopy_url'}))[-1]).': '. + $ENV{'form.markedcopy_title'}); + if ($container eq 'page') { + $r->print(< + +PAGEINFO + } else { + $r->print(< +FOLDERINFO + } + $r->print('

'); + } } } @@ -1175,10 +1246,24 @@ sub entryline { $pagepath=&Apache::lonnet::escape($ENV{'form.pagepath'}); $pagesymb=&Apache::lonnet::escape($ENV{'form.pagesymb'}); } + my $cpinfo=''; + if ($ENV{'form.markedcopy_url'}) { + $cpinfo='&markedcopy_url='. + &Apache::lonnet::escape($ENV{'form.markedcopy_url'}). + '&markedcopy_title='. + &Apache::lonnet::escape($ENV{'form.markedcopy_title'}); + } if ($allowed) { my $incindex=$index+1; my $selectbox=''; - if ($folder!~/^supplemental/) { + if (($folder!~/^supplemental/) && + ($#Apache::lonratedt::order>0) && + ((split(/\:/, + $Apache::lonratedt::resources[$Apache::lonratedt::order[0]]))[1] + ne '') && + ((split(/\:/, + $Apache::lonratedt::resources[$Apache::lonratedt::order[1]]))[1] + ne '')) { $selectbox= ''. ' + +
- + $lt{
- + $lt{
$selectbox @@ -1215,19 +1303,23 @@ sub entryline { $lt{'rm'} -$lt{'rn'} +$lt{'rn'} + +$lt{'cp'} END } else { $line.=(< + +
- + $lt{
- + $lt{
$selectbox @@ -1235,7 +1327,9 @@ END $lt{'rm'} -$lt{'rn'} +$lt{'rn'} + +$lt{'cp'} END } } @@ -1303,7 +1397,7 @@ END my $folderpath=$ENV{'form.folderpath'}; if ($folderpath) { $folderpath.='&' }; $folderpath.=$folderarg.'&'.$foldername; - $url.='folderpath='.&Apache::lonnet::escape($folderpath); + $url.='folderpath='.&Apache::lonnet::escape($folderpath).$cpinfo; $parameterset='