[Jifty-commit] r1550 - jifty/trunk/lib/Jifty
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Thu Jul 13 11:28:02 EDT 2006
Author: nelhage
Date: Thu Jul 13 11:28:01 2006
New Revision: 1550
Modified:
jifty/trunk/lib/Jifty/Web.pm
Log:
Refactoring message rendering slightly
Modified: jifty/trunk/lib/Jifty/Web.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Web.pm (original)
+++ jifty/trunk/lib/Jifty/Web.pm Thu Jul 13 11:28:01 2006
@@ -738,8 +738,9 @@
=head3 render_messages [MONIKER]
-Outputs any messages that have been added, in a <div id="messages">
-tag. Messages are added by calling L<Jifty::Result/message>.
+Outputs any messages that have been added, in <div id="messages"> and
+<div id="errors"> tags. Messages are added by calling
+L<Jifty::Result/message>.
If a moniker is specified, only messages for that moniker
are rendered.
@@ -747,36 +748,82 @@
=cut
-# XXX TODO factor out error and message rendering as separate
-
sub render_messages {
my $self = shift;
my $only_moniker = '';
$only_moniker = shift if (@_);
- my %results = $self->response->results;
- return '' unless %results;
+ $self->render_error_messages($only_moniker);
+ $self->render_success_messages($only_moniker);
+
+ return '';
+}
+
+=head3 render_success_messages [MONIKER]
+
+Render success messages for the given moniker, or all of them if no
+moniker is given.
+
+=cut
+
+sub render_success_messages {
+ my $self = shift;
+ my $moniker = shift;
+
+ $self->_render_messages('message', $moniker);
- my @monikers = ($only_moniker) || sort keys %results;
+ return '';
+}
- for my $type (qw(error message)) {
- next unless grep { defined $results{$_} and $results{$_}->$type() } @monikers;
+=head3 render_error_messages [MONIKER]
- my $plural = $type . "s";
- $self->out(qq{<div id="$plural">});
- $self->out(qq[<a id="dismiss_$plural" href="#"
+Render error messages for the given moniker, or all of them if no
+moniker is given.
+
+=cut
+
+sub render_error_messages {
+ my $self = shift;
+ my $moniker = shift;
+
+ $self->_render_messages('error', $moniker);
+
+ return '';
+}
+
+=head3 _render_messages TYPE [MONIKER]
+
+Output any messages of the given TYPE (either 'error' or 'message') in
+a <div id="TYPEs"> tag. If a moniker is given, only renders messages
+for that action. Internal helper for L</render_success_messages> and
+L</render_errors>.
+
+=cut
+
+sub _render_messages {
+ my $self = shift;
+ my $type = shift;
+ my $only_moniker = shift || '';
+
+ my %results = $self->response->results;
+
+ %results = ($only_moniker => $results{$only_moniker}) if $only_moniker;
+
+ return unless grep {$_->$type()} values %results;
+
+ my $plural = $type . "s";
+ $self->out(qq{<div id="$plural">});
+ $self->out(qq[<a id="dismiss_$plural" href="#"
onclick="Effect.Fade(this.parentNode); return false;">]
- ._('Dismiss').qq[</a>]);
- foreach my $moniker ( @monikers ) {
- if ( $results{$moniker}->$type() ) {
- $self->out( qq{<div class="$type $moniker">}
- . $results{$moniker}->$type()
- . qq{</div>} );
- }
+ ._('Dismiss').qq[</a>]);
+ foreach my $moniker ( keys %results ) {
+ if ( $results{$moniker}->$type() ) {
+ $self->out( qq{<div class="$type $moniker">}
+ . $results{$moniker}->$type()
+ . qq{</div>} );
}
- $self->out(qq{</div>});
}
- return '';
+ $self->out(qq{</div>});
}
=head3 query_string KEY => VALUE [, KEY => VALUE [, ...]]
More information about the Jifty-commit
mailing list