1 package SL::Helper::Flash;
6 our @ISA = qw(Exporter);
7 our @EXPORT = qw(flash flash_later);
8 our @EXPORT_OK = qw(render_flash delay_flash);
10 my %valid_categories = (
11 map({$_ => 'info'} qw(information message)),
12 map({$_ => $_} qw(info error warning ok)),
20 $::form->{FLASH} = _store_flash($::form->{FLASH}, @_);
24 $::auth->set_session_value({ key => "FLASH", value => _store_flash($::auth->get_session_value('FLASH'), @_), auto_restore => 1 });
28 my $store = $::form->{FLASH} || { };
29 flash_later($_ => @{ $store->{$_} || [] }) for keys %$store;
33 return $::form->parse_html_template('common/flash');
41 my $store = shift || { };
42 my $category = _check_category(+shift);
44 $store->{ $category } ||= [ ];
45 push @{ $store->{ $category } }, @_;
52 return $valid_categories{$c}
56 croak("invalid category '$c' for flash");
66 SL::Helper::Flash - helper functions for storing messages to be
71 The flash is a store for messages that should be displayed to the
72 user. Each message has a category which is usually C<information>,
73 C<warning> or C<error>. The messages in each category are grouped and
74 displayed in colors appropriate for their severity (e.g. errors in
77 Messages are rendered either by calling the function C<render_flash>
78 or by including the flash sub-template from a template with the
81 [%- INCLUDE 'common/flash.html' %]
85 The functions L</flash> and L</flash_later> are always exported.
87 The function L</render_flash> is only exported upon request.
93 =item C<flash $category, @messages>
95 Stores messages for the given category. The category can be either
96 C<information>, C<warning> or C<error>. C<info> can also be used as an
97 alias for C<information>.
99 =item C<flash_later $category, @messages>
101 Stores messages for the given category for the next request. The
102 category can be either C<information>, C<warning> or C<error>. C<info>
103 can also be used as an alias for C<information>.
105 The messages are stored in the user's session and restored upon the
106 next request. Can be used for transmitting information over HTTP
109 =item C<render_flash>
111 Outputs the flash message by parsing the C<common/flash.html> template
114 This function is not exported by default.
118 Delays flash, as if all flash messages in this request would have been
121 Not exported by default.
127 Moritz Bunkus E<lt>m.bunkus@linet-services.deE<gt>