version 1.169, 2006/08/16 18:02:01
|
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 719 sub prettyinput {
|
Line 715 sub prettyinput {
|
# Main Handler |
# Main Handler |
sub handler { |
sub handler { |
my $r=shift; |
my $r=shift; |
# |
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
['currentpath']); |
['currentpath']); |
my $uri=$r->uri; |
my $uri=$r->uri; |
Line 728 sub handler {
|
Line 723 sub handler {
|
&Apache::loncommon::content_type($r,'text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
$r->send_http_header; |
$r->send_http_header; |
return OK if $r->header_only; |
return OK if $r->header_only; |
# |
|
my ($resdomain,$resuser)= |
my ($resdomain,$resuser)= |
(&Apache::lonnet::declutter($uri)=~/^(\w+)\/(\w+)\//); |
(&Apache::lonnet::declutter($uri)=~/^(\w+)\/(\w+)\//); |
if ($uri=~m:/adm/bombs/(.*)$:) { |
if ($uri=~m:/adm/bombs/(.*)$:) { |
Line 746 sub handler {
|
Line 740 sub handler {
|
} else { |
} else { |
&pre_select_course($r,$uri); |
&pre_select_course($r,$uri); |
} |
} |
|
} elsif ($uri=~m|^/editupload/[^/]+/[^/]+/groups/|) { |
|
$r->print(&Apache::loncommon::start_page('Edit Group Portfolio File Catalog Information', |
|
undef, |
|
{'domain' => $resdomain,})); |
|
&present_editable_metadata($r,$uri,'groups'); |
} elsif ($uri=~m|^/~|) { |
} elsif ($uri=~m|^/~|) { |
# Construction space |
# Construction space |
$r->print(&Apache::loncommon::start_page('Edit Catalog nformation', |
$r->print(&Apache::loncommon::start_page('Edit Catalog nformation', |
Line 1106 sub print_dynamic_metadata {
|
Line 1105 sub print_dynamic_metadata {
|
##################################################### |
##################################################### |
##################################################### |
##################################################### |
sub present_editable_metadata { |
sub present_editable_metadata { |
my ($r,$uri, $file_type) = @_; |
my ($r,$uri,$file_type) = @_; |
# Construction Space Call |
# Construction Space Call |
# Header |
# Header |
my $disuri=$uri; |
my $disuri=$uri; |
Line 1185 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 1196 ENDEDIT
|
Line 1205 ENDEDIT
|
'lowestgradelevel','highestgradelevel','sourceavail','sourcerights', |
'lowestgradelevel','highestgradelevel','sourceavail','sourcerights', |
'obsolete','obsoletereplacement'); |
'obsolete','obsoletereplacement'); |
} |
} |
|
if ($file_type eq 'groups') { |
|
$Apache::lonpublisher::metadatafields{'courserestricted'}= |
|
'course.'.$env{'request.course.id'}; |
|
} |
if ((! $Apache::lonpublisher::metadatafields{'courserestricted'}) && |
if ((! $Apache::lonpublisher::metadatafields{'courserestricted'}) && |
(! $env{'form.new_courserestricted'})) { |
(! $env{'form.new_courserestricted'}) && (! $file_type eq 'groups')) { |
$Apache::lonpublisher::metadatafields{'courserestricted'}= |
$Apache::lonpublisher::metadatafields{'courserestricted'}= |
'none'; |
'none'; |
} elsif ($env{'form.new_courserestricted'}) { |
} elsif ($env{'form.new_courserestricted'}) { |
Line 1208 ENDEDIT
|
Line 1221 ENDEDIT
|
$Apache::lonpublisher::metadatafields{'copyright'}= |
$Apache::lonpublisher::metadatafields{'copyright'}= |
'default'; |
'default'; |
} |
} |
if ($file_type eq 'portfolio') { |
if (($file_type eq 'portfolio') || ($file_type eq 'groups')) { |
if (! $Apache::lonpublisher::metadatafields{'mime'}) { |
if (! $Apache::lonpublisher::metadatafields{'mime'}) { |
($Apache::lonpublisher::metadatafields{'mime'}) = |
($Apache::lonpublisher::metadatafields{'mime'}) = |
( $target=~/\.(\w+)$/ ); |
( $target=~/\.(\w+)$/ ); |
Line 1225 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 1260 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 1283 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",'/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",'/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 1309 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",'/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 1325 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').'" />'); |
} |
} |
} |
} |