--- loncom/interface/londocs.pm 2005/02/17 08:29:42 1.167
+++ loncom/interface/londocs.pm 2005/03/10 02:34:58 1.170
@@ -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.170 2005/03/10 02:34:58 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;
+ $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(<');
+ }
}
}
@@ -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=
''.
'