--- loncom/interface/portfolio.pm 2004/07/23 01:25:56 1.16
+++ loncom/interface/portfolio.pm 2004/07/29 17:04:21 1.20
@@ -56,26 +56,21 @@ 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
#$dom
- my ($fileName,$dom,undef,$testdir,undef,undef,undef,undef,undef,undef,undef,undef,undef,undef,$obs,undef,$path)=split(/\&/,$line,17);
- $path =~ m:/:;
- my $dirDepth = @-;
+ my ($fileName,$dom,undef,$testdir,undef,undef,undef,undef,undef,undef,undef,undef,undef,undef,$obs,undef)=split(/\&/,$line,16);
if (($fileName ne '.') && ($fileName ne '..')){
- for (my $i = 0; $i <= $dirDepth; $i += 1){
- $displayOut.='
';
- }
if ($testdir =~ m:^1:){
# handle directories different from files
if ($fileName eq $currentFile){ #checks to bold the selected file
- $displayOut.= ''.(makeAnchor($fileName.'/', $path.$fileName.'/').'
'."\n");
+ $displayOut.= ''.(makeAnchor($fileName.'/', $fileName.'/').'
'."\n");
}else{
- $displayOut.= (makeAnchor($fileName.'/', $path.$fileName.'/').'
'."\n");
+ $displayOut.= (makeAnchor($fileName.'/', $fileName.'/').'
'."\n");
}
}else{
if ($fileName eq $currentFile){ #checks to bold the selected file
@@ -84,9 +79,6 @@ sub displayDirectory {
$displayOut.=(makeAnchor($fileName, $currentPath).'
'."\n");
}
}
- for (my $i = 0; $i <= $dirDepth; $i += 1){
- $displayOut.='
';
- }
}
@@ -166,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
@@ -174,6 +167,7 @@ sub handler {
my $filenewname; # for rename action (guess what we do with it!)
my $isFile;
my $isEmpty;
+ my $dirptr=16384;
&Apache::loncommon::no_cache($r);
&Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
@@ -221,55 +215,13 @@ 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 $portfolio_root = &Apache::loncommon::propath($ENV{'user.domain'},
$ENV{'user.name'}).
'/userfiles/portfolio';
- my $done = 0;
- my $subdir = '';
- my @workinglist; # intermediate array, holds directory listing lines (dirlist), and path information
- my $readDirectory = 1; # flag for directory
- my $loopCounter = 0; # needed only for development to prevent run away program (or maybe more?)
- while (!$done){
- # Needed while developing. Later, too?
- $loopCounter += 1;
- if ($loopCounter > 50) {
- $r->print('
stop runaway');
- return OK;
- }
- # ---
- if ($readDirectory){ # is true the first time through, then true if dirlist line is a subdir
- # $r->print('
reading '.$portfolio_root.$subdir);
- my @list = &Apache::lonnet::dirlist($currentPath, $ENV{'user.domain'}, $ENV{'user.name'}, $portfolio_root.$subdir);
- foreach my $line(@list){
- $line = $line.'&'.$subdir; # append the subdirectory information
- my ($fileName,$dom,undef,$testdir,undef,undef,undef,undef,undef,undef,undef,undef,undef,undef,$obs,undef,$subpath)=split(/\&/,$line,17);
- if (($fileName ne '.') && ($fileName ne '..')){ # we throw away the current and parent directories
- $r->print('
'.$line);
- # should this be shift?
- push @workinglist, $line; # add the line to the working list array
- }
- }
- }
- my $line = shift @workinglist; #take one off the working list
- if ($line eq '') { # if the working list is empty
- $done = 1;
- }else{
- push @dirList, $line; # and put it in the display list
- my ($fileName,$dom,undef,$testdir,undef,undef,undef,undef,undef,undef,undef,undef,undef,undef,$obs,undef,$subpath)=split(/\&/,$line,17);
- if ($testdir =~ m:^1:) { # true if this is a directory
- # $r->print('
added subdir '.$fileName);
- $subdir = $subpath.'/'.$fileName;
- $readDirectory = 1;
- }else{
- $readDirectory = 0;
- }
- }
- }
- # if item is directory { get the next level down
- # my @list = &Apache::lonnet::dirlist($currentPath, $ENV{'user.domain'}, $ENV{'user.name'}, $portfolio_root.$);
+ @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;
@@ -298,11 +250,54 @@ sub handler {
# Display begins here
#
##############################
- $r->print('');
- $r->print(displayDirectory($currentPath, $currentFile, @dirList));
- $r->print(' | >');
- $r->print(displayActions($currentPath, $currentFile, $isEmpty));
- $r->print(' | >
');
+ $r->print('');
+ $r->print('');
+ my $displayOut = '';
+ $r->print($displayOut);
+ $r->print(' |
');
+ my @tree = split (/\//,$currentPath);
+ $r->print(''.makeAnchor('portfolio','/').'/');
+ if (@tree > 1){
+ my $newCurrentPath = '';
+ for (my $i = 1; $i< @tree; $i++){
+ $newCurrentPath .= $tree[$i].'/';
+ $r->print(makeAnchor($tree[$i],'/'.$newCurrentPath).'/');
+ }
+ }
+ $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 (($fileName ne '.') && ($fileName ne '..')){
+ if ($dirptr&$testdir){
+ $r->print(' | ');
+ $r->print('Go to ... | ');
+ $r->print(''.makeAnchor($fileName.'/',$currentPath.$fileName.'/').' | ');
+ $r->print('
');
+ }else{
+ $r->print(' | ');
+ $r->print('Edit | ');
+ $r->print(''.$fileName.' | ');
+ $r->print('Title Here | ');
+ $r->print('Status Here | ');
+ $r->print('Modified Here | ');
+ $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("