X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FHelper%2FFlash.pm;h=07b22c0817634abd9bb8720e910c1939012c3738;hb=3eb3d1b144adb92e62de08e67dc6ff3d39bf7483;hp=2bbff75b1c525e3f785b8f835e89abbe690b6e7b;hpb=45c42be0153b638549e1098fc0ff4af01c3172e5;p=kivitendo-erp.git diff --git a/SL/Helper/Flash.pm b/SL/Helper/Flash.pm index 2bbff75b1..07b22c081 100644 --- a/SL/Helper/Flash.pm +++ b/SL/Helper/Flash.pm @@ -5,7 +5,7 @@ use strict; require Exporter; our @ISA = qw(Exporter); our @EXPORT = qw(flash flash_later); -our @EXPORT_OK = qw(render_flash); +our @EXPORT_OK = qw(render_flash delay_flash); my %valid_categories = ( map({$_ => 'info'} qw(information message)), @@ -24,6 +24,11 @@ sub flash_later { $::auth->set_session_value({ key => "FLASH", value => _store_flash($::auth->get_session_value('FLASH'), @_), auto_restore => 1 }); } +sub delay_flash { + my $store = $::form->{FLASH} || { }; + flash_later($_ => @{ $store->{$_} || [] }) for keys %$store; +} + sub render_flash { return $::form->parse_html_template('common/flash'); } @@ -36,7 +41,6 @@ sub _store_flash { my $store = shift || { }; my $category = _check_category(+shift); - $store ||= { }; $store->{ $category } ||= [ ]; push @{ $store->{ $category } }, @_; @@ -48,6 +52,7 @@ sub _check_category { return $valid_categories{$c} || do { require Carp; + Carp->import; croak("invalid category '$c' for flash"); }; } @@ -108,6 +113,13 @@ file. This function is not exported by default. +=item C + +Delays flash, as if all flash messages in this request would have been +C + +Not exported by default. + =back =head1 AUTHOR