--- loncom/interface/lonmeta.pm 2005/12/08 02:17:56 1.135 +++ loncom/interface/lonmeta.pm 2005/12/15 22:18:57 1.139 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Metadata display handler # -# $Id: lonmeta.pm,v 1.135 2005/12/08 02:17:56 banghart Exp $ +# $Id: lonmeta.pm,v 1.139 2005/12/15 22:18:57 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('

Course Related Meta-Data


'); - $r->print('
'); - $r->print('Select course restrictions
'); - $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 @@ -1083,25 +1082,23 @@ ENDEDIT '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{'courserestricted'}) && + (! $env{'form.new_courserestricted'})) { + $Apache::lonpublisher::metadatafields{'courserestricted'}= + 'none'; + } elsif ($env{'form.new_courserestricted'}) { + $Apache::lonpublisher::metadatafields{'courserestricted'}= + $env{'form.new_courserestricted'}; + } if (! $Apache::lonpublisher::metadatafields{'copyright'}) { $Apache::lonpublisher::metadatafields{'copyright'}= 'default'; } - if ($metacourse ne 'none') { - $r->print('Using: '.$env{$metacourse.".description"}." metadata framework
"); + 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) { @@ -1109,33 +1106,33 @@ ENDEDIT $Apache::lonpublisher::metadatafields{$field_name}= join(',',&Apache::loncommon::get_env_multiple('form.new_'.$field_name)); } - if ($metacourse ne 'none') { + if ($Apache::lonpublisher::metadatafields{'courserestricted'} ne 'none') { # handle restrictions here - if ($env{$metacourse.'.metadata.'.$field_name.'.options'} =~ m/active/){ + 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,$metacourse).'

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

'); } } 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'}) { + + $r->print($output.'
'); + + } + $r->print(''); + if ($env{'form.store'}) { my $mfh; my $formname='store'; my $file_content; @@ -1196,16 +1193,6 @@ ENDEDIT } } } - my $button_label; - if ($fn =~ /\/portfolio\//) { - $button_label = 'Store Metadata'; - } else { - $button_label = 'Store Catalog Information'; - } - $r->print($output.'
'); - } - $r->print(''); return; }