[LON-CAPA-cvs] cvs: loncom /interface lonmeta.pm
bisitz
bisitz at source.lon-capa.org
Mon May 21 15:01:12 EDT 2012
bisitz Mon May 21 19:01:12 2012 EDT
Modified files:
/loncom/interface lonmeta.pm
Log:
- Delete/Clear bomb message buttons work again (BZ 1320, 6591)
- "Back to Directory" link works again (BZ 1320, 6591)
- Standard design for confirm/error messages, now including actual error message
- Add error handling to removal of bombs for subdirectory
- Still/only show buttons and bombs if deleting has failed
- Consistent actions list
- Consistent wording
- XHTML
- tidy up code a bit
Index: loncom/interface/lonmeta.pm
diff -u loncom/interface/lonmeta.pm:1.245 loncom/interface/lonmeta.pm:1.246
--- loncom/interface/lonmeta.pm:1.245 Fri Mar 16 02:12:26 2012
+++ loncom/interface/lonmeta.pm Mon May 21 19:01:12 2012
@@ -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 @@
$uri = &Apache::lonnet::declutter($uri);
$r->print('<h1>'.&Apache::lonnet::clutter($uri).'</h1>');
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(<<ENDCLEAR);
-<form method="post">
-<input type="submit" name="clearbombs" value="$clear" />
-<a href="$cancelurl">$cancel</a>
-</form><hr />
-ENDCLEAR
+ if (!&Apache::loncacc::constructaccess('/priv/'.$domain.'/'.$author.'/')) {
+ $r->print('<p class="LC_error">'.&mt('Not authorized').'</p>');
+ 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)
+ .'<br />'.&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(
+ '<form method="post" action="">'.
+ '<input type="submit" name="clearbombs" value="'.
+ &mt('Clear all Messages in Subdirectory').'" />'.
+ ' <a href="'.$cancelurl.'">'.
+ &mt('Back to Source Directory').'</a>'.
+ '</form><hr />'
+ );
+ # 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 @@
}
}
} else {
- $r->print(&mt('Not authorized'));
+ my $functions=&Apache::lonhtmlcommon::start_funclist('Actions');
+ $functions.=&Apache::lonhtmlcommon::add_item_funclist(
+ '<a href="'.$cancelurl.'">'.
+ &mt('Back to Source Directory').'</a>');
+ $functions .= &Apache::lonhtmlcommon::end_funclist();
+ $r->print('<p>'.$functions.'</p>');
}
return;
}
@@ -1193,7 +1222,7 @@
my $bombs = &Apache::lonmsg::retrieve_author_res_msg($uri);
if (defined($bombs) && $bombs ne '') {
$r->print('<a name="bombs" />'
- .'<h4 class="LC_error">'.&mt('Error Messages').'</h4>'
+ .'<h4 class="LC_warning">'.&mt('Error Messages').'</h4>'
.'<div>('
.&mt('visible to author and co-authors only')
.')</div>'
@@ -1276,47 +1305,66 @@
$target=~s/\.meta$//;
my $bombs=&Apache::lonmsg::retrieve_author_res_msg($target);
if ($bombs) {
- my $showdel=1;
+ # Display Bombs, not Metadata
+ $r->print("<h1>$disuri</h1>");
+ 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)
+ .'<br />'.&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');
- }
- }
- 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(<<ENDBOMBS);
-<h1>$disuri</h1>
-<form method="post" action="" name="defaultmeta">
-ENDBOMBS
- if ($showdel) {
- $r->print(<<ENDDEL);
-<input type="submit" name="delmsg" value="$del" />
-<input type="submit" name="clearmsg" value="$clear" />
-ENDDEL
+ $message=&Apache::lonhtmlcommon::confirm_success(
+ &mt('Error clearing messages'),1)
+ .'<br />'.&mt('Error: [_1]',$rc);
+ }
+ }
+ if ($message) {
+ $message=&Apache::loncommon::confirmwrapper($message);
+ $r->print($message);
+ }
+
+ $r->print('<form method="post" action="" name="defaultmeta">');
+ if ($showbuttons) {
+ $r->print(
+ '<input type="submit" name="delmsg" value="'.
+ &mt('Delete Messages for this Resource').'" />'.
+ '<input type="submit" name="clearmsg" value="'.
+ &mt('Clear all Messages in Subdirectory').'" />'
+ .'<br />'.$bombs
+ );
} else {
- $r->print('<p><a href="'.$disuri.'">'.$goback.'</a></p>');
- if ($env{'form.clearmsg'}) {
- my ($diruri) = ($disuri =~ m{(.*/)[^/]*});
- $r->print('<p><a href="'.$diruri.'">'.
- &mt('Back To Directory').'</a></p>');
- }
- }
- $r->print('<br />'.$bombs);
+ my $functions=&Apache::lonhtmlcommon::start_funclist('Actions');
+ $functions.=&Apache::lonhtmlcommon::add_item_funclist(
+ '<a href="'.$disuri.'">'.
+ &mt('Back to Source File').'</a>');
+ my ($diruri) = ($disuri =~ m{(.*/)[^/]*});
+ $functions.=&Apache::lonhtmlcommon::add_item_funclist(
+ '<a href="'.$diruri.'">'.
+ &mt('Back to Source Directory').'</a>');
+ $functions .= &Apache::lonhtmlcommon::end_funclist();
+ $r->print('<p>'.$functions.'</p>');
+ }
} else {
+
+ # Display Metadata, not Bombs
my $displayfile=&mt('Metadata for [_1]',$disuri);
if ($disuri=~/\/default$/) {
my $dir=$disuri;
More information about the LON-CAPA-cvs
mailing list