version 1.172, 2006/08/21 19:26:27
|
version 1.178, 2006/09/25 19:24:49
|
Line 237 sub fieldnames {
|
Line 237 sub fieldnames {
|
|
|
if (! defined($file_type) || $file_type ne 'portfolio') { |
if (! defined($file_type) || $file_type ne 'portfolio') { |
%fields = |
%fields = |
(%fields, |
|
'courserestricted' => 'Course Restricting Metadata'); |
|
} |
|
|
|
if (! defined($file_type) || $file_type ne 'portfolio') { |
|
%fields = |
|
(%fields, |
(%fields, |
'domain' => 'Domain', |
'domain' => 'Domain', |
'mime' => 'MIME Type', |
'mime' => 'MIME Type', |
Line 607 sub prettyinput {
|
Line 601 sub prettyinput {
|
return (&select_course()); |
return (&select_course()); |
# return ('<input type="hidden" name="new_courserestricted" value="'.$course_key.'" />'); |
# return ('<input type="hidden" name="new_courserestricted" value="'.$course_key.'" />'); |
} |
} |
|
my $course = $env{'request.course.id'}; |
if (($type eq 'keywords') || ($type eq 'subject') |
if (($type eq 'keywords') || ($type eq 'subject') |
|| ($type eq 'author')||($type eq 'notes') |
|| ($type eq 'author')||($type eq 'notes') |
|| ($type eq 'abstract')|| ($type eq 'title')|| ($type eq 'standards')) { |
|| ($type eq 'abstract')|| ($type eq 'title')|| ($type eq 'standards') |
|
|| (exists($env{'course.'.$env{'request.course.id'}.'.metadata.'.$type.'.added'}))) { |
if ($values) { |
if ($values) { |
if ($only_one) { |
if ($only_one) { |
$output .= (&Apache::loncommon::select_form($cur_values_inst[0],'new_'.$type,%meta_options)); |
$output .= (&Apache::loncommon::select_form($cur_values_inst[0],'new_'.$type,%meta_options)); |
Line 624 sub prettyinput {
|
Line 620 sub prettyinput {
|
$relatedvalue); |
$relatedvalue); |
} |
} |
return ($output); |
return ($output); |
} |
} |
if (($type eq 'lowestgradelevel') || |
if (($type eq 'lowestgradelevel') || |
($type eq 'highestgradelevel')) { |
($type eq 'highestgradelevel')) { |
return &Apache::loncommon::select_level_form($value,$fieldname). |
return &Apache::loncommon::select_level_form($value,$fieldname). |
Line 748 sub handler {
|
Line 744 sub handler {
|
$r->print(&Apache::loncommon::start_page('Edit Group Portfolio File Catalog Information', |
$r->print(&Apache::loncommon::start_page('Edit Group Portfolio File Catalog Information', |
undef, |
undef, |
{'domain' => $resdomain,})); |
{'domain' => $resdomain,})); |
|
|
&present_editable_metadata($r,$uri,'groups'); |
&present_editable_metadata($r,$uri,'groups'); |
} elsif ($uri=~m|^/~|) { |
} elsif ($uri=~m|^/~|) { |
# Construction space |
# Construction space |
Line 1189 ENDEDIT
|
Line 1184 ENDEDIT
|
my %lt=&fieldnames($file_type); |
my %lt=&fieldnames($file_type); |
my $output; |
my $output; |
my @fields; |
my @fields; |
if ($file_type eq 'portfolio') { |
my $added_metadata_fields; |
@fields = ('author','title','subject','keywords','abstract', |
if ($file_type eq 'portfolio' || $file_type eq 'groups') { |
'notes','lowestgradelevel', |
if(exists ($env{$Apache::lonpublisher::metadatafields{'courserestricted'}.'.metadata.fieldlist'})) { |
'highestgradelevel','standards'); |
# retrieve fieldnames (in order) from the course restricted list |
|
@fields = (split /,/,$env{$Apache::lonpublisher::metadatafields{'courserestricted'}.'.metadata.fieldlist'}); |
|
} else { |
|
# no saved field list, use default list |
|
@fields = ('author','title','subject','keywords','abstract', |
|
'notes','lowestgradelevel', |
|
'highestgradelevel','standards'); |
|
$added_metadata_fields = &Apache::lonparmset::get_added_meta_fieldnames(); |
|
|
|
$env{$Apache::lonpublisher::metadatafields{'courserestricted'}.'.metadata.fieldlist'} = join (",",@fields); |
|
} |
} else { |
} else { |
@fields = ('author','title','subject','keywords','abstract','notes', |
@fields = ('author','title','subject','keywords','abstract','notes', |
'copyright','customdistributionfile','language', |
'copyright','customdistributionfile','language', |
Line 1233 ENDEDIT
|
Line 1238 ENDEDIT
|
$r->print("This resource is not associated with a course.<br />"); |
$r->print("This resource is not associated with a course.<br />"); |
} |
} |
} |
} |
|
foreach my $field_name(keys (%$added_metadata_fields)) { |
|
push (@fields,$field_name); |
|
$Apache::lonpublisher::metadatafields{$field_name} = |
|
$$added_metadata_fields{$field_name}; |
|
$lt{$field_name} = $$added_metadata_fields{$field_name}; |
|
} |
foreach my $field_name (@fields) { |
foreach my $field_name (@fields) { |
|
|
if (defined($env{'form.new_'.$field_name})) { |
if (defined($env{'form.new_'.$field_name})) { |
$Apache::lonpublisher::metadatafields{$field_name}= |
$Apache::lonpublisher::metadatafields{$field_name}= |
join(',',&Apache::loncommon::get_env_multiple('form.new_'.$field_name)); |
join(',',&Apache::loncommon::get_env_multiple('form.new_'.$field_name)); |
Line 1268 ENDEDIT
|
Line 1278 ENDEDIT
|
$Apache::lonpublisher::metadatafields{'keywords'} = |
$Apache::lonpublisher::metadatafields{'keywords'} = |
join (',', &Apache::loncommon::get_env_multiple('form.new_keywords')); |
join (',', &Apache::loncommon::get_env_multiple('form.new_keywords')); |
} |
} |
|
foreach my $field (sort keys %Apache::lonpublisher::metadatafields) { |
foreach (sort keys %Apache::lonpublisher::metadatafields) { |
next if ($field =~ /\./); |
next if ($_ =~ /\./); |
my $unikey=$field; |
my $unikey=$_; |
$unikey=~/^([A-Za-z_]+)/; |
$unikey=~/^([A-Za-z]+)/; |
|
my $tag=$1; |
my $tag=$1; |
$tag=~tr/A-Z/a-z/; |
$tag=~tr/A-Z/a-z/; |
$file_content.= "\n\<$tag"; |
$file_content.= "\n\<$tag"; |
foreach (split(/\,/, |
foreach my $key (split(/\,/, |
$Apache::lonpublisher::metadatakeys{$unikey}) |
$Apache::lonpublisher::metadatakeys{$unikey}) |
) { |
) { |
my $value= |
my $value= |
$Apache::lonpublisher::metadatafields{$unikey.'.'.$_}; |
$Apache::lonpublisher::metadatafields{$unikey.'.'.$key}; |
$value=~s/\"/\'\'/g; |
$value=~s/\"/\'\'/g; |
$file_content.=' '.$_.'="'.$value.'"' ; |
$file_content.=' '.$key.'="'.$value.'"' ; |
# print $mfh ' '.$_.'="'.$value.'"'; |
|
} |
} |
$file_content.= '>'. |
$file_content.= '>'. |
&HTML::Entities::encode |
&HTML::Entities::encode |
Line 1291 ENDEDIT
|
Line 1299 ENDEDIT
|
'<>&"'). |
'<>&"'). |
'</'.$tag.'>'; |
'</'.$tag.'>'; |
} |
} |
if ($fn =~ m|^$Apache::lonnet::perlvar{'lonDocRoot'}/userfiles/portfolio/|) { |
if ($fn =~ m|^$Apache::lonnet::perlvar{'lonDocRoot'}/userfiles|) { |
my ($path, $new_fn) = ($fn =~ m|/(portfolio.*)/([^/]*)$|); |
my ($path, $new_fn); |
|
if ($fn =~ m|\w+/groups/\w+/portfolio/|) { |
|
($path, $new_fn) = ($fn =~ m|/(groups/\w+/portfolio.*)/([^/]*)$|); |
|
} else { |
|
($path, $new_fn) = ($fn =~ m|/(portfolio.*)/([^/]*)$|); |
|
} |
$r->print(&store_portfolio_metadata($formname,$file_content,$path, |
$r->print(&store_portfolio_metadata($formname,$file_content,$path, |
$new_fn)); |
$new_fn)); |
unless ($env{'form.associate'}) { |
} else { |
$r->print(&Apache::portfolio::done("Return to Portfolio",'/adm/portfolio')); |
|
return; |
|
} |
|
} elsif ($fn =~ m|^$Apache::lonnet::perlvar{'lonDocRoot'}/userfiles/groups/\w+/portfolio/|) { |
|
my ($path, $new_fn) = ($fn =~ m|/(groups/\w+/portfolio.*)/([^/]*)$|); |
|
$r->print(&store_portfolio_metadata($formname,$file_content,$path,$new_fn)); |
|
unless ($env{'form.associate'}) { |
|
$r->print(&Apache::portfolio::done("Return to Portfolio",'/adm/portfolio')); |
|
return; |
|
} |
|
} else { |
|
if (! ($mfh=Apache::File->new('>'.$fn))) { |
if (! ($mfh=Apache::File->new('>'.$fn))) { |
$r->print('<p><font color="red">'. |
$r->print('<p><font color="red">'. |
&mt('Could not write metadata').', '. |
&mt('Could not write metadata').', '. |
Line 1317 ENDEDIT
|
Line 1319 ENDEDIT
|
' '.&Apache::lonlocal::locallocaltime(time). |
' '.&Apache::lonlocal::locallocaltime(time). |
'</font></p>'); |
'</font></p>'); |
} |
} |
unless ($env{'form.associate'}) { |
|
$r->print(&Apache::portfolio::done("Return to Portfolio",'/adm/portfolio')); |
|
return; |
|
} |
|
} |
} |
} |
} |
|
|
$r->print($output.'<br /><input type="submit" name="store" value="'. |
$r->print($output.'<br /><input type="submit" name="store" value="'. |
&mt('Store Catalog Information').'" />'); |
&mt('Store Catalog Information').'" />'); |
|
|
Line 1333 ENDEDIT
|
Line 1330 ENDEDIT
|
$r->print('<input type="hidden" name="group" value="'.$group.'" />'); |
$r->print('<input type="hidden" name="group" value="'.$group.'" />'); |
} |
} |
$r->print('<input type="hidden" name="currentpath" value="'.$env{'form.currentpath'}.'" />'); |
$r->print('<input type="hidden" name="currentpath" value="'.$env{'form.currentpath'}.'" />'); |
$r->print('</form> |
$r->print('</form><br /><br /><form method="post" action="'.$port_path.'">'); |
<br /><br /><form method="post" action="'.$port_path.'">'. |
if ($group) { |
'<input type="hidden" name="group" value="'.$group.'" />'. |
$r->print('<input type="hidden" name="group" value="'.$group.'" />'); |
'<input type="hidden" name="currentpath" value="'.$path.'" />'. |
} |
|
$r->print('<input type="hidden" name="currentpath" value="'.$path.'" />'. |
'<input type="submit" name="cancel" value="'.&mt('Discard Edits and Return to Portfolio').'" />'); |
'<input type="submit" name="cancel" value="'.&mt('Discard Edits and Return to Portfolio').'" />'); |
} |
} |
} |
} |