'.join("\n",map {
my $url = &Apache::lonnet::clutter($_);
my $title = &Apache::lonnet::gettitle($url);
if ($title eq '') {
@@ -422,18 +484,17 @@ sub prettyprint {
# List of courses
if ($type=~/\_list/) {
my @Courses = split(/\s*\,\s*/,$value);
- my $Str;
+ my $Str='
';
foreach my $course (@Courses) {
my %courseinfo = &Apache::lonnet::coursedescription($course);
if (! exists($courseinfo{'num'}) || $courseinfo{'num'} eq '') {
next;
}
- if ($Str ne '') { $Str .= ' '; }
- $Str .= ''.
- $courseinfo{'description'}.'';
+ $courseinfo{'description'}.'';
}
- return $Str;
+ return $Str.'
';
}
# No pretty print found
return $value;
@@ -482,7 +543,8 @@ sub prettyinput {
$size = 80;
}
my $output;
- if (defined($course_key)) {
+ if (defined($course_key)
+ && exists($env{$course_key.'.metadata.'.$type.'.options'})) {
my $stu_add;
my $only_one;
my %meta_options;
@@ -648,11 +710,15 @@ sub handler {
# Looking for all bombs?
&report_bombs($r,$uri);
} elsif ($uri=~/\/portfolio\//) {
- ($resdomain,$resuser)=
+ ($resdomain,$resuser)=
(&Apache::lonnet::declutter($uri)=~m|^(\w+)/(\w+)/portfolio|);
$r->print(&Apache::loncommon::bodytag
('Edit Portfolio File Information','','','',$resdomain));
- &present_editable_metadata($r,$uri,'portfolio');
+ if ($env{'form.store'}) {
+ &present_editable_metadata($r,$uri,'portfolio');
+ } else {
+ &pre_select_course($r,$uri);
+ }
} elsif ($uri=~/^\/\~/) {
# Construction space
$r->print(&Apache::loncommon::bodytag
@@ -727,6 +793,7 @@ sub present_uneditable_metadata {
my ($thisversion)=($uri=~/\.(\d+)\.(\w+)\.meta$/);
$uri=~s/\.meta$//;
my $disuri=&Apache::lonnet::clutter($uri);
+ $disuri=~s/^\/adm\/wrapper//;
# version
my $currentversion=&Apache::lonnet::getversion($disuri);
my $versiondisplay='';
@@ -1004,7 +1071,11 @@ sub present_editable_metadata {
my $fn=&Apache::lonnet::filelocation('',$uri);
$disuri=~s/^\/\~/\/priv\//;
$disuri=~s/\.meta$//;
- $disuri=~s|^/editupload||;
+ my $meta_uri = $disuri;
+ my $path;
+ if ($disuri =~ m|/portfolio/|) {
+ ($disuri, $meta_uri, $path) = &portfolio_display_uri($disuri,1);
+ }
my $target=$uri;
$target=~s/^\/\~/\/res\/$env{'request.role.domain'}\//;
$target=~s/\.meta$//;
@@ -1058,7 +1129,7 @@ ENDDEL
%Apache::lonpublisher::metadatakeys=();
my $result=&Apache::lonnet::getfile($fn);
if ($result == -1){
- $r->print('Creating new '.$disuri);
+ $r->print(&mt('Creating new file [_1]'),$meta_uri);
} else {
&Apache::lonpublisher::metaeval($result);
}
@@ -1074,7 +1145,7 @@ ENDEDIT
my @fields;
if ($file_type eq 'portfolio') {
@fields = ('author','title','subject','keywords','abstract','notes','lowestgradelevel',
- 'highestgradelevel','standards','courserestricted');
+ 'highestgradelevel','standards');
} else {
@fields = ('author','title','subject','keywords','abstract','notes',
'copyright','customdistributionfile','language',
@@ -1094,28 +1165,31 @@ ENDEDIT
$Apache::lonpublisher::metadatafields{'copyright'}=
'default';
}
- if ($Apache::lonpublisher::metadatafields{'courserestricted'} ne 'none') {
- $r->print('Using: '.$env{$Apache::lonpublisher::metadatafields{'courserestricted'}.".description"}.
- " metadata framework ");
- } else {
- $r->print("This resource is not associated with a metadata framework ");
- }
- foreach my $field_name(@fields) {
+ if ($file_type eq 'portfolio') {
+ if ($Apache::lonpublisher::metadatafields{'courserestricted'} ne 'none') {
+ $r->print(&mt('Associated with course [_1]',''.$env{$Apache::lonpublisher::metadatafields{'courserestricted'}.".description"}.
+ '').' ');
+ } else {
+ $r->print("This resource is not associated with a course. ");
+ }
+ }
+ foreach my $field_name (@fields) {
if (defined($env{'form.new_'.$field_name})) {
$Apache::lonpublisher::metadatafields{$field_name}=
join(',',&Apache::loncommon::get_env_multiple('form.new_'.$field_name));
}
- if ($Apache::lonpublisher::metadatafields{'courserestricted'} ne 'none') {
+ if ($Apache::lonpublisher::metadatafields{'courserestricted'} ne 'none'
+ && exists($env{$Apache::lonpublisher::metadatafields{'courserestricted'}.'.metadata.'.$field_name.'.options'})) {
# handle restrictions here
if (($env{$Apache::lonpublisher::metadatafields{'courserestricted'}.'.metadata.'.$field_name.'.options'} =~ m/active/) ||
($field_name eq 'courserestricted')){
- $output.=('