--- loncom/interface/londocs.pm 2005/06/13 20:23:53 1.189 +++ loncom/interface/londocs.pm 2005/06/29 18:36:41 1.193 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.189 2005/06/13 20:23:53 albertel Exp $ +# $Id: londocs.pm,v 1.193 2005/06/29 18:36:41 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1178,7 +1178,7 @@ sub process_file_upload { my ($upload_output,$coursenum,$coursedom,$allfiles,$codebase) = @_; # upload a file, if present my $parseaction; - if ($env{'form.parserflag'}) { + if ($env{'form.parserflag'}) { $parseaction = 'parse'; } my $phase_status; @@ -1212,7 +1212,9 @@ sub process_file_upload { # probably the only place in the system where this should be "1" my $newidx=&Apache::lonratedt::getresidx(); $destination .= $newidx; - my $url=&Apache::lonnet::userfileupload('uploaddoc',1,$destination,$parseaction,$allfiles,$codebase); + my $url=&Apache::lonnet::userfileupload('uploaddoc',1,$destination, + $parseaction,$allfiles, + $codebase); my $ext='false'; if ($url=~/^http\:\/\//) { $ext='true'; } $url=~s/\:/\:/g; @@ -1227,15 +1229,15 @@ sub process_file_upload { $Apache::lonratedt::resources[$newidx]= $comment.':'.$url.':'.$ext.':normal:res'; - $Apache::lonratedt::order[$#Apache::lonratedt::order+1]= - $newidx; - ($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container); + $Apache::lonratedt::order[$#Apache::lonratedt::order+1]= $newidx; + ($errtext,$fatal)=&storemap($coursenum,$coursedom, + $folder.'.'.$container); if ($fatal) { $$upload_output .= '

'.$errtext.'

'; return 'failed'; } else { if ($parseaction eq 'parse') { - my $total_embedded = keys %{$allfiles}; + my $total_embedded = keys(%{$allfiles}); if ($total_embedded > 0) { my $num = 0; $$upload_output .= 'This file contains embedded multimedia objects, which need to be uploaded to LON-CAPA.
@@ -1247,10 +1249,10 @@ sub process_file_upload { '; $$upload_output .= 'Upload embedded files:
'; - foreach my $embed_file (keys %{$allfiles}) { + foreach my $embed_file (keys(%{$allfiles})) { $$upload_output .= '
'.$embed_file. - ' - '; + ' + '; my $attrib; if (@{$$allfiles{$embed_file}} > 1) { $attrib = join(':',@{$$allfiles{$embed_file}}); @@ -1665,8 +1667,15 @@ sub verifycontent { &mt('Return to DOCS').''); } + # -------------------------------------------------------------- Check Versions +sub devalidateversioncache { + my $src=shift; + &Apache::lonnet::devalidate_cache_new('courseresversion',$env{'request.course.id'}.'_'. + &Apache::lonnet::clutter($src)); +} + sub checkversions { my $r=shift; my $html=&Apache::lonxml::xmlbegin(); @@ -1693,6 +1702,7 @@ sub checkversions { foreach (keys %hash) { if ($_=~/^ids\_(\/res\/.+)$/) { $newsetversions{$1}='mostrecent'; + &devalidateversioncache($1); } } } elsif ($env{'form.setcurrent'}) { @@ -1702,6 +1712,7 @@ sub checkversions { my $getvers=&Apache::lonnet::getversion($1); if ($getvers>0) { $newsetversions{$1}=$getvers; + &devalidateversioncache($1); } } } @@ -1712,6 +1723,7 @@ sub checkversions { my $src=$1; if (($env{$_}) && ($env{$_} ne $setversions{$src})) { $newsetversions{$src}=$env{$_}; + &devalidateversioncache($src); } } } @@ -1941,7 +1953,7 @@ sub changewarning { if (defined($env{'form.pagepath'})) { $pathvar='pagepath'; $path=&Apache::lonnet::escape($env{'form.pagepath'}); - $path.='&symb='.&Apache::lonnet::escape($env{'form.pagesymb'}); + $path.='&pagesymb='.&Apache::lonnet::escape($env{'form.pagesymb'}); } $url='/adm/coursedocs?'.$pathvar.'='.$path; } @@ -2242,7 +2254,9 @@ ENDNEWSCRIPT if ($allowed) { if (($env{'form.uploaddoc.filename'}) && ($env{'form.cmd'}=~/^upload_(\w+)/)) { # Process file upload - phase one - upload and parse primary file. - $upload_result = &process_file_upload(\$upload_output,$coursenum,$coursedom,\%allfiles,\%codebase); + $upload_result = &process_file_upload(\$upload_output,$coursenum, + $coursedom,\%allfiles, + \%codebase); if ($upload_result eq 'phasetwo') { $r->print($upload_output); } @@ -2308,8 +2322,7 @@ ENDNEWSCRIPT my $saveresult; my $docuname=$env{'course.'.$env{'request.course.id'}.'.num'}; my $docudom=$env{'course.'.$env{'request.course.id'}.'.domain'}; - my $docuhome=$env{'course.'.$env{'request.course.id'}.'.home'}; - my $url = &Apache::lonnet::store_edited_file($primary_url,$content,$docudom,$docuname,$docuhome,\$saveresult); + my $url = &Apache::lonnet::store_edited_file($primary_url,$content,$docudom,$docuname,\$saveresult); } else { &Apache::lonnet::logthis('retrieval of uploaded file - '.$primary_url.' - for editing, failed: '.$getstatus); } @@ -2445,8 +2458,9 @@ $uploadtag
-$lt{'parse'}? +