HTML-Version der Dokumentation in UTF-8 encodieren
[kivitendo-erp.git] / SL / Controller / Base.pm
index 42bf6bd..285bfce 100644 (file)
@@ -30,7 +30,12 @@ sub redirect_to {
   my $self = shift;
   my $url  = $self->url_for(@_);
 
-  print $::cgi->redirect($url);
+  if ($self->delay_flash_on_redirect) {
+    require SL::Helper::Flash;
+    SL::Helper::Flash::delay_flash();
+  }
+
+  print $::request->{cgi}->redirect($url);
 }
 
 sub render {
@@ -152,6 +157,14 @@ sub _run_hooks {
   }
 }
 
+#
+#  behaviour. override these
+#
+
+sub delay_flash_on_redirect {
+  0;
+}
+
 #
 # private functions -- for use in Base only
 #
@@ -329,7 +342,7 @@ containing the template code to interprete. Additionally the output
 will not be sent to the browser. Instead it is only returned to the
 caller.
 
-If C<< $options->{raw}>> is trueish, the function will treat the input as
+If C<< $options->{raw} >> is trueish, the function will treat the input as
 already parsed, and will not filter the input through Template. Unlike
 C<inline>, the input is taked as a reference.
 
@@ -482,6 +495,12 @@ action.
 
 The hook's return values are discarded.
 
+=item delay_flash_on_redirect
+
+May be overridden by a controller. If this method returns true, redirect_to
+will delay all flash messages for the current request. Defaults to false for
+compatibility reasons.
+
 =back
 
 =head2 PRIVATE FUNCTIONS