--- loncom/interface/lonmeta.pm 2004/06/17 15:05:59 1.81
+++ loncom/interface/lonmeta.pm 2005/10/19 21:53:16 1.114
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Metadata display handler
#
-# $Id: lonmeta.pm,v 1.81 2004/06/17 15:05:59 www Exp $
+# $Id: lonmeta.pm,v 1.114 2005/10/19 21:53:16 banghart Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -17,7 +17,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
-# You should have received a copy of the GNU General Public License
+# You should have received a copy of the GNU General Public License
# along with LON-CAPA; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
@@ -31,9 +31,9 @@ package Apache::lonmeta;
use strict;
use LONCAPA::lonmetadata();
use Apache::Constants qw(:common);
-use Apache::lonnet();
+use Apache::lonnet;
use Apache::loncommon();
-use Apache::lonhtmlcommon();
+use Apache::lonhtmlcommon();
use Apache::lonmsg;
use Apache::lonpublisher;
use Apache::lonlocal;
@@ -71,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',
@@ -235,8 +236,10 @@ sub diffgraph {
# The field names
sub fieldnames {
- return &Apache::lonlocal::texthash
- (
+ my $file_type=shift;
+ my %fields;
+ %fields =
+ (%fields,
'title' => 'Title',
'author' =>'Author(s)',
'authorspace' => 'Author Space',
@@ -246,7 +249,39 @@ sub fieldnames {
'notes' => 'Notes',
'abstract' => 'Abstract',
'lowestgradelevel' => 'Lowest Grade Level',
- 'highestgradelevel' => 'Highest Grade Level',
+ 'highestgradelevel' => 'Highest Grade Level');
+ if ($file_type eq 'portfolio') {
+ %fields =
+ (%fields,
+ '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');
+ }
+ if ($file_type eq 'restrictedportfolio') {
+ %fields =
+ (%fields,
+ 'metadata.title' => 'Title',
+ 'metadata.author' =>'Author(s)',
+ 'metadata.authorspace' => 'Author Space',
+ 'metadata.modifyinguser' => 'Last Modifying User',
+ 'metadata.subject' => 'Subject',
+ 'metadata.keywords' => 'Keyword(s)',
+ 'metadata.notes' => 'Notes',
+ 'metadata.abstract' => 'Abstract',
+ 'metadata.lowestgradelevel' => 'Lowest Grade Level',
+ 'metadata.highestgradelevel' => 'Highest Grade Level');
+ }
+ if (! defined($file_type) || $file_type ne 'portfolio') {
+ %fields =
+ (%fields,
+ 'domain' => 'Domain',
'standards' => 'Standards',
'mime' => 'MIME Type',
'language' => 'Language',
@@ -255,7 +290,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',
@@ -277,13 +312,53 @@ 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',
);
+ }
+ return &Apache::lonlocal::texthash(%fields);
}
+sub select_course {
+ my ($r)=@_;
+ my %courses;
+ foreach my $key (keys (%env)) {
+ if ($key =~ m/\.metadata\./) {
+ $key =~ m/^course\.(.+)(\.metadata.+$)/;
+ my $course = $1;
+ my $coursekey = 'course.'.$course.'.description';
+ my $value = $env{$coursekey};
+ $courses{$coursekey} = $value;
+ }
+ }
+ $r->print('
Course Related Meta-Data
');
+ $r->print('
+ENDCLEAR
my %brokenurls =
&Apache::lonmsg::all_url_author_res_msg($author,$domain);
foreach (sort(keys(%brokenurls))) {
@@ -617,7 +709,7 @@ sub present_uneditable_metadata {
# obsolete
my $obsolete=$content{'obsolete'};
my $obsoletewarning='';
- if (($obsolete) && ($ENV{'user.adv'})) {
+ if (($obsolete) && ($env{'user.adv'})) {
$obsoletewarning=''.
&mt('This resource has been marked obsolete by the author(s)').
'
';
@@ -662,11 +754,11 @@ $disuri
$obsoletewarning
$versiondisplay
-
+
ENDHEAD
- if ($ENV{'user.adv'}) {
+ if ($env{'user.adv'}) {
&print_dynamic_metadata($r,$uri,\%content);
}
return;
@@ -692,7 +784,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',
@@ -717,7 +809,7 @@ sub print_dynamic_metadata {
$r->print(''.
&mt('Overall Assessment Statistical Data').
'
'.
- '');
+ '');
$r->print(''.$lt{'stdno'}.' | '.
''.
&prettyprint('stdno',$dynmeta{'stdno'}).
@@ -736,7 +828,7 @@ sub print_dynamic_metadata {
$r->print(''.
&mt('Detailed Assessment Statistical Data').
'');
- my $table = ''.
+ my $table = ''.
''.
'Course | '.
'Section(s) | '.
@@ -796,7 +888,7 @@ sub print_dynamic_metadata {
exists($dynmeta{'correct'}) ||
exists($dynmeta{'technical'})){
$r->print(''.&mt('Evaluation Data').''.
- '');
+ '');
foreach ('clear','depth','helpful','correct','technical') {
$r->print(''.$lt{$_}.' | '.
''.
@@ -807,8 +899,8 @@ sub print_dynamic_metadata {
$r->print(''.&mt('No Evaluation Data is available for this resource.').'');
}
$uri=~/^\/res\/(\w+)\/(\w+)\//;
- if ((($ENV{'user.domain'} eq $1) && ($ENV{'user.name'} eq $2))
- || ($ENV{'user.role.ca./'.$1.'/'.$2})) {
+ if ((($env{'user.domain'} eq $1) && ($env{'user.name'} eq $2))
+ || ($env{'user.role.ca./'.$1.'/'.$2})) {
if (exists($dynmeta{'comments'})) {
$r->print(''.&mt('Evaluation Comments').' ('.
&mt('visible to author and co-authors only').
@@ -859,6 +951,8 @@ sub print_dynamic_metadata {
return;
}
+
+
#####################################################
#####################################################
### ###
@@ -867,32 +961,54 @@ sub print_dynamic_metadata {
#####################################################
#####################################################
sub present_editable_metadata {
- my ($r,$uri) = @_;
+ my ($r,$uri, $file_type) = @_;
# Construction Space Call
# Header
my $disuri=$uri;
my $fn=&Apache::lonnet::filelocation('',$uri);
$disuri=~s/^\/\~/\/priv\//;
$disuri=~s/\.meta$//;
+ $disuri=~s|^/editupload||;
my $target=$uri;
- $target=~s/^\/\~/\/res\/$ENV{'request.role.domain'}\//;
+ $target=~s/^\/\~/\/res\/$env{'request.role.domain'}\//;
$target=~s/\.meta$//;
my $bombs=&Apache::lonmsg::retrieve_author_res_msg($target);
if ($bombs) {
- if ($ENV{'form.delmsg'}) {
+ my $showdel=1;
+ if ($env{'form.delmsg'}) {
if (&Apache::lonmsg::del_url_author_res_msg($target) eq 'ok') {
$bombs=&mt('Messages deleted.');
+ $showdel=0;
} else {
$bombs=&mt('Error deleting messages');
}
}
- my $del=&mt('Delete Messages');
+ if ($env{'form.clearmsg'}) {
+ my $cleardir=$target;
+ $cleardir=~s/\/[^\/]+$/\//;
+ if (&Apache::lonmsg::clear_author_res_msg($cleardir) eq 'ok') {
+ $bombs=&mt('Messages cleared.');
+ $showdel=0;
+ } else {
+ $bombs=&mt('Error clearing messages');
+ }
+ }
+ my $del=&mt('Delete Messages for this Resource');
+ my $clear=&mt('Clear all Messages in Subdirectory');
+ my $goback=&mt('Back to Source File');
$r->print(<$disuri
| |