--- loncom/interface/lonmeta.pm 2005/03/18 16:47:31 1.95 +++ loncom/interface/lonmeta.pm 2005/08/02 21:35:10 1.102 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Metadata display handler # -# $Id: lonmeta.pm,v 1.95 2005/03/18 16:47:31 albertel Exp $ +# $Id: lonmeta.pm,v 1.102 2005/08/02 21:35:10 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; @@ -288,6 +288,27 @@ sub fieldnames { return &Apache::lonlocal::texthash(%fields); } +sub select_course { + my ($r)=@_; + $r->print('

Instructor Selected Meta-Data


'); + $r->print('
'); + $r->print('Select your course
'); + $r->print('
'); + $r->print(''); + $r->print('
'); + return 'ok'; +} # Pretty printing of metadata field sub prettyprint { @@ -338,7 +359,7 @@ sub prettyprint { return &Apache::loncommon::gradeleveldescription($value); } # Only for advance users below - if (! $ENV{'user.adv'}) { + if (! $env{'user.adv'}) { return '- '.&mt('not displayed').' -'; } # File @@ -547,7 +568,12 @@ sub handler { } elsif ($uri=~/\/portfolio\//) { $r->print(&Apache::loncommon::bodytag ('Edit Portfolio File Information','','','',$resdomain)); - &present_editable_metadata($r,$uri,'portfolio'); + if ($env{'form.metacourse'}) { + &present_instructor_metadata($r,$uri,'portfolio'); + } else { + &present_editable_metadata($r,$uri,'portfolio'); + &select_course($r); + } } elsif ($uri=~/^\/\~/) { # Construction space @@ -578,6 +604,15 @@ sub report_bombs { $r->print('

'.&Apache::lonnet::clutter($uri).'

'); my ($domain,$author)=($uri=~/^(\w+)\/(\w+)\//); if (&Apache::loncacc::constructaccess('/~'.$author.'/',$domain)) { + if ($env{'form.clearbombs'}) { + &Apache::lonmsg::clear_author_res_msg($uri); + } + my $clear=&mt('Clear all Messages in Subdirectory'); + $r->print(< + + +ENDCLEAR my %brokenurls = &Apache::lonmsg::all_url_author_res_msg($author,$domain); foreach (sort(keys(%brokenurls))) { @@ -632,7 +667,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)'). '

'; @@ -681,7 +716,7 @@ $versiondisplay $table ENDHEAD - if ($ENV{'user.adv'}) { + if ($env{'user.adv'}) { &print_dynamic_metadata($r,$uri,\%content); } return; @@ -822,8 +857,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'). @@ -874,6 +909,13 @@ sub print_dynamic_metadata { return; } +sub present_instructor_metadata { + my ($r,$uri, $file_type) = @_; + print $r->print('This is the instructor metadata area'); + return 'ok'; +} + + ##################################################### ##################################################### ### ### @@ -890,24 +932,45 @@ sub present_editable_metadata { $disuri=~s/^\/\~/\/priv\//; $disuri=~s/\.meta$//; 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

- -
$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,8 +984,7 @@ ENDBOMBS %Apache::lonpublisher::metadatakeys=(); my $result=&Apache::lonnet::getfile($fn); if ($result == -1){ - $r->print('Unable to get '.$fn); - return ; + $r->print('Creating new '.$fn); } else { &Apache::lonpublisher::metaeval($result); } @@ -947,9 +1009,9 @@ ENDEDIT 'obsolete','obsoletereplacement'); } foreach (@fields) { - if (defined($ENV{'form.new_'.$_})) { + if (defined($env{'form.new_'.$_})) { $Apache::lonpublisher::metadatafields{$_}= - $ENV{'form.new_'.$_}; + $env{'form.new_'.$_}; } if (! $Apache::lonpublisher::metadatafields{'copyright'}) { $Apache::lonpublisher::metadatafields{'copyright'}= @@ -960,7 +1022,7 @@ ENDEDIT $Apache::lonpublisher::metadatafields{$_}, 'new_'.$_,'defaultmeta').'

'); } - if ($ENV{'form.store'}) { + if ($env{'form.store'}) { my $mfh; my $formname='store'; my $file_content; @@ -989,10 +1051,10 @@ ENDEDIT if ($fn =~ /\/portfolio\//) { $fn =~ /\/portfolio\/(.*)$/; my $new_fn = '/'.$1; - $ENV{'form.'.$formname}=$file_content; - $ENV{'form.'.$formname.'.filename'}=$new_fn; + $env{'form.'.$formname}=$file_content; + $env{'form.'.$formname.'.filename'}=$new_fn; &Apache::lonnet::userfileupload('uploaddoc','', - 'portfolio'.$ENV{'form.currentpath'}); + 'portfolio'.$env{'form.currentpath'}); my $status =&Apache::lonnet::userfileupload($formname,'','portfolio'); if (&Apache::lonnet::userfileupload($formname,'','portfolio') eq 'error: no uploaded file') { $r->print('

'. @@ -1025,3 +1087,5 @@ ENDEDIT 1; __END__ + + 500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.