--- loncom/interface/londocs.pm 2007/01/26 23:37:53 1.270 +++ loncom/interface/londocs.pm 2007/06/15 19:12:56 1.277 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.270 2007/01/26 23:37:53 albertel Exp $ +# $Id: londocs.pm,v 1.277 2007/06/15 19:12:56 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -904,15 +904,16 @@ sub store_template { # Imports the given (name, url) resources into the course # coursenum, coursedom, and folder must precede the list sub group_import { - my $coursenum = shift; - my $coursedom = shift; - my $folder = shift; - my $container = shift; - my $caller = shift; - while (@_) { - my $name = shift; - my $url = shift; - if (($url =~ m{^/uploaded/\Q$coursedom\E/\Q$coursenum\E/(default_\d+\.)(page|sequence)$}) && ($caller eq 'londocs')) { + my ($coursenum, $coursedom, $folder, $container, $caller, @files) = @_; + + while (@files) { + my $name = shift(@files); + my $url = shift(@files); + #FIXME check if file exists before overwriting, might be restoring it + if (($url =~ m{^/uploaded/\Q$coursedom\E/\Q$coursenum\E/(default_\d+\.)(page|sequence)$}) + && ($caller eq 'londocs') + && (!&Apache::lonnet::stat_file($url))) { + my $errtext = ''; my $fatal = 0; my $newmapstr = ''."\n". @@ -936,8 +937,8 @@ sub group_import { $LONCAPA::map::order[$#LONCAPA::map::order+1]=$idx; my $ext = 'false'; if ($url=~m{^http://} || $url=~m{^https://}) { $ext = 'true'; } - $url =~ &LONCAPA::map::qtunescape($url); - $name =~ &LONCAPA::map::qtunescape($name); + $url = &LONCAPA::map::qtunescape($url); + $name = &LONCAPA::map::qtunescape($name); $LONCAPA::map::resources[$idx] = join ':', ($name, $url, $ext, 'normal', 'res'); } @@ -1448,7 +1449,7 @@ sub editor { foreach (@LONCAPA::map::order) { my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$_]); $name=&LONCAPA::map::qtescape($name); - $url =&LONCAPA::map::qtescape($url); + $url=&LONCAPA::map::qtescape($url); unless ($name) { $name=(split(/\//,$url))[-1]; } unless ($name) { $idx++; next; } $r->print(&entryline($idx,$name,$url,$folder,$allowed,$_,$coursenum)); @@ -1574,36 +1575,50 @@ sub process_file_upload { } sub ask_for_embedded_content { - my ($actionurl,$state,$allfiles,$codebase)=@_; + my ($actionurl,$state,$allfiles,$codebase,$args)=@_; my $upload_output = '
'; $upload_output .= $state; - $upload_output .= 'Upload embedded files:
- '; + $upload_output .= 'Upload embedded files:
'. + &Apache::loncommon::start_data_table(); my $num = 0; - foreach my $embed_file (keys(%{$allfiles})) { - $upload_output .= ''; + $upload_output .= ''.&Apache::loncommon::end_data_table_row(); $num++; } - $upload_output .= '
'.$embed_file.' + foreach my $embed_file (sort {lc($a) cmp lc($b)} keys(%{$allfiles})) { + $upload_output .= &Apache::loncommon::start_data_table_row(). + ''.$embed_file.''; + if ($args->{'ignore_remote_references'} + && $embed_file =~ m{^\w+://}) { + $upload_output.=''.&mt("URL points to other server.").''; + } elsif ($args->{'error_on_invalid_names'} + && $embed_file ne &Apache::lonnet::clean_filename($embed_file,{'keep_path' => 1,})) { + + $upload_output.=''.&mt("Invalid characters").''; + + } else { + + $upload_output .=' '; - my $attrib = join(':',@{$$allfiles{$embed_file}}); - $upload_output .= - "\n\t\t". - ''; - if (exists($$codebase{$embed_file})) { - $upload_output .= + my $attrib = join(':',@{$$allfiles{$embed_file}}); + $upload_output .= "\n\t\t". - ''; + ''; + if (exists($$codebase{$embed_file})) { + $upload_output .= + "\n\t\t". + ''; + } } - $upload_output .= '

+ $upload_output .= &Apache::loncommon::end_data_table().'
- + + '.&mt('(only files for which a location has been provided will be uploaded)').'
'; return $upload_output; } @@ -1872,7 +1887,7 @@ END (&LONCAPA::map::getparameter($orderidx, 'parameter_randompick'))[0]. '" />'. -''.&mt('Store').''; +''.&mt('Save').''; } if ($ispage) { @@ -2131,9 +2146,9 @@ sub checkversions { if (&Apache::lonnet::put('resourceversions',\%newsetversions, $env{'course.'.$env{'request.course.id'}.'.domain'}, $env{'course.'.$env{'request.course.id'}.'.num'}) eq 'ok') { - $r->print('

'.&mt('Your Version Settings have been Stored').'

'); + $r->print('

'.&mt('Your Version Settings have been Saved').'

'); } else { - $r->print('

'.&mt('An Error Occured while Attempting to Store your Version Settings').'

'); + $r->print('

'.&mt('An Error Occured while Attempting to Save your Version Settings').'

'); } &mark_hash_old(); }