version 1.137, 2005/12/13 11:52:37
|
version 1.138, 2005/12/14 00:12:13
|
Line 293 sub fieldnames {
|
Line 293 sub fieldnames {
|
sub select_course { |
sub select_course { |
my %courses; |
my %courses; |
my $output; |
my $output; |
|
my $selected; |
foreach my $key (keys (%env)) { |
foreach my $key (keys (%env)) { |
if ($key =~ m/\.metadata\./) { |
if ($key =~ m/\.metadata\./) { |
$key =~ m/^course\.(.+)(\.metadata.+$)/; |
$key =~ m/^course\.(.+)(\.metadata.+$)/; |
Line 302 sub select_course {
|
Line 303 sub select_course {
|
$courses{$coursekey} = $value; |
$courses{$coursekey} = $value; |
} |
} |
} |
} |
$output = '<h3>Associate resource with a course</h3><br />'; |
|
$output .= '<form action="" method="post">'; |
|
$output .= 'Select course <br />'; |
|
$output .= '<select name="metacourse" >'; |
|
my $meta_not_found = 1; |
my $meta_not_found = 1; |
|
if ($Apache::lonpublisher::metadatafields{'courserestricted'} eq 'none') { |
|
$selected = ' SELECTED '; |
|
} else { |
|
$selected = ''; |
|
} |
|
$output .= '<select name="new_courserestricted" >'; |
|
$output .= '<option value="none" '.$selected.'>None</option>'; |
foreach my $key (keys (%courses)) { |
foreach my $key (keys (%courses)) { |
if ($meta_not_found) { |
|
undef($meta_not_found); |
|
$output .= '<h3>Portfolio Meta-Data</h3><br />'; |
|
$output .= '<form action="" method="post">'; |
|
$output .= 'Select your course<br />'; |
|
$output .= '<select name="metacourse" >'; |
|
} |
|
$key =~ m/(^.+)\.description$/; |
$key =~ m/(^.+)\.description$/; |
$output .= '<option value="'.$1.'">'; |
if ($Apache::lonpublisher::metadatafields{'courserestricted'} eq $1) { |
|
$selected = ' SELECTED '; |
|
} else { |
|
$selected = ''; |
|
} |
|
$output .= '<option value="'.$1.'"'.$selected.'>'; |
$output .= $courses{$key}; |
$output .= $courses{$key}; |
$output .= '</option>'; |
$output .= '</option>'; |
} |
} |
unless ($meta_not_found) { |
$output .= '</select><br />'; |
$output .= '</select><br />'; |
|
$output .= '<input type="submit" value="Associate" />'; |
|
$output .= '</form>'; |
|
} |
|
return ($output); |
return ($output); |
} |
} |
# Pretty printing of metadata field |
# Pretty printing of metadata field |
Line 516 sub prettyinput {
|
Line 514 sub prettyinput {
|
$cur_values_stu = $value; |
$cur_values_stu = $value; |
} |
} |
if ($type eq 'courserestricted') { |
if ($type eq 'courserestricted') { |
return ('<input type="hidden" name="new_courserestricted" value="'.$course_key.'" />'); |
return (&select_course()); |
|
# return ('<input type="hidden" name="new_courserestricted" value="'.$course_key.'" />'); |
} |
} |
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') |
Line 604 sub prettyinput {
|
Line 603 sub prettyinput {
|
&relatedfield(0,$relatedsearchflag,$relatedsep); |
&relatedfield(0,$relatedsearchflag,$relatedsep); |
} |
} |
if ($type eq 'courserestricted') { |
if ($type eq 'courserestricted') { |
return ('<input type="hidden" name="new_courserestricted" value="'.$course_key.'" />'); |
return (&select_course()); |
|
#return ('<input type="hidden" name="new_courserestricted" value="'.$course_key.'" />'); |
} |
} |
|
|
# Dates |
# Dates |
Line 1002 sub present_editable_metadata {
|
Line 1002 sub present_editable_metadata {
|
# Header |
# Header |
my $disuri=$uri; |
my $disuri=$uri; |
my $fn=&Apache::lonnet::filelocation('',$uri); |
my $fn=&Apache::lonnet::filelocation('',$uri); |
my $metacourse; |
|
$disuri=~s/^\/\~/\/priv\//; |
$disuri=~s/^\/\~/\/priv\//; |
$disuri=~s/\.meta$//; |
$disuri=~s/\.meta$//; |
$disuri=~s|^/editupload||; |
$disuri=~s|^/editupload||; |
Line 1047 ENDDEL
|
Line 1046 ENDDEL
|
} |
} |
$r->print('<br />'.$bombs); |
$r->print('<br />'.$bombs); |
} else { |
} else { |
|
if ($env{'form.store'}) { |
|
my $mfh; |
|
my $formname='store'; |
|
my $file_content; |
|
foreach my $meta_field (keys %env) { |
|
if (&Apache::loncommon::get_env_multiple('form.new_keywords')) { |
|
$Apache::lonpublisher::metadatafields{'keywords'} = |
|
join (',', &Apache::loncommon::get_env_multiple('form.new_keywords')); |
|
} |
|
} |
|
foreach (sort keys %Apache::lonpublisher::metadatafields) { |
|
next if ($_ =~ /\./); |
|
my $unikey=$_; |
|
$unikey=~/^([A-Za-z]+)/; |
|
my $tag=$1; |
|
$tag=~tr/A-Z/a-z/; |
|
$file_content.= "\n\<$tag"; |
|
foreach (split(/\,/, |
|
$Apache::lonpublisher::metadatakeys{$unikey}) |
|
) { |
|
my $value= |
|
$Apache::lonpublisher::metadatafields{$unikey.'.'.$_}; |
|
$value=~s/\"/\'\'/g; |
|
$file_content.=' '.$_.'="'.$value.'"' ; |
|
# print $mfh ' '.$_.'="'.$value.'"'; |
|
} |
|
$file_content.= '>'. |
|
&HTML::Entities::encode |
|
($Apache::lonpublisher::metadatafields{$unikey}, |
|
'<>&"'). |
|
'</'.$tag.'>'; |
|
} |
|
if ($fn =~ /\/portfolio\//) { |
|
$fn =~ /\/portfolio\/(.*)$/; |
|
my $new_fn = '/'.$1; |
|
$env{'form.'.$formname}=$file_content."\n"; |
|
$env{'form.'.$formname.'.filename'}=$new_fn; |
|
&Apache::lonnet::userfileupload('uploaddoc','', |
|
'portfolio'.$env{'form.currentpath'}); |
|
if (&Apache::lonnet::userfileupload($formname,'','portfolio') eq 'error: no uploaded file') { |
|
$r->print('<p><font color="red">'. |
|
&mt('Could not write metadata').', '. |
|
&mt('FAIL').'</font></p>'); |
|
} else { |
|
$r->print('<p><font color="blue">'.&mt('Wrote Metadata'). |
|
' '.&Apache::lonlocal::locallocaltime(time). |
|
'</font></p>'); |
|
} |
|
} else { |
|
if (! ($mfh=Apache::File->new('>'.$fn))) { |
|
$r->print('<p><font color="red">'. |
|
&mt('Could not write metadata').', '. |
|
&mt('FAIL').'</font></p>'); |
|
} else { |
|
print $mfh $file_content; |
|
$r->print('<p><font color="blue">'.&mt('Wrote Metadata'). |
|
' '.&Apache::lonlocal::locallocaltime(time). |
|
'</font></p>'); |
|
} |
|
} |
|
} |
my $displayfile='Catalog Information for '.$disuri; |
my $displayfile='Catalog Information for '.$disuri; |
if ($disuri=~/\/default$/) { |
if ($disuri=~/\/default$/) { |
my $dir=$disuri; |
my $dir=$disuri; |
Line 1083 ENDEDIT
|
Line 1143 ENDEDIT
|
'lowestgradelevel','highestgradelevel','sourceavail','sourcerights', |
'lowestgradelevel','highestgradelevel','sourceavail','sourcerights', |
'obsolete','obsoletereplacement'); |
'obsolete','obsoletereplacement'); |
} |
} |
if ($env{'form.metacourse'} ) { |
if (! $Apache::lonpublisher::metadatafields{'courserestricted'}) { |
$Apache::lonpublisher::metadatafields{'courserestricted'} = $env{'form.metacourse'}; |
$Apache::lonpublisher::metadatafields{'courserestricted'}= |
$metacourse = $env{'form.metacourse'}; |
'none'; |
} else { |
} |
if (! $Apache::lonpublisher::metadatafields{'courserestricted'}) { |
|
$Apache::lonpublisher::metadatafields{'courserestricted'}= |
|
'none'; |
|
$metacourse = 'none'; |
|
} else { |
|
$metacourse = $Apache::lonpublisher::metadatafields{'courserestricted'}; |
|
} |
|
} |
|
if (! $Apache::lonpublisher::metadatafields{'copyright'}) { |
if (! $Apache::lonpublisher::metadatafields{'copyright'}) { |
$Apache::lonpublisher::metadatafields{'copyright'}= |
$Apache::lonpublisher::metadatafields{'copyright'}= |
'default'; |
'default'; |
} |
} |
if ($metacourse ne 'none') { |
if ($Apache::lonpublisher::metadatafields{'courserestricted'} ne 'none') { |
$r->print('Using: <strong> '.$env{$metacourse.".description"}. |
$r->print('Using: <strong> '.$env{$Apache::lonpublisher::metadatafields{'courserestricted'}.".description"}. |
"</strong> metadata framework<br />"); |
"</strong> metadata framework<br />"); |
} else { |
} else { |
$r->print("This resources is not associated with a metadata framework<br />"); |
$r->print("This resource is not associated with a metadata framework<br />"); |
} |
} |
foreach my $field_name(@fields) { |
foreach my $field_name(@fields) { |
|
|
Line 1111 ENDEDIT
|
Line 1163 ENDEDIT
|
$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)); |
} |
} |
if ($metacourse ne 'none') { |
if ($Apache::lonpublisher::metadatafields{'courserestricted'} ne 'none') { |
# handle restrictions here |
# 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.=('<p>'.$lt{$field_name}.': '. |
$output.=('<p>'.$lt{$field_name}.': '. |
&prettyinput($field_name, |
&prettyinput($field_name, |
$Apache::lonpublisher::metadatafields{$field_name}, |
$Apache::lonpublisher::metadatafields{$field_name}, |
'new_'.$field_name,'defaultmeta',undef,undef,undef,undef,$metacourse).'</p>'); |
'new_'.$field_name,'defaultmeta', |
} elsif ($field_name eq 'courserestricted') { |
undef,undef,undef,undef, |
$output.=( |
$Apache::lonpublisher::metadatafields{'courserestricted'}).'</p>'); |
&prettyinput($field_name, |
|
$Apache::lonpublisher::metadatafields{$field_name}, |
|
'new_'.$field_name,'defaultmeta',undef,undef,undef,undef,$metacourse)); |
|
} |
} |
} else { |
} else { |
if ($field_name ne 'courserestricted') { |
|
$output.=('<p>'.$lt{$field_name}.': '. |
$output.=('<p>'.$lt{$field_name}.': '. |
&prettyinput($field_name, |
&prettyinput($field_name, |
$Apache::lonpublisher::metadatafields{$field_name}, |
$Apache::lonpublisher::metadatafields{$field_name}, |
'new_'.$field_name,'defaultmeta').'</p>'); |
'new_'.$field_name,'defaultmeta').'</p>'); |
} else { |
|
$output.=&prettyinput($field_name, |
|
$Apache::lonpublisher::metadatafields{$field_name}, |
|
'new_'.$field_name,'defaultmeta'); |
|
} |
|
} |
} |
} |
} |
|
|
if ($env{'form.store'}) { |
|
my $mfh; |
|
my $formname='store'; |
|
my $file_content; |
|
foreach my $meta_field (keys %env) { |
|
if (&Apache::loncommon::get_env_multiple('form.new_keywords')) { |
|
$Apache::lonpublisher::metadatafields{'keywords'} = |
|
join (',', &Apache::loncommon::get_env_multiple('form.new_keywords')); |
|
} |
|
} |
|
foreach (sort keys %Apache::lonpublisher::metadatafields) { |
|
next if ($_ =~ /\./); |
|
my $unikey=$_; |
|
$unikey=~/^([A-Za-z]+)/; |
|
my $tag=$1; |
|
$tag=~tr/A-Z/a-z/; |
|
$file_content.= "\n\<$tag"; |
|
foreach (split(/\,/, |
|
$Apache::lonpublisher::metadatakeys{$unikey}) |
|
) { |
|
my $value= |
|
$Apache::lonpublisher::metadatafields{$unikey.'.'.$_}; |
|
$value=~s/\"/\'\'/g; |
|
$file_content.=' '.$_.'="'.$value.'"' ; |
|
# print $mfh ' '.$_.'="'.$value.'"'; |
|
} |
|
$file_content.= '>'. |
|
&HTML::Entities::encode |
|
($Apache::lonpublisher::metadatafields{$unikey}, |
|
'<>&"'). |
|
'</'.$tag.'>'; |
|
} |
|
if ($fn =~ /\/portfolio\//) { |
|
$fn =~ /\/portfolio\/(.*)$/; |
|
my $new_fn = '/'.$1; |
|
$env{'form.'.$formname}=$file_content."\n"; |
|
$env{'form.'.$formname.'.filename'}=$new_fn; |
|
&Apache::lonnet::userfileupload('uploaddoc','', |
|
'portfolio'.$env{'form.currentpath'}); |
|
if (&Apache::lonnet::userfileupload($formname,'','portfolio') eq 'error: no uploaded file') { |
|
$r->print('<p><font color="red">'. |
|
&mt('Could not write metadata').', '. |
|
&mt('FAIL').'</font></p>'); |
|
} else { |
|
$r->print('<p><font color="blue">'.&mt('Wrote Metadata'). |
|
' '.&Apache::lonlocal::locallocaltime(time). |
|
'</font></p>'); |
|
} |
|
} else { |
|
if (! ($mfh=Apache::File->new('>'.$fn))) { |
|
$r->print('<p><font color="red">'. |
|
&mt('Could not write metadata').', '. |
|
&mt('FAIL').'</font></p>'); |
|
} else { |
|
print $mfh $file_content; |
|
$r->print('<p><font color="blue">'.&mt('Wrote Metadata'). |
|
' '.&Apache::lonlocal::locallocaltime(time). |
|
'</font></p>'); |
|
} |
|
} |
|
} |
|
$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').'">'); |
|
|
} |
} |
$r->print('</form>'); |
$r->print('</form>'); |
if ($metacourse eq 'none') { |
|
$r->print(&select_course()); |
|
} |
|
return; |
return; |
} |
} |
|
|