--- loncom/interface/lonmeta.pm 2005/12/09 23:49:45 1.136 +++ loncom/interface/lonmeta.pm 2005/12/14 00:12:13 1.138 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Metadata display handler # -# $Id: lonmeta.pm,v 1.136 2005/12/09 23:49:45 albertel Exp $ +# $Id: lonmeta.pm,v 1.138 2005/12/14 00:12:13 banghart Exp $ # # Copyright Michigan State University Board of Trustees # @@ -291,8 +291,9 @@ sub fieldnames { } sub select_course { - my ($r)=@_; my %courses; + my $output; + my $selected; foreach my $key (keys (%env)) { if ($key =~ m/\.metadata\./) { $key =~ m/^course\.(.+)(\.metadata.+$)/; @@ -302,30 +303,27 @@ sub select_course { $courses{$coursekey} = $value; } } - $r->print('

Associate resource with a course


'); - $r->print('
'); - $r->print('Select course
'); - $r->print(''; + $output .= ''; foreach my $key (keys (%courses)) { - if ($meta_not_found) { - undef($meta_not_found); - $r->print('

Portfolio Meta-Data


'); - $r->print(''); - $r->print('Select your course
'); - $r->print('
'); - $r->print(''); - $r->print('
'); + if ($Apache::lonpublisher::metadatafields{'courserestricted'} eq $1) { + $selected = ' SELECTED '; + } else { + $selected = ''; + } + $output .= ''; } - return 'ok'; + $output .= '
'; + return ($output); } # Pretty printing of metadata field @@ -516,7 +514,8 @@ sub prettyinput { $cur_values_stu = $value; } if ($type eq 'courserestricted') { - return (''); + return (&select_course()); + # return (''); } if (($type eq 'keywords') || ($type eq 'subject') || ($type eq 'author')||($type eq 'notes') @@ -604,7 +603,8 @@ sub prettyinput { &relatedfield(0,$relatedsearchflag,$relatedsep); } if ($type eq 'courserestricted') { - return (''); + return (&select_course()); + #return (''); } # Dates @@ -653,7 +653,6 @@ sub handler { $r->print(&Apache::loncommon::bodytag ('Edit Portfolio File Information','','','',$resdomain)); &present_editable_metadata($r,$uri,'portfolio'); - &select_course($r); } elsif ($uri=~/^\/\~/) { # Construction space $r->print(&Apache::loncommon::bodytag @@ -1047,94 +1046,6 @@ ENDDEL } $r->print('
'.$bombs); } else { - my $displayfile='Catalog Information for '.$disuri; - if ($disuri=~/\/default$/) { - my $dir=$disuri; - $dir=~s/default$//; - $displayfile= - &mt('Default Cataloging Information for Directory').' '. - $dir; - } - %Apache::lonpublisher::metadatafields=(); - %Apache::lonpublisher::metadatakeys=(); - my $result=&Apache::lonnet::getfile($fn); - if ($result == -1){ - $r->print('Creating new '.$disuri); - } else { - &Apache::lonpublisher::metaeval($result); - } - $r->print(<$displayfile -
-ENDEDIT - $r->print(''); - my %lt=&fieldnames($file_type); - my $output; - my @fields; - if ($file_type eq 'portfolio') { - @fields = ('author','title','subject','keywords','abstract','notes','lowestgradelevel', - 'highestgradelevel','standards','courserestricted'); - } else { - @fields = ('author','title','subject','keywords','abstract','notes', - 'copyright','customdistributionfile','language', - 'standards', - 'lowestgradelevel','highestgradelevel','sourceavail','sourcerights', - 'obsolete','obsoletereplacement'); - } - my $metacourse; - if ($env{'form.metacourse'} ) { - $Apache::lonpublisher::metadatafields{'courserestricted'} = $env{'form.metacourse'}; - $metacourse = $env{'form.metacourse'}; - } else { - if (! $Apache::lonpublisher::metadatafields{'courserestricted'}) { - $Apache::lonpublisher::metadatafields{'courserestricted'}= - 'none'; - $metacourse = 'none'; - } else { - $metacourse = $Apache::lonpublisher::metadatafields{'courserestricted'}; - } - } - if (! $Apache::lonpublisher::metadatafields{'copyright'}) { - $Apache::lonpublisher::metadatafields{'copyright'}= - 'default'; - } - if ($metacourse ne 'none') { - $r->print('Using: '.$env{$metacourse.".description"}." metadata framework
"); - } - foreach my $field_name(@fields) { - - if (defined($env{'form.new_'.$field_name})) { - $Apache::lonpublisher::metadatafields{$field_name}= - join(',',&Apache::loncommon::get_env_multiple('form.new_'.$field_name)); - } - if ($metacourse ne 'none') { - # handle restrictions here - if ($env{$metacourse.'.metadata.'.$field_name.'.options'} =~ m/active/){ - $output.=('

'.$lt{$field_name}.': '. - &prettyinput($field_name, - $Apache::lonpublisher::metadatafields{$field_name}, - 'new_'.$field_name,'defaultmeta',undef,undef,undef,undef,$metacourse).'

'); - } elsif ($field_name eq 'courserestricted') { - $output.=( - &prettyinput($field_name, - $Apache::lonpublisher::metadatafields{$field_name}, - 'new_'.$field_name,'defaultmeta',undef,undef,undef,undef,$metacourse)); - } - } else { - if ($field_name ne 'courserestricted') { - $output.=('

'.$lt{$field_name}.': '. - &prettyinput($field_name, - $Apache::lonpublisher::metadatafields{$field_name}, - 'new_'.$field_name,'defaultmeta').'

'); - } else { - $output.=&prettyinput($field_name, - $Apache::lonpublisher::metadatafields{$field_name}, - 'new_'.$field_name,'defaultmeta'); - } - } - } if ($env{'form.store'}) { my $mfh; my $formname='store'; @@ -1195,9 +1106,87 @@ ENDEDIT '

'); } } + } + my $displayfile='Catalog Information for '.$disuri; + if ($disuri=~/\/default$/) { + my $dir=$disuri; + $dir=~s/default$//; + $displayfile= + &mt('Default Cataloging Information for Directory').' '. + $dir; } - $r->print($output.'
+ENDEDIT + $r->print(''); + my %lt=&fieldnames($file_type); + my $output; + my @fields; + if ($file_type eq 'portfolio') { + @fields = ('author','title','subject','keywords','abstract','notes','lowestgradelevel', + 'highestgradelevel','standards','courserestricted'); + } else { + @fields = ('author','title','subject','keywords','abstract','notes', + 'copyright','customdistributionfile','language', + 'standards', + 'lowestgradelevel','highestgradelevel','sourceavail','sourcerights', + 'obsolete','obsoletereplacement'); + } + if (! $Apache::lonpublisher::metadatafields{'courserestricted'}) { + $Apache::lonpublisher::metadatafields{'courserestricted'}= + 'none'; + } + if (! $Apache::lonpublisher::metadatafields{'copyright'}) { + $Apache::lonpublisher::metadatafields{'copyright'}= + 'default'; + } + if ($Apache::lonpublisher::metadatafields{'courserestricted'} ne 'none') { + $r->print('Using: '.$env{$Apache::lonpublisher::metadatafields{'courserestricted'}.".description"}. + " metadata framework
"); + } else { + $r->print("This resource is not associated with a metadata framework
"); + } + foreach my $field_name(@fields) { + + if (defined($env{'form.new_'.$field_name})) { + $Apache::lonpublisher::metadatafields{$field_name}= + join(',',&Apache::loncommon::get_env_multiple('form.new_'.$field_name)); + } + if ($Apache::lonpublisher::metadatafields{'courserestricted'} ne 'none') { + # handle restrictions here + if (($env{$Apache::lonpublisher::metadatafields{'courserestricted'}.'.metadata.'.$field_name.'.options'} =~ m/active/) || + ($field_name eq 'courserestricted')){ + $output.=('

'.$lt{$field_name}.': '. + &prettyinput($field_name, + $Apache::lonpublisher::metadatafields{$field_name}, + 'new_'.$field_name,'defaultmeta', + undef,undef,undef,undef, + $Apache::lonpublisher::metadatafields{'courserestricted'}).'

'); + } + } else { + + $output.=('

'.$lt{$field_name}.': '. + &prettyinput($field_name, + $Apache::lonpublisher::metadatafields{$field_name}, + 'new_'.$field_name,'defaultmeta').'

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