'.
'';
+ &mt('Dump Course DOCS to Construction Space').'" />'.
+ &Apache::loncommon::help_open_topic('Docs_Dump_Course_Docs');
} else {
return'
'.
&mt('Dump Course DOCS to Construction Space: available on other servers');
@@ -156,7 +157,7 @@ sub dumpcourse {
$crs=~s/\_/\//g;
foreach (keys %replacehash) {
my $newfilename=$title.'/'.$replacehash{$_};
- $newfilename=~s/[^\w\/\.]+/\_/g;
+ $newfilename=~s/[^\w\/\.\/]+/\_/g;
my @dirs=split(/\//,$newfilename);
my $path='/home/'.$ca.'/public_html';
my $makepath=$path;
@@ -200,7 +201,8 @@ sub dumpcourse {
$r->print(
'');
} else {
- $r->print('');
+ $r->print('');
}
}
}
@@ -223,7 +225,7 @@ sub dumpcourse {
$title=$_;
}
$title=~s/\.(\w+)$//;
- $title=~s/\W+/\_/gs;
+ $title=~s/[^\w\/]+/\_/gs;
$title.='.'.$ext;
$r->print("\n
\n");
}
@@ -279,7 +281,8 @@ sub breadcrumbs {
}
- return &Apache::lonhtmlcommon::breadcrumbs(undef,undef,undef,undef,undef,0);
+ return &Apache::lonhtmlcommon::breadcrumbs(undef,undef,undef,undef,undef,
+ 0,'nohelp');
}
sub editor {
@@ -301,9 +304,10 @@ sub editor {
# ---------------- if they are for this folder and user allowed to make changes
if (($allowed) && ($ENV{'form.folder'} eq $folder)) {
-# set parameters
+# set parameters and change order
if (defined($ENV{'form.setparms'})) {
my $idx=$ENV{'form.setparms'};
+# set parameters
if ($ENV{'form.randpick_'.$idx}) {
&Apache::lonratedt::storeparameter($idx,'parameter_randompick',$ENV{'form.randpick_'.$idx},'int_pos');
} else {
@@ -320,19 +324,57 @@ sub editor {
&Apache::lonratedt::delparameter($idx,'parameter_encrypturl');
}
+ if ($ENV{'form.newpos'}) {
+# change order
+
+ my $newpos=$ENV{'form.newpos'}-1;
+ my $currentpos=$ENV{'form.currentpos'}-1;
+ my $i;
+ my @neworder=();
+ if ($newpos>$currentpos) {
+# moving stuff up
+ for ($i=0;$i<$currentpos;$i++) {
+ $neworder[$i]=$Apache::lonratedt::order[$i];
+ }
+ for ($i=$currentpos;$i<$newpos;$i++) {
+ $neworder[$i]=$Apache::lonratedt::order[$i+1];
+ }
+ $neworder[$newpos]=$Apache::lonratedt::order[$currentpos];
+ for ($i=$newpos+1;$i<=$#Apache::lonratedt::order;$i++) {
+ $neworder[$i]=$Apache::lonratedt::order[$i];
+ }
+ } else {
+# moving stuff down
+ for ($i=0;$i<$newpos;$i++) {
+ $neworder[$i]=$Apache::lonratedt::order[$i];
+ }
+ $neworder[$newpos]=$Apache::lonratedt::order[$currentpos];
+ for ($i=$newpos+1;$i<$currentpos+1;$i++) {
+ $neworder[$i]=$Apache::lonratedt::order[$i-1];
+ }
+ for ($i=$currentpos+1;$i<=$#Apache::lonratedt::order;$i++) {
+ $neworder[$i]=$Apache::lonratedt::order[$i];
+ }
+ }
+ @Apache::lonratedt::order=@neworder;
+ }
+# store the changed version
+
($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.sequence');
if ($fatal) {
$r->print('
'.$errtext.'
');
return;
}
+
}
+
# upload a file, if present
if (($ENV{'form.uploaddoc.filename'}) &&
($ENV{'form.cmd'}=~/^upload_(\w+)/)) {
if ( ($folder=~/^$1/) || ($1 eq 'default') ) {
# 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 $url=&Apache::lonnet::userfileupload('uploaddoc',1,'docs');
my $ext='false';
if ($url=~/^http\:\/\//) { $ext='true'; }
$url=~s/\:/\:/g;
@@ -360,6 +402,10 @@ sub editor {
if ($ENV{'form.cmd'}) {
my ($cmd,$idx)=split(/\_/,$ENV{'form.cmd'});
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/|) {
+ &Apache::lonnet::removeuploadedurl($url);
+ }
for (my $i=$idx;$i<$#Apache::lonratedt::order;$i++) {
$Apache::lonratedt::order[$i]=
$Apache::lonratedt::order[$i+1];
@@ -450,6 +496,9 @@ sub editor {
$r->print(&entryline($idx,$name,$url,$folder,$allowed,$_,$coursenum));
$idx++;
}
+ unless ($idx) {
+ $r->print('
'.&mt('Currently no documents.').'
');
+ }
$r->print('');
}
}
@@ -480,6 +529,21 @@ sub entryline {
# $htmlfoldername=&HTML::Entities::encode($ENV{'form.foldername'},'<>&"');
}
if ($allowed) {
+ my $incindex=$index+1;
+ my $selectbox='';
+ if ($folder!~/^supplemental/) {
+ $selectbox=
+ ''.
+ '';
+ }
my %lt=&Apache::lonlocal::texthash(
'up' => 'Move Up',
'dw' => 'Move Down',
@@ -496,7 +560,9 @@ sub entryline {