--- loncom/interface/londocs.pm 2004/05/06 17:55:03 1.123 +++ loncom/interface/londocs.pm 2004/08/03 20:44:33 1.136 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.123 2004/05/06 17:55:03 www Exp $ +# $Id: londocs.pm,v 1.136 2004/08/03 20:44:33 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -121,7 +121,8 @@ sub dumpbutton { if ($home) { return ''. ''; + &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"); } @@ -321,33 +323,57 @@ sub editor { &Apache::lonratedt::delparameter($idx,'parameter_encrypturl'); } - ($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.sequence'); - if ($fatal) { - $r->print('

'.$errtext.'

'); - return; - } if ($ENV{'form.newpos'}) { # change order my $newpos=$ENV{'form.newpos'}-1; - $r->print('Sorting '.$idx.' -> '.$newpos); - ($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.sequence'); - if ($fatal) { - $r->print('

'.$errtext.'

'); - return; + 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; @@ -375,6 +401,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]; @@ -465,6 +495,9 @@ sub editor { $r->print(&entryline($idx,$name,$url,$folder,$allowed,$_,$coursenum)); $idx++; } + unless ($idx) { + $r->print(''.&mt('Currently no documents.').''); + } $r->print(''); } } @@ -499,6 +532,7 @@ sub entryline { my $selectbox=''; if ($folder!~/^supplemental/) { $selectbox= + ''. ' +$help{'Verify_Content'} - + $help{'Check_Resource_Versions'} $dumpbut @@ -1266,8 +1348,9 @@ ENDCOURSEVERIFY $hadchanges=0; &editor($r,$coursenum,$coursedom,$folder,$allowed); if ($hadchanges) { - &changewarning($r,$postexec); + &mark_hash_old() } + &changewarning($r,$postexec); my $folderseq='/uploaded/'.$coursedom.'/'.$coursenum.'/default_'.time. '.sequence'; $r->print(< - + $help{'Uploading_From_Harddrive'}