--- loncom/interface/portfolio.pm 2004/07/03 00:35:01 1.11
+++ loncom/interface/portfolio.pm 2004/07/28 19:00:19 1.18
@@ -18,12 +18,9 @@
#
# /home/httpd/html/adm/gpl.txt
#
-
-
# http://www.lon-capa.org/
#
-
package Apache::portfolio;
use strict;
use Apache::Constants qw(:common :http);
@@ -32,17 +29,19 @@ use Apache::lonnet;
use Apache::lontexconvert;
use Apache::lonfeedback;
use Apache::lonlocal;
+
+# receives a file name and path stub from username/userfiles/portfolio/
+# returns an anchor tag consisting encoding filename and currentpath
sub makeAnchor{
- # receives a file name and path stub from username/userfiles/portfolio/
- # returns an anchor tag consisting encoding filename and currentpath
my ($fileName, $currentPath) = @_;
my $anchor = ''.$fileName.'';
return $anchor;
}
+
+# returns html with
separated contents of the directory
+# returns a currentFile (bolds the selected file/dir)
sub displayDirectory {
- # returns html with
separated contents of the directory
- # returns a currentFile (bolds the selected file/dir)
- my ($currentPath, $currentFile, $isDir, @dirList,) = @_;
+ my ($currentPath, $currentFile, @dirList,) = @_;
my $displayOut='';
my $fileName;
my $upPath;
@@ -57,9 +56,9 @@ sub displayDirectory {
$upPath = $1;
}
- $displayOut = $displayOut.'..
';
+ # $displayOut = $displayOut.'..
';
} else {
- $displayOut = $displayOut.'at root '.$currentPath.'
';
+ # $displayOut = $displayOut.'at root '.$currentPath.'
';
}
foreach my $line (@dirList) {
#$strip holds directory/file name
@@ -69,17 +68,18 @@ sub displayDirectory {
if ($testdir =~ m:^1:){
# handle directories different from files
if ($fileName eq $currentFile){ #checks to bold the selected file
- $displayOut.= ''.(makeAnchor($fileName.'/', $currentPath.$fileName.'/').'
');
+ $displayOut.= ''.(makeAnchor($fileName.'/', $fileName.'/').'
'."\n");
}else{
- $displayOut.= (makeAnchor($fileName.'/', $currentPath.$fileName.'/').'
');
+ $displayOut.= (makeAnchor($fileName.'/', $fileName.'/').'
'."\n");
}
}else{
if ($fileName eq $currentFile){ #checks to bold the selected file
- $displayOut.=''.(makeAnchor($fileName, $currentPath).'
');
+ $displayOut.=''.(makeAnchor($fileName, $currentPath).'
'."\n");
}else{
- $displayOut.=(makeAnchor($fileName, $currentPath).'
');
+ $displayOut.=(makeAnchor($fileName, $currentPath).'
'."\n");
}
}
+
}
}
@@ -88,7 +88,7 @@ sub displayDirectory {
sub displayActions {
# returns html to offer user appropriate actions depending on selected file/directory
my $displayOut;
- my ($currentPath, $currentFile, $isDir, $isEmpty) = @_;
+ my ($currentPath, $currentFile, $isEmpty) = @_;
# $displayOut = 'here are actions for '.$currentFile;
if ($currentFile =~ m:/$:){
# if the selected file is a directory, these are the options
@@ -158,6 +158,7 @@ sub displayActions {
sub handler {
# this handles file management
my $r = shift;
+ my $iconpath= $r->dir_config('lonIconsURL') . "/";
my @dirList; # will hold directory listing as array
my $udir; # returned from home server
my $currentPath; # path assuming /userfiles/portfolio/ as root
@@ -165,14 +166,17 @@ sub handler {
my $action; # delete, rename, makedirectory, removedirectory,
my $filenewname; # for rename action (guess what we do with it!)
my $isFile;
- my $isDir;
my $isEmpty;
- # send header
- # FIXME need to start using
+ my $dirptr=16384;
&Apache::loncommon::no_cache($r);
- &Apache::loncommon::content_type($r, 'text/html');
- &Apache::loncommon::bodytag('Portfolio Managment', 'bgcolor="dogfood"');
+ &Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
+ # Give the LON-CAPA page header
+ $r->print('
'.
+ &mt('Portfolio Manager').
+ "\n".
+ &Apache::loncommon::bodytag('Portfolio Manager'));
+ $r->rflush();
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
['selectfile','currentpath', 'currentfile']);
# currentPath and currentFile need to be set for the rest of things to happen
@@ -211,16 +215,20 @@ sub handler {
}
}
# we always need $dirList, plus this will return information about the current file
- # as well as information about he home server directory structure, specifically
+ # as well as information about the home server directory structure, specifically
# the path to the users userfiles directory.
- my $list = &Apache::lonnet::portfoliolist($currentPath, $currentFile);
- @dirList = split(/:/,$list);
- if (@dirList == 2){ # need to know if directory is empty to it can be removed if desired
+ #
+ my $portfolio_root = &Apache::loncommon::propath($ENV{'user.domain'},
+ $ENV{'user.name'}).
+ '/userfiles/portfolio'.$currentPath;
+ @dirList = &Apache::lonnet::dirlist($currentPath, $ENV{'user.domain'}, $ENV{'user.name'}, $portfolio_root);
+
+ if (@dirList == 2) { # need to know if directory is empty so it can be removed if desired
$isEmpty = 1;
- }else{
+ } else {
$isEmpty = 0;
}
- # 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 );
@@ -242,12 +250,27 @@ sub handler {
# Display begins here
#
##############################
- $r->print('');
- $r->print(displayDirectory($currentPath, $currentFile, $isDir, @dirList));
- $r->print(' | >');
- $r->print(displayActions($currentPath, $currentFile, $isDir, $isEmpty));
- $r->print(' | >
');
- $r->print('');
+ $r->print(''.
+ ' | Actions | Name | Title | Status | Last Modified |
');
+ foreach my $line (@dirList) {
+ #$strip holds directory/file name
+ #$dom
+ my ($fileName,$dom,undef,$testdir,undef,undef,undef,undef,undef,undef,undef,undef,undef,undef,$obs,undef)=split(/\&/,$line,16);
+ if ($dirptr&$testdir){
+ $r->print(' |
');
+ }else{
+ $r->print(' |
');
+ }
+ }
+# pink bg
+#
blue bg
+# $r->print(displayDirectory($currentPath, $currentFile, @dirList));
+# $r->print('>');
+# $r->print(displayActions($currentPath, $currentFile, $isEmpty));
+ $r->print(' |
');
+ $r->print('');
+ $r->print("