'.
'';
+ &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;
@@ -223,7 +224,7 @@ sub dumpcourse {
$title=$_;
}
$title=~s/\.(\w+)$//;
- $title=~s/\W+/\_/gs;
+ $title=~s/[^\w\/]+/\_/gs;
$title.='.'.$ext;
$r->print("\n
\n");
}
@@ -261,45 +262,25 @@ sub group_import {
sub breadcrumbs {
my ($where)=@_;
&Apache::lonhtmlcommon::clear_breadcrumbs();
- if ($where =~ /^default/) {
- &Apache::lonhtmlcommon::add_breadcrumb({'href'=>'/adm/coursedocs',
- 'title'=>'Main Course Documents',
- 'text' =>'Main Course Documents'});
- } elsif ($where =~ /^supplemental/) {
- &Apache::lonhtmlcommon::add_breadcrumb({'href'=>'/adm/coursedocs',
- 'title'=>'Supplemental Course Documents',
- 'text' =>'Supplemental Course Documents'});
-
- } else {
- &Apache::lonhtmlcommon::add_breadcrumb({'href'=>'/adm/coursedocs',
- 'title'=>$where,
- 'text' =>$where});
- }
- if ($ENV{'form.foldername'}) {
- my @folders;
- if (defined($ENV{'form.folders'})) {
- @folders=@{$ENV{'form.folders'}};
- }
- @folders=(@folders,$ENV{'form.folder'},
- &Apache::lonnet::escape($ENV{'form.foldername'}));
-
- my $folderpath;
- while (@folders) {
- my $folder=shift(@folders);
- my $foldername=shift(@folders);
- if ($folderpath) {$folderpath.='&';}
- $folderpath.=$folder.'&'.$foldername;
- my $url='/adm/coursedocs?folderpath='.
- &Apache::lonnet::escape($folderpath);
+ my (@folders)=split('&',$ENV{'form.folderpath'});
+ my $folderpath;
+ while (@folders) {
+ my $folder=shift(@folders);
+ my $foldername=shift(@folders);
+ if ($folderpath) {$folderpath.='&';}
+ $folderpath.=$folder.'&'.$foldername;
+ my $url='/adm/coursedocs?folderpath='.
+ &Apache::lonnet::escape($folderpath);
&Apache::lonhtmlcommon::add_breadcrumb(
{'href'=>$url,
'title'=>&Apache::lonnet::unescape($foldername),
- 'text'=>&Apache::lonnet::unescape($foldername)});
+ 'text'=>''.
+ &Apache::lonnet::unescape($foldername).''
+ });
- }
}
- return &Apache::lonhtmlcommon::breadcrumbs();
+ return &Apache::lonhtmlcommon::breadcrumbs(undef,undef,undef,undef,undef,0);
}
sub editor {
@@ -318,15 +299,80 @@ sub editor {
$r->print('
'.$errtext.'
');
} else {
# ------------------------------------------------------------ Process commands
+
# ---------------- if they are for this folder and user allowed to make changes
if (($allowed) && ($ENV{'form.folder'} eq $folder)) {
+# 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 {
+ &Apache::lonratedt::delparameter($idx,'parameter_randompick');
+ }
+ if ($ENV{'form.hidprs_'.$idx}) {
+ &Apache::lonratedt::storeparameter($idx,'parameter_hiddenresource','yes','string_yesno');
+ } else {
+ &Apache::lonratedt::delparameter($idx,'parameter_hiddenresource');
+ }
+ if ($ENV{'form.encprs_'.$idx}) {
+ &Apache::lonratedt::storeparameter($idx,'parameter_encrypturl','yes','string_yesno');
+ } else {
+ &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;
@@ -354,6 +400,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];
@@ -444,6 +494,9 @@ sub editor {
$r->print(&entryline($idx,$name,$url,$folder,$allowed,$_,$coursenum));
$idx++;
}
+ unless ($idx) {
+ $r->print('
'.&mt('Currently no documents.').'
');
+ }
$r->print('');
}
}
@@ -457,6 +510,7 @@ sub entryline {
&Apache::lonnet::unescape($title)),'"<>&\'');
my $renametitle=$title;
my $foldertitle=$title;
+ my $orderidx=$Apache::lonratedt::order[$index];
if ($title=~ /^(\d+)___&&&___(\w+)___&&&___(\w+)___&&&___(.*)$/ ) {
$foldertitle=&Apache::lontexconvert::msgtexconverted($4);
$renametitle=$4;
@@ -467,17 +521,36 @@ sub entryline {
$renametitle=~s/\"\;/\\\"/g;
my $line='
';
# Edit commands
+ my $folderpath;
+ if ($ENV{'form.folderpath'}) {
+ $folderpath=&Apache::lonnet::escape($ENV{'form.folderpath'});
+ # $htmlfoldername=&HTML::Entities::encode($ENV{'form.foldername'},'<>&"');
+ }
if ($allowed) {
- my %lt=('up' => 'Move Up',
+ my $incindex=$index+1;
+ my $selectbox='';
+ if ($folder!~/^supplemental/) {
+ $selectbox=
+ ''.
+ '';
+ }
+ my %lt=&Apache::lonlocal::texthash(
+ 'up' => 'Move Up',
'dw' => 'Move Down',
'rm' => 'Remove',
'rn' => 'Rename');
- my $folderpath;
- if ($ENV{'form.folderpath'}) {
- $folderpath=&Apache::lonnet::escape($ENV{'form.folderpath'});
- # $htmlfoldername=&HTML::Entities::encode($ENV{'form.foldername'},'<>&"');
- }
$line.=(<
+
+