--- loncom/lonnet/perl/lonnet.pm 2004/11/27 17:23:08 1.571 +++ 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.571 2004/11/27 17:23:08 raeburn Exp $ +# $Id: lonnet.pm,v 1.573 2004/12/04 18:35:27 banghart Exp $ # # Copyright Michigan State University Board of Trustees # @@ -3812,6 +3812,72 @@ sub mark_as_readonly { return; } +# ------------------------------------------------------------Save Selected Files + +sub save_selected_files { + my ($user, $path, @files) = @_; + my $filename = $user."savedfiles"; + my @other_files = &files_not_in_path($user, $path); + foreach (@other_files) { + &logthis("other dir file $_"); + } + foreach (@files) { + &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'; +} + +sub files_in_path { + my ($user, $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; +} + +# called in portfolio select mode, to show files selected NOT in current directory +sub files_not_in_path { + my ($user, $path) = @_; + my $filename = $user."savedfiles"; + my @return_files; + my $path_part; + open IN, '<'.$Apache::lonnet::perlvar{'lonDaemons'}.'/tmp/'.$filename; + while () { + #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); + } + } + close OUT; + return @return_files; +} + #--------------------------------------------------------------Get Marked as Read Only sub get_marked_as_readonly {