View Issue Details

IDProjectCategoryView StatusLast Update
0000142Adventure PHP FrameworkBugpublic2015-10-12 12:20
ReporterScreezeAssigned ToChristianAchatz 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version2.0 
Target Version2.1Fixed in Version2.1 
Summary0000142: Forwardmessager: Nachricht von selber Seite wird nicht gerendert
DescriptionIch nutze den Forwardmessager um Notifications einzublenden, nachdem Aktionen wie Speichern/Löschen ausgeführt wurden. Je nach Oberfläche gelangt man entweder direkt zu einer Übersichtsseite zurück, oder wieder zur selben Seite.
Wenn man wieder zur selben Seite weitergeleitet wird, und die Nachrichten per Taglib definiert wurden, wird ein showMessage(), welches vor der Weiterleitung verwendet wurde ignoriert.
Leitet man auf eine andere Seite weiter funktioniert es.

Abhilfe schafft, die Nachricht nicht per Taglib sondern im Code hinzuzufügen, und dort gleich den $show Parameter auf true zu setzen. Dann funktioniert es auch nach Weiterleitung auf die selbe Seite.
Steps To ReproduceTemplate (flow.html):
=====================

<@controller
   class="DEV\wizard\controller\FlowController"
@>
<core:appendnode
   namespace="DEV\wizard\templates\pages"
   template="result"
   includestatic="true"
/>

<core:addtaglib
   class="APF\tools\form\taglib\HtmlFormTag"
   prefix="html"
   name="form"
/>
<html:form name="flow">
   


      Redirect:
      <form:checkbox name="redirect" value="1"/>
   


   


      <form:button name="send" value="send" />
   


</html:form>


<core:addtaglib
   class="APF\extensions\forwardmessage\pres\taglib\AddForwardMessageTag"
   prefix="fmm"
   name="add-message"
/>
<fmm:add-message group="message" name="tmpl-message" show="false">
   This is a message added in template.
</fmm:add-message>


Template (result.html):
=======================

<p style="border: 1px solid orange; border-radius: 10px; background: lightgray;">
   <core:addtaglib
      class="APF\extensions\forwardmessage\pres\taglib\DisplayForwardMessagesTag"
      prefix="html"
      name="getforwardmessages"
   />
   <html:getforwardmessages
      groups="message"
   />




Controller:
===========

namespace DEV\wizard\controller;

use APF\core\pagecontroller\BaseDocumentController;
use APF\core\service\APFService;
use APF\extensions\forwardmessage\biz\ForwardMessageManager;
use APF\tools\http\HeaderManager;
use APF\tools\link\LinkGenerator;
use APF\tools\link\Url;

class FlowController extends BaseDocumentController {

   public function transformContent() {
      $form = & $this->getForm('flow');

      $checkbox = $form->getFormElementByName('redirect');
      if ($form->isSent()) {

         /* @var $forwardMessageMgr ForwardMessageManager */
         $forwardMessageMgr = & $this->getServiceObject('APF\extensions\forwardmessage\biz\ForwardMessageManager', APFService::SERVICE_TYPE_SESSION_SINGLETON);
         $forwardMessageMgr->showMessage('tmpl-message', 'message');

         $page = $checkbox->isChecked() === true ? 'result' : 'flow';
         HeaderManager::forward(
               LinkGenerator::generateUrl(
                     Url::fromCurrent(true)->setQueryParameter('page', $page)
               )
         );
      }

      $form->transformOnPlace();

   }

}
TagsNo tags attached.
Codereferenz: ([Datei]:[Zeile])
Namespaceextensions

Activities

ChristianAchatz

2014-05-17 21:54

administrator   ~0000350

Hallo Ralf,

konnte den Fehler nachvollziehen.

Liegt daran, dass Meldungen per Tag immer mit visible=false hinzugefügt werden. Fügst du auf der gleichen Seite per Tag eine Meldung hinzu, setzt diese im Controller auf visible=true, wird sie durch das Tag wieder überschrieben.

Damit ist sie beim Aufbau der gleichen Seite nach dem Redirect wieder auf visible=false. Im Controller passiert dir das nicht, da du sie dort ja per visible=true an den ForwardMessageManager gibst.

Um das zu vermeiden, habe ich das Hinzufügen einer Nachricht so geändert, dass das Tag die Nachricht nur hinzufügt, wenn diese noch nicht existiert.

Issue History

Date Modified Username Field Change
2014-02-05 16:41 Screeze New Issue
2014-05-17 21:54 ChristianAchatz Note Added: 0000350
2014-05-17 21:57 ChristianAchatz Status new => resolved
2014-05-17 21:57 ChristianAchatz Fixed in Version => 2.1
2014-05-17 21:57 ChristianAchatz Resolution open => fixed
2014-05-17 21:57 ChristianAchatz Assigned To => ChristianAchatz
2014-05-17 21:58 ChristianAchatz Steps to Reproduce Updated View Revisions
2015-10-12 12:20 ChristianAchatz Status resolved => closed