--- loncom/interface/portfolio.pm 2006/08/04 22:22:32 1.146 +++ loncom/interface/portfolio.pm 2006/08/09 17:47:26 1.152 @@ -1,7 +1,7 @@ # The LearningOnline Network # portfolio browser # -# $Id: portfolio.pm,v 1.146 2006/08/04 22:22:32 banghart Exp $ +# $Id: portfolio.pm,v 1.152 2006/08/09 17:47:26 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -66,12 +66,15 @@ sub group_form_data { # receives a file name and path stub from username/userfiles/portfolio/ # returns an anchor tag consisting encoding filename and currentpath sub make_anchor { - my ($url, $filename, $current_path, $current_mode, $field_name, - $continue_select) = @_; - if ($continue_select ne 'true') {$continue_select = 'false'}; - my $anchor = '<a href="'.$url.'?selectfile='.$filename.'&currentpath='.$current_path.'&mode='.$current_mode.'&continue='.$continue_select.'&fieldname='.$field_name; + my ($url, $anchor_fields, $inner_text) = @_; + if ($$anchor_fields{'continue'} ne 'true') {$$anchor_fields{'continue'} = 'false'}; + my $anchor = '<a href="'.$url.'?'; + foreach my $field_name (keys(%$anchor_fields)) { + $anchor .= $field_name.'='.$$anchor_fields{$field_name}.'&'; + } + $anchor =~ s/&$//; $anchor .= &group_args(); - $anchor .= '">'.$filename.'</a>'; + $anchor .= '">'.$inner_text.'</a>'; return $anchor; } @@ -129,12 +132,26 @@ sub display_common { TABLE } my @tree = split (/\//,$current_path); - $r->print('<span class="LC_current_location">'.&make_anchor($url,$port_path,'/',$env{"form.mode"},$env{"form.fieldname"},$env{"form.continue"}).'/'); + my %anchor_fields = ( + 'selectfile' => $port_path, + 'currentpath' => '/', + 'mode' => $env{"form.mode"}, + 'fieldname' => $env{"form.fieldname"}, + 'continue' => $env{"form.continue"} + ); + $r->print('<span class="LC_current_location">'.&make_anchor($url,\%anchor_fields,$port_path).'/'); if (@tree > 1){ my $newCurrentPath = ''; for (my $i = 1; $i< @tree; $i++){ $newCurrentPath .= $tree[$i].'/'; - $r->print(&make_anchor($url,$tree[$i],'/'.$newCurrentPath, $env{"form.mode"},$env{"form.fieldname"}, $env{"form.continue"}).'/'); + my %anchor_fields = ( + 'selectfile' => $tree[$i], + 'currentpath' => '/', + 'mode' => $env{"form.mode"}, + 'fieldname' => $env{"form.fieldname"}, + 'continue' => $env{"form.continue"} + ); + $r->print(&make_anchor($url,\%anchor_fields,$tree[$i]).'/'); } } $r->print('</span>'); @@ -154,16 +171,18 @@ sub display_directory_line { $r->print('<tr class="'.$css_class.'">'); $r->print($line); $r->print('<td><img alt="" src="'.&Apache::loncommon::icon($filename).'" /></td>'); - $r->print('<td>'.$$version_flag{$filename}.'</td><td><a href="'.$href_location.$filename.'">'. - $filename.'</a></td>'); + $r->print('<td>'.$$version_flag{$filename}.'</td><td>'); + $r->print(&make_anchor($href_location.$filename,undef,$filename).'</td>'); $r->print('<td>'.$size.'</td>'); $r->print('<td>'.&Apache::lonlocal::locallocaltime($mtime).'</td>'); if ($select_mode ne 'true') { $r->print('<td><span style="white-space: nowrap">'. &mt($curr_access).' '); - $r->print('<a href="'.$url.'?access='.$filename. - '&currentpath='.$current_path.&group_args(). - '">'.$access_admin_text.'</a></span></td>'); + my %anchor_fields = ( + 'access' => $filename, + 'currentpath' => $current_path + ); + $r->print(&make_anchor($url, \%anchor_fields, $access_admin_text).'</span></td>'); } $r->print('</tr>'.$/); } @@ -249,10 +268,18 @@ sub display_directory { $show_versions = 'true'; } if (exists($versioned{$filename})) { + my %anchor_fields = ( + 'selectfile' => $filename, + 'continue' => 'false', + 'currentpath' => $current_path, + ); if ($show_versions) { - $version_flag{$filename} = '<a href="portfolio"><img class="LC_icon" alt="'.&mt('opened folder').'" src="'.$iconpath.'folder_pointer_opened.gif" /></a>'; + $version_flag{$filename} = &make_anchor('portfolio',\%anchor_fields, + '<img class="LC_icon" alt="'.&mt('opened folder').'" src="'.$iconpath.'folder_pointer_opened.gif" />'); } else { - $version_flag{$filename} = '<a href="portfolio?showversions='.$filename.'"><img class="LC_icon" alt="'.&mt('closed folder').'" src="'.$iconpath.'folder_pointer_closed.gif" /></a>'; + $anchor_fields{'showversions'} = $filename; + $version_flag{$filename} = &make_anchor('portfolio',\%anchor_fields, + '<img class="LC_icon" alt="'.&mt('closed folder').'" src="'.$iconpath.'folder_pointer_closed.gif" />'); } } else { $version_flag{$filename} = ' '; @@ -264,7 +291,14 @@ sub display_directory { } $r->print('<tr class="LC_browser_folder"><td '.$colspan.'><img alt="'.&mt('closed folder').'" src="'.$iconpath.'folder_closed.gif" /></td>'); $r->print('<td>Go to ...</td>'); - $r->print('<td>'.$version_flag{$filename}.'</td><td>'.&make_anchor($url,$filename.'/',$current_path.$filename.'/',$env{'form.mode'},$env{"form.fieldname"},$env{'form.continue'}).'/</td>'); + my %anchor_fields = ( + 'selectfile' => $filename.'/', + 'currentpath' => $current_path.$filename.'/', + 'mode' => $env{"form.mode"}, + 'fieldname' => $env{"form.fieldname"}, + 'continue' => $env{"form.continue"} + ); + $r->print('<td>'.$version_flag{$filename}.'</td><td>'.&make_anchor($url,\%anchor_fields,$filename.'/').'</td>'); $r->print('</tr>'); } else { my $css_class = 'LC_browser_file'; @@ -279,7 +313,10 @@ sub display_directory { $line.=' /></td>'; } else { if (exists $locked_files{$fullpath}) { - $line.='<td colspan="2"><a href="'.$url.'?lockinfo='.$current_path.$filename.&group_args().'">Locked</a></td>'; + my %anchor_fields = ( + 'lockinfo' => $current_path.$filename + ); + $line.='<td colspan="2">'.&make_anchor($url,\%anchor_fields,'Locked').'</td>'; $css_class= 'LC_browser_file_locked'; } else { if (!$can_modify) { @@ -293,8 +330,13 @@ sub display_directory { if ($can_modify) { my $cat='<img class="LC_icon" alt="'.&mt('Catalog Information'). '" src="'.&Apache::loncommon::lonhttpdurl('/res/adm/pages/catalog.gif').'" />'; - $line .= '<a href="'.$url.'?rename='.$filename.'&currentpath='.$current_path.&group_args().'">Rename</a>'; - $line .= '</td><td>'.'<a href="'.$href_edit_location.$filename.'.meta">'.$cat.'</a>'; + my %anchor_fields = ( + 'rename' => $filename, + currentpath => $current_path + ); + $line .= &make_anchor($url,\%anchor_fields,'Rename'); + $line .= '</td><td>'.&make_anchor($href_edit_location.$filename.'.meta',undef,$cat); + # '<a href="'.$href_edit_location.$filename.'.meta">'.$cat.'</a>'; } $line .= '</td>'; }