--- loncom/lonnet/perl/lonnet.pm 2004/12/04 02:14:19 1.572 +++ loncom/lonnet/perl/lonnet.pm 2004/12/04 18:35:27 1.573 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.572 2004/12/04 02:14:19 banghart Exp $ +# $Id: lonnet.pm,v 1.573 2004/12/04 18:35:27 banghart Exp $ # # Copyright Michigan State University Board of Trustees # @@ -3817,9 +3817,19 @@ sub mark_as_readonly { sub save_selected_files { my ($user, $path, @files) = @_; my $filename = $user."savedfiles"; - open OUT, '>'.$Apache::lonnet::perlvar{'lonDaemons'}.'/tmp/'.$filename; + my @other_files = &files_not_in_path($user, $path); + foreach (@other_files) { + &logthis("other dir file $_"); + } foreach (@files) { - print OUT $ENV{'form.currentpath'}.$_."\n"; + &logthis("current dir file $_"); + } + open OUT, '>'.$Apache::lonnet::perlvar{'lonDaemons'}.'/tmp/'.$filename; + foreach my $file (@files) { + print OUT $ENV{'form.currentpath'}.$file."\n"; + } + foreach my $file (@other_files) { + print OUT $file."\n"; } close OUT; return 'ok'; @@ -3830,6 +3840,18 @@ sub files_in_path { my $filename = $user."savedfiles"; my %return_files; open IN, '<'.$Apache::lonnet::perlvar{'lonDaemons'}.'/tmp/'.$filename; + while (my $line_in = ) { + chomp $line_in; + my @paths_and_file = split m!/!, $line_in; + my $file_part = pop @paths_and_file; + my $path_part = join '/', @paths_and_file; + $path_part.='/'; + my $path_and_file = $path_part.$file_part; + if ($path_part eq $path) { + $return_files{$file_part}= 'selected'; + } + } + close IN; return \%return_files; } @@ -3844,14 +3866,12 @@ sub files_not_in_path { #ok, I know it's clunky, but I want it to work my @paths_and_file = split m!/!, $_; my $file_part = pop @paths_and_file; + chomp $file_part; my $path_part = join '/', @paths_and_file; $path_part .= '/'; my $path_and_file = $path_part.$file_part; if ($path_part ne $path) { push @return_files, ($path_and_file); - &logthis("path part is $path_part file is $file_part"); - } else { - &logthis("path part is $path_part file is $file_part"); } } close OUT;