--- loncom/interface/lonmeta.pm 2005/12/19 21:17:25 1.144 +++ loncom/interface/lonmeta.pm 2005/12/19 21:56:07 1.147 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Metadata display handler # -# $Id: lonmeta.pm,v 1.144 2005/12/19 21:17:25 albertel Exp $ +# $Id: lonmeta.pm,v 1.147 2005/12/19 21:56:07 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -290,8 +290,23 @@ sub fieldnames { return &Apache::lonlocal::texthash(%fields); } +sub portfolio_linked_path { + my ($path) = @_; + my $result = &Apache::portfolio::make_anchor('portfolio','/'); + my $fullpath = '/'; + my (undef,@tree) = split('/',$path); + my $filename = pop(@tree); + foreach my $dir (@tree) { + $fullpath .= $dir.'/'; + $result .= '/'; + $result .= &Apache::portfolio::make_anchor($dir,$fullpath); + } + $result .= "/$filename"; + return $result; +} + sub portfolio_display_uri { - my ($uri)=@_; + my ($uri,$as_links)=@_; $uri =~ s|.*/(portfolio/.*)$|$1|; my ($res_uri,$meta_uri) = ($uri,$uri); @@ -300,14 +315,21 @@ sub portfolio_display_uri { } else { $meta_uri .= '.meta'; } - return ($res_uri,$meta_uri); + + my ($path) = ($res_uri =~ m|(.*)/[^/]*$|); + + if ($as_links) { + $res_uri = &portfolio_linked_path($res_uri); + $meta_uri = &portfolio_linked_path($meta_uri); + } + return ($res_uri,$meta_uri,$path); } sub pre_select_course { my ($r,$uri) = @_; my $output; my $fn=&Apache::lonnet::filelocation('',$uri); - my ($res_uri,$meta_uri) = &portfolio_display_uri($uri); + my ($res_uri,$meta_uri,$path) = &portfolio_display_uri($uri); %Apache::lonpublisher::metadatafields=(); %Apache::lonpublisher::metadatakeys=(); my $result=&Apache::lonnet::getfile($fn); @@ -322,13 +344,19 @@ sub pre_select_course { $r->print($output.'
'); $r->print(''); + + $r->print('

'. + ''. + ''. + '
'); + return; } sub select_course { my %courses; my $output; my $selected; - foreach my $key (keys (%env)) { + foreach my $key (keys(%env)) { if ($key =~ m/\.metadata\./) { $key =~ m/^course\.(.+)(\.metadata.+$)/; my $course = $1; @@ -337,7 +365,6 @@ sub select_course { $courses{$coursekey} = $value; } } - &Apache::lonnet::logthis('the restricted is'.$Apache::lonpublisher::metadatafields{'courserestricted'}); my $meta_not_found = 1; if ($Apache::lonpublisher::metadatafields{'courserestricted'} eq 'none') { $selected = ' SELECTED '; @@ -1044,8 +1071,9 @@ sub present_editable_metadata { $disuri=~s/^\/\~/\/priv\//; $disuri=~s/\.meta$//; my $meta_uri = $disuri; + my $path; if ($disuri =~ m|/portfolio/|) { - ($disuri, $meta_uri) = &portfolio_display_uri($disuri); + ($disuri, $meta_uri, $path) = &portfolio_display_uri($disuri,1); } my $target=$uri; $target=~s/^\/\~/\/res\/$env{'request.role.domain'}\//; @@ -1199,7 +1227,6 @@ ENDEDIT '<>&"'). ''; } - &Apache::lonnet::logthis(" file ".$file_content); if ($fn =~ m|/portfolio/|) { my ($path, $new_fn) = ($fn =~ m|/(portfolio.*)/([^/]*)$|); $env{'form.'.$formname}=$file_content."\n"; @@ -1232,7 +1259,12 @@ ENDEDIT $r->print($output.'
'); - + + $r->print(' +

'. + ''. + ''); + } $r->print('
');