--- loncom/interface/portfolio.pm 2004/09/10 20:14:45 1.43
+++ loncom/interface/portfolio.pm 2004/10/18 20:37:30 1.49
@@ -37,9 +37,8 @@ sub make_anchor {
my $anchor = ''.$filename.'';
return $anchor;
}
-
my $dirptr=16384;
-sub display_directory {
+sub display_common {
my ($r,$current_path,$is_empty,$dir_list)=@_;
my $iconpath= $r->dir_config('lonIconsURL') . "/";
$r->print('
');
@@ -74,15 +73,20 @@ sub display_directory {
&Apache::lonhtmlcommon::select_recent('portfolio','currentpath',
'this.form.submit();'));
$r->print("");
- if ($is_empty) {
- $displayOut = '';
- $r->print($displayOut);
+ $r->print($display_out);
return;
}
$r->print(''.
@@ -133,6 +137,60 @@ sub display_directory {
# $r->print(&display_actions($current_path, $currentFile, $isEmpty));
$r->print('
');
}
+sub display_file_select {
+ my ($r,$current_path,$is_empty,$dir_list)=@_;
+ my $iconpath= $r->dir_config('lonIconsURL') . "/";
+ my $display_out;
+ if ($is_empty && ($current_path ne '/')) {
+ $display_out = '';
+
+ $r->print($display_out);
+ 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 +313,65 @@ sub rename_confirmed {
}
$r->print(&done());
}
-
+sub select_files {
+ my ($r)=@_;
+ my $java_script =(<
+ function finishSelect() {
+ fileList = "";
+ for (i=0;i
+ENDSMP
+ $r->print($java_script);
+ $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_common($r,$current_path,$is_empty,\@dir_list);
+ &display_file_select($r,$current_path,$is_empty,\@dir_list);
+ $r->print("