--- loncom/interface/portfolio.pm 2004/06/18 23:59:55 1.3 +++ loncom/interface/portfolio.pm 2004/06/28 16:07:47 1.8 @@ -33,36 +33,227 @@ use Apache::lontexconvert; use Apache::lonfeedback; use Apache::lonlocal; +# receives a file name assumed to reside in username/userfiles/portfolio/ +# returns a form consisting of a single submit button labeled with the filename +sub makeAnchor { + my ($fileName, $currentPath) = @_; + my $anchor = ''.$fileName.''; +# my $button = ' +#
+# '; + return $anchor; +} + +# returns html with'); + #grab stuff that was sent + &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, + ['selectfile','currentpath', + 'currentfile']); + $r->print (''); + return OK; } 1;
CP= '.$ENV{'form.currentpath'}.'
'); + # currentPath and currentFile need to be set for the rest of things to happen + # sometimes, currentFile will be passed by a form field, selectedfile + # if there is no 'form.selectedfile' then the current directory is + # considered as selected + if ($ENV{'form.currentpath'}) { + $currentPath = $ENV{'form.currentpath'}; + } else { + $currentPath = '/'; + } + if ($ENV{'form.selectfile'}) { + $r->print('
found selectfile'.$ENV{'form.selectfile'} .'
'); + # have to check if the selected file is a subdirectory + if ($ENV{'form.selectfile'} =~ /-\(Dir\)/) { + # $currentPath =~ /\-\(Dir\)/; + $currentPath = $`.'/'; + $r->print('
'.$currentPath.'
'); + } + $currentFile = $ENV{'form.selectfile'}; + } else { + $currentFile = ''; + } + # if we're uploading a file, we need to do it early so it will show in the directory list + if ($ENV{'form.uploaddoc.filename'}) { + $r->print($ENV{'form.storeupl'}.'
'); + $r->print(&Apache::lonnet::userfileupload('uploaddoc','','portfolio'.$currentPath).'
'); + } + # similarly, we need to delete or rename files before getting directory list + if ($ENV{'form.selectfile'}) { + if ($ENV{'form.fileaction'} eq 'delete') { + &Apache::lonnet::portfoliomanage($ENV{'form.selectfile'}, 'delete', undef ); + $currentFile = ''; + } elsif($ENV{'form.fileaction'} eq 'rename') { + &Apache::lonnet::portfoliomanage($ENV{'form.selectfile'}, 'rename', $ENV{'form.filenewname'} ); + # $r->print('We will rename your file'); + } + } + # we always need $dirList, plus this will return information about the current file + # as well as information about he home server directory structure, specifically + # the path to the users userfiles directory. + @dirList = split /
/, (&Apache::lonnet::portfoliolist($currentPath, $currentFile)); + # portfoliolist returns isdir, isfile and udir as the final array elements + # we'll pop them off the bottom of the array, and put them where they belong + + # $londcall added to help debug + my $londcall = pop(@dirList); + $r->print('
udir '.$londcall.'
'); + $udir = pop(@dirList); + $r->print('
path returned '.$udir.'
'); + $isFile = pop(@dirList); +# $r->print('
isfile '.$isFile.'
'); + $isDir = pop(@dirList); +# $r->print('
isdir '.$isDir.'
'); +# return OK if $r->header_only; + # Stuff to maintain proper setting for selected file + if ($ENV{'form.selectfile'}) { + if ($ENV{'form.fileaction'} eq 'delete') { + &Apache::lonnet::portfoliomanage($ENV{'form.selectfile'}, 'delete', undef ); + $ENV{'portfolio.file'} = 'Selected File Deleted'; + } elsif($ENV{'form.fileaction'} eq 'rename') { + &Apache::lonnet::portfoliomanage($ENV{'form.selectfile'}, 'rename', $ENV{'form.filenewname'} ); +# $r->print('We will rename your file'); + } else { + + # Remember user's file selection for later + $ENV{'portfolio.file'} = $ENV{'form.selectfile'}; + # offer things user can do with selected file + } + } else { + unless ($ENV{'portfolio.file'}) { + $ENV{'portfolio.file'} = 'No File Selected'; + } + } + ############################## + # + # Display begins here + # + ############################## + $r->print('
start '); + $r->print($udir); + $r->print(''); + $r->print('
'); + $r->print(&displayDirectory($currentPath, $currentFile, $isDir, @dirList)); + $r->print(' >'); + $r->print(&displayActions($currentPath, $currentFile, $isDir, $isFile)); + $r->print(' >
end display
'); + $r->print('