[LON-CAPA-cvs] cvs: loncom /interface portfolio.pm

albertel lon-capa-cvs@mail.lon-capa.org
Mon, 28 Jun 2004 16:07:48 -0000


This is a MIME encoded message

--albertel1088438868
Content-Type: text/plain

albertel		Mon Jun 28 12:07:48 2004 EDT

  Modified files:              
    /loncom/interface	portfolio.pm 
  Log:
  - retabinate
  
  
--albertel1088438868
Content-Type: text/plain
Content-Disposition: attachment; filename="albertel-20040628120748.txt"

Index: loncom/interface/portfolio.pm
diff -u loncom/interface/portfolio.pm:1.7 loncom/interface/portfolio.pm:1.8
--- loncom/interface/portfolio.pm:1.7	Fri Jun 25 16:50:05 2004
+++ loncom/interface/portfolio.pm	Mon Jun 28 12:07:47 2004
@@ -32,76 +32,81 @@
 use Apache::lontexconvert;
 use Apache::lonfeedback;
 use Apache::lonlocal;
-sub makeAnchor{
-	# receives a file name assumed to reside in username/userfiles/portfolio/
-	# returns a form consisting of a single submit button labeled with the file name
-	my ($fileName, $currentPath) = @_;
-	my $anchor = '<a href="/adm/portfolio?selectfile='.$fileName.'&currentpath='.$currentPath.'">'.$fileName.'</a>';
-#	my $button = '
+
+# 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 = '<a href="/adm/portfolio?selectfile='.$fileName.'&currentpath='.$currentPath.'">'.$fileName.'</a>';
+#    my $button = '
 #		<form method="POST" action="/adm/portfolio">
 #		<input type="hidden" name="selectfile" value="'.$fileName.'">
 #		<input type="submit" value="'.$fileName.'" name="storeupl">
 #		</form>
 #		';
-	return $anchor;
+    return $anchor;
 }
+
+# returns html with <br /> separated contents of the directory
+# returns a <strong>currentFile</strong> (bolds the selected file/dir)
 sub displayDirectory {
-	# returns html with <br /> separated contents of the directory
-	# returns a <strong>currentFile</strong> (bolds the selected file/dir)
-	
-	my ($currentPath, $currentFile, $isDir, @dirList,) = @_;
-	my $displayOut='';	
-	my $fileName;
-	my $upPath;
-	if ($currentPath ne '/'){
-		$displayOut = 'Listing of '.$currentPath.'<br /><hr />'.
-		# provides the "up one directory level" function
-		# it means shortening the currentpath to the parent directory
-		$currentPath =~ m:(^/.*)(/.*/$):;
-		if ($1 ne '/'){
-			$upPath = $1.'/';
-		}else{
-			$upPath = $1;
-		}
-		
-		$displayOut = $displayOut.'<a href="/adm/portfolio?selectfile=updir&currentpath='.$upPath.'">..</a><br />';
+    my ($currentPath, $currentFile, $isDir, @dirList,) = @_;
+    my $displayOut='';	
+    my $fileName;
+    my $upPath;
+    if ($currentPath ne '/') {
+	$displayOut = 'Listing of '.$currentPath.'<br /><hr />'.
+	    # provides the "up one directory level" function
+	    # it means shortening the currentpath to the parent directory
+	    $currentPath =~ m:(^/.*)(/.*/$ ):;
+	if ($1 ne '/') {
+	    $upPath = $1.'/';
 	} else {
-		$displayOut = $displayOut.'at root '.$currentPath.'<br />';
+	    $upPath = $1;
 	}
-	while ($fileName = shift @dirList){
-		if (($fileName ne './') && ($fileName ne '../')){
-			if ($fileName =~ m:/$:){
-				# handle directories different from files
-				if ($fileName eq $currentFile){ #checks to bold the selected file
-					$displayOut = $displayOut.'<strong>'.(makeAnchor($fileName, $currentPath.$fileName).'</strong><br />');
-				}else{
-					$displayOut = $displayOut.(makeAnchor($fileName, $currentPath.$fileName).'<br />');
-				}
-			}else{
-				if ($fileName eq $currentFile){ #checks to bold the selected file
-					$displayOut = $displayOut.'<strong>'.(makeAnchor($fileName, $currentPath).'</strong><br />');
-				}else{
-					$displayOut = $displayOut.(makeAnchor($fileName, $currentPath).'<br />');
-				}
-			}
-		}
-	}
-	$displayOut = $displayOut.
-	return $displayOut;
+		
+	$displayOut = $displayOut.'<a href="/adm/portfolio?selectfile=updir&currentpath='.$upPath.'">..</a><br />';
+    } else {
+	$displayOut = $displayOut.'at root '.$currentPath.'<br />';
+    }
+    while ($fileName = shift @dirList) {
+	if (($fileName ne './') && ($fileName ne '../')) {
+	    if ($fileName =~ m:/$:) {
+		# handle directories different from files
+		if ($fileName eq $currentFile) {
+		    #checks to bold the selected file
+		    $displayOut = $displayOut.'<strong>'.(&makeAnchor($fileName, $currentPath.$fileName).'</strong><br />');
+		} else {
+		    $displayOut = $displayOut.(&makeAnchor($fileName, $currentPath.$fileName).'<br />');
+		}
+	    } else {
+		if ($fileName eq $currentFile) {
+		    #checks to bold the selected file
+		    $displayOut = $displayOut.'<strong>'.(&makeAnchor($fileName, $currentPath).'</strong><br />');
+		} else {
+		    $displayOut = $displayOut.(&makeAnchor($fileName, $currentPath).'<br />');
+		}
+	    }
+	}
+    }
+    #$displayOut = $displayOut.
+    return $displayOut;
 }
+
+# returns html to offer user appropriate actions depending on selected
+# file/directory
 sub displayActions {
-	# returns html to offer user appropriate actions depending on selected file/directory
-	my $displayOut;
-	my ($currentPath, $currentFile, $isDir, $isFile) = @_;
-#	$displayOut = 'here are actions for '.$currentFile;
-	if ($isDir){
-		$displayOut = 'Directory';
-	}
-	if ($isFile){
-		$displayOut = 'File';
-	}
-	
-	$displayOut = 	$displayOut.'<form method="POST">
+    my $displayOut;
+    my ($currentPath, $currentFile, $isDir, $isFile) = @_;
+#   $displayOut = 'here are actions for '.$currentFile;
+    if ($isDir){
+	$displayOut = 'Directory';
+    }
+    if ($isFile){
+	$displayOut = 'File';
+    }
+    
+    $displayOut = $displayOut.'<form method="POST">
 			<input type="hidden" name="selectfile" 
 			value="'.$currentFile.'">
 			<input type="hidden" name="fileaction" value="delete"> 
@@ -121,132 +126,134 @@
 			value="Rename '.$currentFile.'">
 			</form>
 			<hr>';
-	$displayOut = $displayOut.'<hr>Add a file to your portfolio';
-	# file upload form 
-	$displayOut = $displayOut.'<form method="post" enctype="multipart/form-data">';
-	$displayOut = $displayOut.'<input name="uploaddoc" type="file">'.
-		'<input type="hidden" name="currentpath" value="'.$currentPath.'">'.
-		'<input type="submit" name="storeupl" value="Upload">'.
-		'</form><hr>';
-	$displayOut = $displayOut.'<form method="POST">
+    $displayOut = $displayOut.'<hr>Add a file to your portfolio';
+    # file upload form 
+    $displayOut = $displayOut.'<form method="post" enctype="multipart/form-data">';
+    $displayOut = $displayOut.'<input name="uploaddoc" type="file">'.
+	'<input type="hidden" name="currentpath" value="'.$currentPath.'">'.
+	'<input type="submit" name="storeupl" value="Upload">'.
+	'</form><hr>';
+    $displayOut = $displayOut.'<form method="POST">
 		<input name="subdir" type="text" >
 		<input type="submit" value="Create Subdirectory">
 		</form>
 			';
-	return $displayOut;
+    return $displayOut;
 }
+
 sub handler {
-	# this handles file management
-	my ($r)=@_;
-	my @dirList; # will hold directory listing as array
-	my $udir; # returned from home server
-	my $currentPath; # path assuming /userfiles/portfolio/ as root
-	my $currentFile; # directory or file contained in $pathToRoot.$currentPath
-	my $action; # delete, rename, makedirectory, removedirectory,
-	my $filenewname; # for rename action (guess what we do with it!)
-	my $isFile;
-	my $isDir;
-	# send header
-	$r->content_type('text/html');
-	$r->send_http_header;
-	$r->print('<html><head><title>'.
+    # this handles file management
+    my ($r)=@_;
+    my @dirList; # will hold directory listing as array
+    my $udir; # returned from home server
+    my $currentPath; # path assuming /userfiles/portfolio/ as root
+    my $currentFile; # directory or file contained in $pathToRoot.$currentPath
+    my $action; # delete, rename, makedirectory, removedirectory,
+    my $filenewname; # for rename action (guess what we do with it!)
+    my $isFile;
+    my $isDir;
+    # send header
+    $r->content_type('text/html');
+    $r->send_http_header;
+    $r->print('<html><head><title>'.
               'Portfolio Management'.
               "</title></head>\n");
 
-	$r->print ('
+    $r->print('
 	<body bgcolor="dogfood">
 	<blockquote>');
-	#grab stuff that was sent
-	&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
-                                            ['selectfile','currentpath', 'currentfile']);
-	$r->print ('<br />CP= '.$ENV{'form.currentpath'}.'<br />');
-	# 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('<br />found selectfile'.$ENV{'form.selectfile'} .'<br />');
-		# have to check if the selected file is a subdirectory
-		if ($ENV{'form.selectfile'} =~ /-\(Dir\)/){
-			# $currentPath =~ /\-\(Dir\)/;
-			$currentPath = $`.'/';
-			$r->print('<br />'.$currentPath.'<br />');
-		}
-		$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'}.'<br />');
-		$r->print (&Apache::lonnet::userfileupload('uploaddoc','','portfolio'.$currentPath).'<br />');	
-	}
-	# 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 /<br\s\/>/, (&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 ('<br />udir '.$londcall.'<br />');
-	$udir = pop @dirList;
-	$r->print ('<br />path returned '.$udir.'<br />');
-	$isFile = pop @dirList;
-#	$r->print ('<br />isfile '.$isFile.'<br />');
-	$isDir = pop @dirList;
-#	$r->print ('<br />isdir '.$isDir.'<br />');
-#	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 ('<hr /> start ');
-	$r->print ($udir);
-	$r->print ('<table border=1><tr><td>');
-	$r->print (displayDirectory ($currentPath, $currentFile, $isDir, @dirList));
-	$r->print ('</td>><td>');
-	$r->print (displayActions ($currentPath, $currentFile, $isDir, $isFile));
-	$r->print ('</td>></tr></table>');
-	$r->print ('<br />end display<br /><hr />');
-	$r->print ('</blockquote></body>');
-	return OK;
+    #grab stuff that was sent
+    &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
+                                            ['selectfile','currentpath',
+					     'currentfile']);
+    $r->print ('<br />CP= '.$ENV{'form.currentpath'}.'<br />');
+    # 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('<br />found selectfile'.$ENV{'form.selectfile'} .'<br />');
+	# have to check if the selected file is a subdirectory
+	if ($ENV{'form.selectfile'} =~ /-\(Dir\)/) {
+	    # $currentPath =~ /\-\(Dir\)/;
+	    $currentPath = $`.'/';
+	    $r->print('<br />'.$currentPath.'<br />');
+	}
+	$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'}.'<br />');
+	$r->print(&Apache::lonnet::userfileupload('uploaddoc','','portfolio'.$currentPath).'<br />');	
+    }
+    # 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 /<br\s\/>/, (&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('<br />udir '.$londcall.'<br />');
+    $udir = pop(@dirList);
+    $r->print('<br />path returned '.$udir.'<br />');
+    $isFile = pop(@dirList);
+#   $r->print('<br />isfile '.$isFile.'<br />');
+    $isDir = pop(@dirList);
+#   $r->print('<br />isdir '.$isDir.'<br />');
+#   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('<hr /> start ');
+    $r->print($udir);
+    $r->print('<table border=1><tr><td>');
+    $r->print(&displayDirectory($currentPath, $currentFile, $isDir, @dirList));
+    $r->print('</td>><td>');
+    $r->print(&displayActions($currentPath, $currentFile, $isDir, $isFile));
+    $r->print('</td>></tr></table>');
+    $r->print('<br />end display<br /><hr />');
+    $r->print('</blockquote></body>');
+    return OK;
 }
 
 1;

--albertel1088438868--