--- loncom/interface/portfolio.pm 2004/10/11 22:52:20 1.47 +++ loncom/interface/portfolio.pm 2004/10/18 20:37:30 1.49 @@ -38,7 +38,7 @@ sub make_anchor { 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(''); @@ -73,15 +73,20 @@ sub display_directory { &Apache::lonhtmlcommon::select_recent('portfolio','currentpath', 'this.form.submit();')); $r->print(""); +} +sub display_directory { + my ($r,$current_path,$is_empty,$dir_list)=@_; + my $iconpath= $r->dir_config('lonIconsURL') . "/"; + my $display_out; if ($is_empty && ($current_path ne '/')) { - $displayOut = ''. + $display_out = ''. ''. ''. ''. ''. ''; - $r->print($displayOut); + $r->print($display_out); return; } $r->print('
'. @@ -135,53 +140,23 @@ sub display_directory { sub display_file_select { my ($r,$current_path,$is_empty,$dir_list)=@_; my $iconpath= $r->dir_config('lonIconsURL') . "/"; - $r->print('
'); - $r->print('
'); - my $displayOut = '
'; - $displayOut = $displayOut.''. - ''. - ''. - '
'; - $r->print($displayOut); - $r->print('
'); - $displayOut = '
'; - $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('
'. - &Apache::lonhtmlcommon::select_recent('portfolio','currentpath', - 'this.form.submit();')); - $r->print("
"); + my $display_out; if ($is_empty && ($current_path ne '/')) { - $displayOut = '
'. + $display_out = ''. ''. ''. ''. ''. + '
'; - $r->print($displayOut); + $r->print($display_out); return; } $r->print(''. ''); my $href_location="/uploaded/$ENV{'user.domain'}/$ENV{'user.name'}/portfolio$current_path"; - $r->print(''); + $r->print(''); foreach my $line (sort { my ($afile)=split('&',$a,2); @@ -211,16 +186,10 @@ sub display_file_select { } } } - $r->print(' - - '); - -# pink bg -# blue bg -# $r->print(&display_directory($current_path, $currentFile, @dir_list)); -# $r->print('>
Select NameSizeLast Modified
'); -# $r->print(&display_actions($current_path, $currentFile, $isEmpty)); - $r->print('
'); + $r->print(' + + + '); } sub open_form { @@ -346,6 +315,25 @@ sub rename_confirmed { } 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'}, @@ -360,7 +348,7 @@ sub select_files { $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 + # 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'}, @@ -379,6 +367,7 @@ sub select_files { } # 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("\n\n"); return OK; @@ -476,7 +465,7 @@ sub handler { $r->rflush(); &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['selectfile','currentpath', - 'currentfile','action']); + 'currentfile','action','fieldname']); if (($ENV{'form.storeupl'} eq 'Upload') & (!$ENV{'form.uploaddoc.filename'})){ $r->print(' No file was selected to upload.'. 'To upload a file, click Browse...'. @@ -529,6 +518,7 @@ sub handler { } # 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_directory($r,$current_path,$is_empty,\@dir_list); $r->print("\n\n"); return OK;