--- loncom/interface/lonmeta.pm 2005/10/17 21:36:44 1.113
+++ loncom/interface/lonmeta.pm 2006/01/04 05:43:19 1.150
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Metadata display handler
#
-# $Id: lonmeta.pm,v 1.113 2005/10/17 21:36:44 banghart Exp $
+# $Id: lonmeta.pm,v 1.150 2006/01/04 05:43:19 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -237,40 +237,29 @@ sub diffgraph {
# The field names
sub fieldnames {
my $file_type=shift;
- my %fields;
- if ($file_type eq 'portfolio') {
- %fields =
- (%fields,
- 'title' => 'Title',
+ my %fields =
+ ('title' => 'Title',
'author' =>'Author(s)',
'authorspace' => 'Author Space',
'modifyinguser' => 'Last Modifying User',
'subject' => 'Subject',
+ 'standards' => 'Standards',
'keywords' => 'Keyword(s)',
'notes' => 'Notes',
'abstract' => 'Abstract',
'lowestgradelevel' => 'Lowest Grade Level',
'highestgradelevel' => 'Highest Grade Level');
- }
- if ($file_type eq 'restrictedportfolio') {
+
+ if (! defined($file_type) || $file_type ne 'portfolio') {
%fields =
- (%fields,
- 'metadata.title' => 'Title',
- 'metadata.author' =>'Author(s)',
- 'metadata.authorspace' => 'Author Space',
- 'metadata.modifyinguser' => 'Last Modifying User',
- 'metadata.subject' => 'Subject',
- 'metadata.keywords' => 'Keyword(s)',
- 'metadata.notes' => 'Notes',
- 'metadata.abstract' => 'Abstract',
- 'metadata.lowestgradelevel' => 'Lowest Grade Level',
- 'metadata.highestgradelevel' => 'Highest Grade Level');
- }
+ (%fields,
+ 'courserestricted' => 'Course Restricting Metadata');
+ }
+
if (! defined($file_type) || $file_type ne 'portfolio') {
%fields =
(%fields,
'domain' => 'Domain',
- 'standards' => 'Standards',
'mime' => 'MIME Type',
'language' => 'Language',
'creationdate' => 'Creation Date',
@@ -300,47 +289,103 @@ sub fieldnames {
'stdno' => 'Total number of students who have worked on this problem',
'difficulty' => 'Degree of difficulty',
'disc' => 'Degree of discrimination',
- 'dependencies' => 'Resources used by this resource',
+ 'dependencies' => 'Resources used by this resource',
);
}
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,$as_links)=@_;
+ $uri =~ s|.*/(portfolio/.*)$|$1|;
+ my ($res_uri,$meta_uri) = ($uri,$uri);
+
+ if ($uri =~ /\.meta$/) {
+ $res_uri =~ s/\.meta//;
+ } else {
+ $meta_uri .= '.meta';
+ }
+
+ 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,$path) = &portfolio_display_uri($uri);
+ %Apache::lonpublisher::metadatafields=();
+ %Apache::lonpublisher::metadatakeys=();
+ my $result=&Apache::lonnet::getfile($fn);
+ if ($result == -1){
+ $r->print(&mt('Creating new file [_1]'),$meta_uri);
+ } else {
+ &Apache::lonpublisher::metaeval($result);
+ }
+ $r->print('
');
+
+ $r->print('
');
+
+ return;
+}
sub select_course {
- my ($r)=@_;
+ my $output=$/;
+ my $current_restriction=
+ $Apache::lonpublisher::metadatafields{'courserestricted'};
+ my $selected = ($current_restriction eq 'none' ? 'selected="selected"'
+ : '');
+
+ $output .= '