--- loncom/interface/lonmeta.pm 2005/12/19 21:17:25 1.144
+++ loncom/interface/lonmeta.pm 2005/12/29 19:42:44 1.149
@@ -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.149 2005/12/29 19:42:44 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -248,8 +248,13 @@ sub fieldnames {
'notes' => 'Notes',
'abstract' => 'Abstract',
'lowestgradelevel' => 'Lowest Grade Level',
- 'highestgradelevel' => 'Highest Grade Level',
- 'courserestricted' => 'Course Restricting Metadata');
+ 'highestgradelevel' => 'Highest Grade Level');
+
+ if (! defined($file_type) || $file_type ne 'portfolio') {
+ %fields =
+ (%fields,
+ 'courserestricted' => 'Course Restricting Metadata');
+ }
if (! defined($file_type) || $file_type ne 'portfolio') {
%fields =
@@ -290,8 +295,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 +320,21 @@ sub portfolio_display_uri {
} else {
$meta_uri .= '.meta';
}
- return ($res_uri,$meta_uri);
+
+ my ($path) = ($res_uri =~ m|^portfolio(.*/)[^/]*$|);
+
+ 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 +349,19 @@ sub pre_select_course {
$r->print($output.'
');
$r->print('');
+
+ $r->print('