--- loncom/interface/portfolio.pm 2004/09/10 20:14:45 1.43
+++ loncom/interface/portfolio.pm 2004/10/11 22:52:20 1.47
@@ -37,7 +37,6 @@ sub make_anchor {
my $anchor = ''.$filename.'';
return $anchor;
}
-
my $dirptr=16384;
sub display_directory {
my ($r,$current_path,$is_empty,$dir_list)=@_;
@@ -74,7 +73,7 @@ sub display_directory {
&Apache::lonhtmlcommon::select_recent('portfolio','currentpath',
'this.form.submit();'));
$r->print("");
- if ($is_empty) {
+ if ($is_empty && ($current_path ne '/')) {
$displayOut = '
');
}
+sub display_file_select {
+ my ($r,$current_path,$is_empty,$dir_list)=@_;
+ my $iconpath= $r->dir_config('lonIconsURL') . "/";
+ $r->print('');
+ $r->print('');
+ my $displayOut = '';
+ $r->print($displayOut);
+ $r->print(' |
');
+ $displayOut = '';
+ $r->print($displayOut);
+ $r->print(' |
');
+ my @tree = split (/\//,$current_path);
+ $r->print(''.&make_anchor('portfolio','/').'/');
+ if (@tree > 1){
+ my $newCurrentPath = '';
+ for (my $i = 1; $i< @tree; $i++){
+ $newCurrentPath .= $tree[$i].'/';
+ $r->print(&make_anchor($tree[$i],'/'.$newCurrentPath).'/');
+ }
+ }
+ $r->print('');
+ &Apache::lonhtmlcommon::store_recent('portfolio',$current_path,$current_path);
+ #Fixme -- remove from recent those paths that are deleted
+ $r->print('
");
+ if ($is_empty && ($current_path ne '/')) {
+ $displayOut = '';
+
+ $r->print($displayOut);
+ return;
+ }
+ $r->print(''.
+ 'Select | | Name | Size | Last Modified |
');
+ my $href_location="/uploaded/$ENV{'user.domain'}/$ENV{'user.name'}/portfolio$current_path";
+ $r->print('
');
+}
sub open_form {
my ($r)=@_;
@@ -255,7 +344,45 @@ sub rename_confirmed {
}
$r->print(&done());
}
-
+sub select_files {
+ my ($r)=@_;
+ $r->print("Select portfolio files
+ Check as many as you wish in response to the essay problem.
");
+ my $portfolio_root = &Apache::loncommon::propath($ENV{'user.domain'},
+ $ENV{'user.name'}).
+ '/userfiles/portfolio';
+ my $current_path='/';
+ if ($ENV{'form.currentpath'}) {
+ $current_path = $ENV{'form.currentpath'};
+ }
+ my @dir_list=&Apache::lonnet::dirlist($current_path,
+ $ENV{'user.domain'},
+ $ENV{'user.name'},$portfolio_root);
+ if ($dir_list[0] eq 'no_such_dir'){
+ # two main reasons for this:
+ # 1) never been here, so directory structure not created
+ # 2) back-button navigation after deleting a directory
+ if ($current_path eq '/'){
+ &Apache::lonnet::mkdiruserfile($ENV{'user.name'},
+ $ENV{'user.domain'},'portfolio');
+ } else {
+ # some directory that snuck in get rid of the directory
+ # from the recent pulldown, just in case
+ &Apache::lonhtmlcommon::remove_recent('portfolio',
+ [$current_path]);
+ $current_path = '/'; # force it back to the root
+ }
+ # now grab the directory list again, for the first time
+ @dir_list=&Apache::lonnet::dirlist($current_path,
+ $ENV{'user.domain'},
+ $ENV{'user.name'},$portfolio_root);
+ }
+ # need to know if directory is empty so it can be removed if desired
+ my $is_empty=(@dir_list == 2);
+ &display_file_select($r,$current_path,$is_empty,\@dir_list);
+ $r->print("