--- loncom/interface/lonmeta.pm 2012/03/16 02:12:26 1.245 +++ loncom/interface/lonmeta.pm 2012/05/21 19:01:12 1.246 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Metadata display handler # -# $Id: lonmeta.pm,v 1.245 2012/03/16 02:12:26 www Exp $ +# $Id: lonmeta.pm,v 1.246 2012/05/21 19:01:12 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -874,20 +874,44 @@ sub report_bombs { $uri = &Apache::lonnet::declutter($uri); $r->print('

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

'); my ($domain,$author)=($uri=~/^($match_domain)\/($match_username)\//); - if (&Apache::loncacc::constructaccess('/priv/'.$domain.'/'.$author.'/')) { - if ($env{'form.clearbombs'}) { - &Apache::lonmsg::clear_author_res_msg($uri); - } - my $clear=&mt('Clear all Messages in Subdirectory'); - my $cancel=&mt('Back to Directory'); - my $cancelurl=$uri; - $cancelurl=~s/^\Q$domain\E/\/priv/; - $r->print(< - -$cancel -
-ENDCLEAR + if (!&Apache::loncacc::constructaccess('/priv/'.$domain.'/'.$author.'/')) { + $r->print('

'.&mt('Not authorized').'

'); + return; + } + + my $showbuttons=1; + my $message=''; + if ($env{'form.clearbombs'}) { + my $rc=&Apache::lonmsg::clear_author_res_msg($uri); + if ($rc eq 'ok') { + $message=&Apache::lonhtmlcommon::confirm_success( + &mt('Messages cleared.')); + $showbuttons=0; + } else { + $message=&Apache::lonhtmlcommon::confirm_success( + &mt('Error clearing messages'),1) + .'
'.&mt('Error: [_1]',$rc); + } + } + + if ($message) { + $message=&Apache::loncommon::confirmwrapper($message); + $r->print($message); + } + + my $cancelurl=$uri; + $cancelurl=~s/^\Q$domain\E/\/priv\/$domain/; + + if ($showbuttons) { + $r->print( + '
'. + ''. + ' '. + &mt('Back to Source Directory').''. + '

' + ); + # Display all bombs of subdirectory my %brokenurls = &Apache::lonmsg::all_url_author_res_msg($author,$domain); foreach my $key (sort(keys(%brokenurls))) { @@ -899,7 +923,12 @@ ENDCLEAR } } } else { - $r->print(&mt('Not authorized')); + my $functions=&Apache::lonhtmlcommon::start_funclist('Actions'); + $functions.=&Apache::lonhtmlcommon::add_item_funclist( + ''. + &mt('Back to Source Directory').''); + $functions .= &Apache::lonhtmlcommon::end_funclist(); + $r->print('

'.$functions.'

'); } return; } @@ -1193,7 +1222,7 @@ sub print_dynamic_metadata { my $bombs = &Apache::lonmsg::retrieve_author_res_msg($uri); if (defined($bombs) && $bombs ne '') { $r->print('' - .'

'.&mt('Error Messages').'

' + .'

'.&mt('Error Messages').'

' .'
(' .&mt('visible to author and co-authors only') .')
' @@ -1276,47 +1305,66 @@ sub present_editable_metadata { $target=~s/\.meta$//; my $bombs=&Apache::lonmsg::retrieve_author_res_msg($target); if ($bombs) { - my $showdel=1; + # Display Bombs, not Metadata + $r->print("

$disuri

"); + my $showbuttons=1; + my $message=''; + my $rc=''; if ($env{'form.delmsg'}) { - if (&Apache::lonmsg::del_url_author_res_msg($target) eq 'ok') { - $bombs=&mt('Messages deleted.'); - $showdel=0; + $rc=&Apache::lonmsg::del_url_author_res_msg($target); + if ($rc eq 'ok') { + $message=&Apache::lonhtmlcommon::confirm_success( + &mt('Messages deleted.')); + $showbuttons=0; } else { - $bombs=&mt('Error deleting messages'); + $message=&Apache::lonhtmlcommon::confirm_success( + &mt('Error deleting messages'), 1) + .'
'.&mt('Error: [_1]',$rc); } } 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; + $cleardir=~s/\/[^\/]+$/\//; # Extract dir: keep path, remove filename + $rc=&Apache::lonmsg::clear_author_res_msg($cleardir); + if ($rc eq 'ok') { + $message=&Apache::lonhtmlcommon::confirm_success( + &mt('Messages cleared.')); + $showbuttons=0; } else { - $bombs=&mt('Error clearing messages'); + $message=&Apache::lonhtmlcommon::confirm_success( + &mt('Error clearing messages'),1) + .'
'.&mt('Error: [_1]',$rc); } } - 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 -
-ENDBOMBS - if ($showdel) { - $r->print(< - -ENDDEL + if ($message) { + $message=&Apache::loncommon::confirmwrapper($message); + $r->print($message); + } + + $r->print(''); + if ($showbuttons) { + $r->print( + ''. + '' + .'
'.$bombs + ); } else { - $r->print('

'.$goback.'

'); - if ($env{'form.clearmsg'}) { - my ($diruri) = ($disuri =~ m{(.*/)[^/]*}); - $r->print('

'. - &mt('Back To Directory').'

'); - } - } - $r->print('
'.$bombs); + my $functions=&Apache::lonhtmlcommon::start_funclist('Actions'); + $functions.=&Apache::lonhtmlcommon::add_item_funclist( + ''. + &mt('Back to Source File').''); + my ($diruri) = ($disuri =~ m{(.*/)[^/]*}); + $functions.=&Apache::lonhtmlcommon::add_item_funclist( + ''. + &mt('Back to Source Directory').''); + $functions .= &Apache::lonhtmlcommon::end_funclist(); + $r->print('

'.$functions.'

'); + } } else { + + # Display Metadata, not Bombs my $displayfile=&mt('Metadata for [_1]',$disuri); if ($disuri=~/\/default$/) { my $dir=$disuri;