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)),
 
  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>