--- loncom/interface/londocs.pm 2005/07/26 22:30:20 1.199
+++ loncom/interface/londocs.pm 2006/01/05 21:17:38 1.216
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Documents
#
-# $Id: londocs.pm,v 1.199 2005/07/26 22:30:20 raeburn Exp $
+# $Id: londocs.pm,v 1.216 2006/01/05 21:17:38 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -166,7 +166,10 @@ sub dumpcourse {
$crs=~s/\_/\//g;
foreach (keys %replacehash) {
my $newfilename=$title.'/'.$replacehash{$_};
+ $newfilename=~s/\.(\w+)$//;
+ my $ext=$1;
$newfilename=&clean($newfilename);
+ $newfilename.='.'.$ext;
my @dirs=split(/\//,$newfilename);
my $path='/home/'.$ca.'/public_html';
my $makepath=$path;
@@ -252,7 +255,7 @@ sub exportbutton {
return '
'.
''.
- &Apache::loncommon::help_open_topic('Docs_Export_Course_Docs');
+ &Apache::loncommon::help_open_topic('Docs_Export_Course_Docs');
}
sub exportcourse {
@@ -656,7 +659,6 @@ sub process_content {
my ($count,$curRes,$cdom,$cnum,$symb,$content_file,$href,$copyresult,$tempexport) = @_;
my $content_type;
my $message;
-# find where user is author or co-author
my @uploads = ();
if ($curRes->is_sequence()) {
$content_type = 'sequence';
@@ -710,6 +712,7 @@ sub process_content {
if ($2 eq $env{'user.domain'} && $3 eq $env{'user.name'}) {
$canedit= 1;
}
+# only include problem code where current user is author
if ($canedit) {
$$content_file = &replicate_content($cdom,$cnum,$tempexport,$symb,$count,\$message,$href,'resource');
} else {
@@ -1111,7 +1114,7 @@ sub editor {
if ($cmd eq 'del') {
my (undef,$url)=split(':',$Apache::lonratedt::resources[$Apache::lonratedt::order[$idx]]);
if (($url=~m|/+uploaded/\Q$coursedom\E/\Q$coursenum\E/|) &&
- ($url!~/\.(page|sequence|problem|exam|quiz|assess|survey|form|library)$/)) {
+ ($url!~/\.(page|sequence|problem|exam|quiz|assess|survey|form|library|task)$/)) {
&Apache::lonnet::removeuploadedurl($url);
} else {
&Apache::lonratedt::makezombie($Apache::lonratedt::order[$idx]);
@@ -1212,6 +1215,8 @@ sub editor {
$r->print('
');
foreach (@Apache::lonratedt::order) {
my ($name,$url)=split(/\:/,$Apache::lonratedt::resources[$_]);
+ $name=&Apache::lonratsrv::qtescape($name);
+ $url=&Apache::lonratsrv::qtescape($url);
unless ($name) { $name=(split(/\//,$url))[-1]; }
unless ($name) { $idx++; next; }
$r->print(&entryline($idx,$name,$url,$folder,$allowed,$_,$coursenum));
@@ -1448,7 +1453,24 @@ sub entryline {
'ct' => 'Cut',
'rn' => 'Rename',
'cp' => 'Copy');
+ my $nocopy=0;
+ if ($url=~/\.(page|sequence)$/) {
+ foreach (&Apache::lonsequence::attemptread(&Apache::lonnet::filelocation('',$url))) {
+ my ($title,$url,$ext,$type)=split(/\:/,$_);
+ if (($url=~/\.(page|sequence)/) && ($type ne 'zombie')) {
+ $nocopy=1;
+ last;
+ }
+ }
+ }
+ my $copylink=' ';
if ($env{'form.pagepath'}) {
+ unless ($nocopy) {
+ $copylink=(<
+$lt{'cp'}
+ENDCOPY
+ }
$line.=(<
@@ -1472,10 +1494,15 @@ sub entryline {
$lt{'ct'}
$lt{'rn'}
-
-$lt{'cp'}
+$copylink
END
} else {
+ unless ($nocopy) {
+ $copylink=(<
+$lt{'cp'}
+ENDCOPY
+ }
$line.=(<
@@ -1498,8 +1525,7 @@ END
$lt{'ct'}
$lt{'rn'}
-
-$lt{'cp'}
+$copylink
END
}
}
@@ -1529,7 +1555,7 @@ END
&Apache::lonnet::allowuploaded('/adm/coursedoc',$url);
}
}
- $url=~s/^http\&colon\;\/\//\/adm\/wrapper\/ext\//;
+ $url=~s-^http(\&colon\;|:)//-/adm/wrapper/ext/-;
if ((!$isfolder) && ($residx) && ($folder!~/supplemental/) && (!$ispage)) {
my $symb=&Apache::lonnet::symbclean(
&Apache::lonnet::declutter('uploaded/'.
@@ -1562,7 +1588,7 @@ END
}
}
my $parameterset=' ';
- if ($isfolder) {
+ if ($isfolder || $extension eq 'sequence') {
my $foldername=&Apache::lonnet::escape($foldertitle);
my $folderpath=$env{'form.folderpath'};
if ($folderpath) { $folderpath.='&' };
@@ -1596,7 +1622,7 @@ END
}
$line.='