--- loncom/interface/lonmeta.pm 2005/05/09 01:51:44 1.97
+++ loncom/interface/lonmeta.pm 2005/11/11 21:25:50 1.125
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Metadata display handler
#
-# $Id: lonmeta.pm,v 1.97 2005/05/09 01:51:44 banghart Exp $
+# $Id: lonmeta.pm,v 1.125 2005/11/11 21:25:50 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
#
@@ -33,7 +33,7 @@ use LONCAPA::lonmetadata();
use Apache::Constants qw(:common);
use Apache::lonnet;
use Apache::loncommon();
-use Apache::lonhtmlcommon();
+use Apache::lonhtmlcommon();
use Apache::lonmsg;
use Apache::lonpublisher;
use Apache::lonlocal;
@@ -247,7 +247,9 @@ sub fieldnames {
'notes' => 'Notes',
'abstract' => 'Abstract',
'lowestgradelevel' => 'Lowest Grade Level',
- 'highestgradelevel' => 'Highest Grade Level');
+ 'highestgradelevel' => 'Highest Grade Level',
+ 'courserestricted' => 'Course Restricting Metadata');
+
if (! defined($file_type) || $file_type ne 'portfolio') {
%fields =
(%fields,
@@ -288,6 +290,43 @@ sub fieldnames {
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))) {
@@ -874,6 +981,8 @@ sub print_dynamic_metadata {
return;
}
+
+
#####################################################
#####################################################
### ###
@@ -889,25 +998,47 @@ sub present_editable_metadata {
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/\.meta$//;
my $bombs=&Apache::lonmsg::retrieve_author_res_msg($target);
if ($bombs) {
+ 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
-
- $bombs
ENDBOMBS
+ if ($showdel) {
+ $r->print(<
+
+ENDDEL
+ } else {
+ $r->print(''.$goback.'');
+ }
+ $r->print(' '.$bombs);
} else {
my $displayfile='Catalog Information for '.$disuri;
if ($disuri=~/\/default$/) {
@@ -921,7 +1052,7 @@ ENDBOMBS
%Apache::lonpublisher::metadatakeys=();
my $result=&Apache::lonnet::getfile($fn);
if ($result == -1){
- $r->print('Creating new '.$fn);
+ $r->print('Creating new '.$disuri);
} else {
&Apache::lonpublisher::metaeval($result);
}
@@ -937,7 +1068,7 @@ ENDEDIT
my @fields;
if ($file_type eq 'portfolio') {
@fields = ('author','title','subject','keywords','abstract','notes','lowestgradelevel',
- 'highestgradelevel');
+ 'highestgradelevel','courserestricted');
} else {
@fields = ('author','title','subject','keywords','abstract','notes',
'copyright','customdistributionfile','language',
@@ -945,24 +1076,58 @@ ENDEDIT
'lowestgradelevel','highestgradelevel','sourceavail','sourcerights',
'obsolete','obsoletereplacement');
}
+ my $metacourse;
+ if ($env{'form.metacourse'} ) {
+ $Apache::lonpublisher::metadatafields{'courserestricted'} = $env{'form.metacourse'};
+ $metacourse = $env{'form.metacourse'};
+ } else {
+ if (! $Apache::lonpublisher::metadatafields{'courserestricted'}) {
+ $Apache::lonpublisher::metadatafields{'courserestricted'}=
+ 'none';
+ $metacourse = 'none';
+ } else {
+ $metacourse = $Apache::lonpublisher::metadatafields{'courserestricted'};
+ }
+ }
+ if (! $Apache::lonpublisher::metadatafields{'copyright'}) {
+ $Apache::lonpublisher::metadatafields{'copyright'}=
+ 'default';
+ }
+ if ($metacourse ne 'none') {
+ $r->print('Document metadata restricted by : '.$env{$metacourse.".description"}." ");
+ }
+
foreach (@fields) {
if (defined($env{'form.new_'.$_})) {
$Apache::lonpublisher::metadatafields{$_}=
- $env{'form.new_'.$_};
- }
- if (! $Apache::lonpublisher::metadatafields{'copyright'}) {
- $Apache::lonpublisher::metadatafields{'copyright'}=
- 'default';
+ join(',',&Apache::loncommon::get_env_multiple('form.new_'.$_));
}
- $output.=('
'.$lt{$_}.': '.
- &prettyinput($_,
+ if ($metacourse ne 'none') {
+ # handle restrictions here
+ if (($env{$metacourse.'.metadata.'.$_.'.options'} =~ m/active/)||
+ ($_ eq 'courserestricted')) {
+ $output.=('