--- loncom/interface/lonmeta.pm 2004/06/16 18:33:46 1.80 +++ loncom/interface/lonmeta.pm 2005/02/17 08:29:43 1.92 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Metadata display handler # -# $Id: lonmeta.pm,v 1.80 2004/06/16 18:33:46 matthew Exp $ +# $Id: lonmeta.pm,v 1.92 2005/02/17 08:29:43 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -61,7 +61,6 @@ use Apache::lonmsg; ############################################################ sub get_dynamic_metadata_from_sql { my ($url) = shift(); - # &Apache::lonnet::logthis('url = '.$url); my ($authordom,$author)=($url=~m:^/res/(\w+)/(\w+)/:); if (! defined($authordom)) { $authordom = shift(); @@ -72,11 +71,12 @@ sub get_dynamic_metadata_from_sql { if (! defined($authordom) || ! defined($author)) { return (); } - my @Fields = ('url', + my @Fields = ('url','count','course', 'goto','goto_list', 'comefrom','comefrom_list', 'sequsage','sequsage_list', 'stdno','stdno_list', + 'dependencies', 'avetries','avetries_list', 'difficulty','difficulty_list', 'disc','disc_list', @@ -113,7 +113,6 @@ sub get_dynamic_metadata_from_sql { my $url = $Data[0]; for (my $i=0;$i<=$#Fields;$i++) { $ReturnHash{$url}->{$Fields[$i]}=$Data[$i]; - # &Apache::lonnet::logthis(' '.$Fields[$i].' => '.$Data[$i]); } } $finished = 1; @@ -237,6 +236,21 @@ sub diffgraph { # The field names sub fieldnames { + my $file_type=shift; + if ($file_type eq 'portfolio') { + return &Apache::lonlocal::texthash + ( + 'title' => 'Title', + 'author' =>'Author(s)', + 'authorspace' => 'Author Space', + 'modifyinguser' => 'Last Modifying User', + 'subject' => 'Subject', + 'keywords' => 'Keyword(s)', + 'notes' => 'Notes', + 'abstract' => 'Abstract', + 'lowestgradelevel' => 'Lowest Grade Level', + 'highestgradelevel' => 'Highest Grade Level'); + } else { return &Apache::lonlocal::texthash ( 'title' => 'Title', @@ -257,7 +271,7 @@ sub fieldnames { 'owner' => 'Publisher/Owner', 'copyright' => 'Copyright/Distribution', 'customdistributionfile' => 'Custom Distribution File', - 'sourceavail' => 'Source Availible', + 'sourceavail' => 'Source Available', 'sourcerights' => 'Source Custom Distribution File', 'obsolete' => 'Obsolete', 'obsoletereplacement' => 'Suggested Replacement for Obsolete File', @@ -279,13 +293,16 @@ sub fieldnames { 'stdno' => 'Total number of students who have worked on this problem', 'difficulty' => 'Degree of difficulty', 'disc' => 'Degree of discrimination', + 'dependencies' => 'Resources used by this resource', ); + } } # Pretty printing of metadata field sub prettyprint { - my ($type,$value)=@_; + my ($type,$value,$target,$prefix,$form,$noformat)=@_; +# $target,$prefix,$form are optional and for filecrumbs only if (! defined($value)) { return ' '; } @@ -339,8 +356,9 @@ sub prettyprint { ($type eq 'obsoletereplacement') || ($type eq 'goto_list') || ($type eq 'comefrom_list') || - ($type eq 'sequsage_list')) { - return join('
',map { + ($type eq 'sequsage_list') || + ($type eq 'dependencies')) { + return ''; } # Evaluations if (($type eq 'clear') || @@ -529,13 +546,19 @@ sub handler { # my ($resdomain,$resuser)= (&Apache::lonnet::declutter($uri)=~/^(\w+)\/(\w+)\//); - $r->print(''. + my $html=&Apache::lonxml::xmlbegin(); + $r->print($html.'<head><title>'. 'Catalog Information'. ''); if ($uri=~m:/adm/bombs/(.*)$:) { $r->print(&Apache::loncommon::bodytag('Error Messages')); # Looking for all bombs? &report_bombs($r,$uri); + } elsif ($uri=~/\/portfolio\//) { + $r->print(&Apache::loncommon::bodytag + ('Edit Portfolio File Information','','','',$resdomain)); + &present_editable_metadata($r,$uri,'portfolio'); + } elsif ($uri=~/^\/\~/) { # Construction space $r->print(&Apache::loncommon::bodytag @@ -543,7 +566,7 @@ sub handler { &present_editable_metadata($r,$uri); } else { $r->print(&Apache::loncommon::bodytag - ('Catalog Information','','','',$resdomain)); + ('Catalog Information','','','',$resdomain)); &present_uneditable_metadata($r,$uri); } $r->print(''); @@ -664,7 +687,7 @@ $disuri
$obsoletewarning $versiondisplay

- +
$table
ENDHEAD @@ -694,7 +717,7 @@ sub print_dynamic_metadata { exists($dynmeta{'goto'}) || exists($dynmeta{'course'})) { $r->print('

'.&mt('Access and Usage Statistics').'

'. - ''); + '
'); foreach ('count', 'sequsage','sequsage_list', 'comefrom','comefrom_list', @@ -719,7 +742,7 @@ sub print_dynamic_metadata { $r->print('

'. &mt('Overall Assessment Statistical Data'). '

'. - '
'); + '
'); $r->print(''. '
'.$lt{'stdno'}.''. &prettyprint('stdno',$dynmeta{'stdno'}). @@ -738,7 +761,7 @@ sub print_dynamic_metadata { $r->print('

'. &mt('Detailed Assessment Statistical Data'). '

'); - my $table = ''. + my $table = '
'. ''. ''. ''. @@ -798,7 +821,7 @@ sub print_dynamic_metadata { exists($dynmeta{'correct'}) || exists($dynmeta{'technical'})){ $r->print('

'.&mt('Evaluation Data').'

'. - '
CourseSection(s)
'); + '
'); foreach ('clear','depth','helpful','correct','technical') { $r->print(''. '
'.$lt{$_}.''. @@ -832,7 +855,7 @@ sub print_dynamic_metadata { # All other stuff $r->print('

'. &mt('Additional Metadata (non-standard, parameters, exports)'). - '

'); + ''); foreach (sort(keys(%content))) { my $name=$_; if ($name!~/\.display$/) { @@ -850,13 +873,14 @@ sub print_dynamic_metadata { $name.'.'.$_).'; '; } } - $r->print(''.$display.': '.$content{$name}); + $r->print('\n"); } } + $r->print("
'.$display.''.$content{$name}); if ($otherinfo) { $r->print(' ('.$otherinfo.')'); } - $r->print("
\n"); + $r->print("
"); return; } @@ -868,7 +892,7 @@ sub print_dynamic_metadata { ##################################################### ##################################################### sub present_editable_metadata { - my ($r,$uri) = @_; + my ($r,$uri, $file_type) = @_; # Construction Space Call # Header my $disuri=$uri; @@ -903,26 +927,30 @@ ENDBOMBS &mt('Default Cataloging Information for Directory').' '. $dir; } - my $bodytag= - &Apache::loncommon::bodytag('Edit Catalog Information'); %Apache::lonpublisher::metadatafields=(); %Apache::lonpublisher::metadatakeys=(); &Apache::lonpublisher::metaeval(&Apache::lonnet::getfile($fn)); $r->print(<Edit Catalog Information -$bodytag

$displayfile

ENDEDIT $r->print(''); - my %lt=&fieldnames(); - foreach ('author','title','subject','keywords','abstract','notes', + my %lt=&fieldnames($file_type); + my $output; + my @fields; + if ($file_type eq 'portfolio') { + @fields = ('author','title','subject','keywords','abstract','notes','lowestgradelevel', + 'highestgradelevel'); + } else { + @fields = ('author','title','subject','keywords','abstract','notes', 'copyright','customdistributionfile','language', 'standards', 'lowestgradelevel','highestgradelevel','sourceavail','sourcerights', - 'obsolete','obsoletereplacement') { + 'obsolete','obsoletereplacement'); + } + foreach (@fields) { if (defined($ENV{'form.new_'.$_})) { $Apache::lonpublisher::metadatafields{$_}= $ENV{'form.new_'.$_}; @@ -931,17 +959,17 @@ ENDEDIT $Apache::lonpublisher::metadatafields{'copyright'}= 'default'; } - $r->print('

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

'); + $output.=('

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

'); } if ($ENV{'form.store'}) { my $mfh; if (! ($mfh=Apache::File->new('>'.$fn))) { - $r->print('

'. + $r->print('

'. &mt('Could not write metadata').', '. - &mt('FAIL').''); + &mt('FAIL').'

'); } else { foreach (sort keys %Apache::lonpublisher::metadatafields) { next if ($_ =~ /\./); @@ -964,10 +992,12 @@ ENDEDIT '<>&"'). ''; } - $r->print('

'.&mt('Wrote Metadata')); + $r->print('

'.&mt('Wrote Metadata'). + ' '.&Apache::lonlocal::locallocaltime(time). + '

'); } } - $r->print('
'); } $r->print('
');