8 Replies Latest reply on Dec 6, 2010 9:38 AM by Ilya Shaikovsky

    strange behaviour when first opening a modal panel

    Rene Gritsch Newbie

      Since a few weeks we have a problem.

       

      If a redirect to a new page (with a new seam conversation, but i think this doesn´t really matter) and

      we open modal panels for the first time, we have a strange behaviour. Rerender doesn´t work well, some datalists are not

      refreshed and so on.

      If do a page refresh in the browser then, every thing works fine from there on ?!

       

      First of all, this happens to all modal panel, not only in 1 case. I´m pretty sure it is not a richfaces bug, but i´m really at the

      end with my ideas what to do to fix this.

      Maybe you can give me some hints, what a possible problem could be ?

       

      We are using our own composite for the modal panels with an modalDialogController (conversation scope).

      The modal panels have all there own forms and they are not nested. I also had a bug with the layout="block" posted before.

       

       

      {code:xml}

      <ui:component   xmlns        ="http://www.w3.org/1999/xhtml

                      xmlns:ui    ="http://java.sun.com/jsf/facelets

                      xmlns:h        ="http://java.sun.com/jsf/html

                      xmlns:f        ="http://java.sun.com/jsf/core

                      xmlns:a4j    ="http://richfaces.org/a4j

                      xmlns:rich    ="http://richfaces.org/rich"

                      xmlns:s        ="http://jboss.com/products/seam/taglib"

                      xmlns:fipos="http://enhancements.fipos/jsf"

                      xmlns:t="http://myfaces.apache.org/tomahawk"

                      xmlns:composite="http://java.sun.com/jsf/composite">

       

                 <rich:modalPanel id="dialogID" minWidth="600"  autosized="true">

                      <f:facet name="header">

                          <h:panelGroup>

                              <a4j:outputPanel id="modalContentHeader">               

                                  <h:outputText value="#{model.preview}"></h:outputText>

                              </a4j:outputPanel>

                          </h:panelGroup>

                      </f:facet>

                      <f:facet name="controls">

                          <h:panelGroup>

                              <h:graphicImage value="#{resources.image('message.close')}" styleClass="hidelink" id="dynamicDialogPanelHidelink" style="padding:1px"/>

                              <rich:componentControl for="dialogID" attachTo="dynamicDialogPanelHidelink" operation="hide" event="onclick"/>

                          </h:panelGroup>

                      </f:facet>

                      <a4j:outputPanel id="modalContent">

                          <h:form id="dynamicDialogBoxForm">

                              <table width="100%">   

                                  <tr>

                                      <td>

                                           <fipos:include model="#{model}" page="#{page}"/>

                                         </td>

                                     </tr>

                                     <tr style="width:100%;" align="right">

                                         <td>   

                                             <fipos:include  model="#{model}" page="#{buttonBar}"/>

                                         </td>

                                     </tr>

                                 </table>

                           </h:form>

                       </a4j:outputPanel>

                  </rich:modalPanel>

       

      </ui:component>  

      {code}

       

      To open the dialogbox we use

       

       

      {code:xml}

           <h:graphicImage value="${resources.image('changeTab')}">

                <a4j:support status="waitStatus" action="#{dynamicDialogHandler.setDialogModel(model)}" immediate="true" ajaxSingle="true" event="onclick" reRender="modalContent,modalContentHeader" oncomplete="Richfaces.showModalPanel('dialogID');"/>

           </h:graphicImage>

      {code}

       

      Here is the DynamicDialogHandler

       

       

      {code}

      package xx;

       


      import java.io.Serializable;
      import org.jboss.seam.ScopeType;
      import org.jboss.seam.annotations.Logger;
      import org.jboss.seam.annotations.Name;
      import org.jboss.seam.annotations.Scope;
      import org.jboss.seam.log.Log;

      import com.generali.fipos.iss.base.decoration.properties.EmptyDecoratorModel;

      import com.generali.fipos.model.Viewable;

       

      @SuppressWarnings("serial")
      @Name("dynamicDialogHandler")
      @Scope(ScopeType.CONVERSATION)
      public class DynamicDialogHandler implements Serializable {

       


          //static
              @Logger Log log;
         
          //members
              //fields
              protected Viewable<?> dialogModel = new EmptyDecoratorModel();
              boolean mayCloseDialog = false;
              protected String default_page = "/gui/common/empty.xhtml";
              private String page = default_page;
              private final String buttonBar_default = "/gui/composite/buttonBarDynamicDialog.xhtml";
              private String buttonBar = buttonBar_default;

       



          /**
           * current model of the active dialog
           * @return
           */
          public Viewable<?> getDialogModel() {
              return dialogModel;
          }
         
          /**
           * returns the link to the button bar
           * @return for example /gui/xy.xhtml
           */
          public String getButtonBar() {
              return buttonBar;
          }

       


          /**
           *
           * @param dialogModel
           */
          public void setDialogModel(Viewable<?> dialogModel) {
              setDialogModelAndPage(dialogModel,dialogModel.getMainPage());
          }
         
          /**
           *
           * @param dialogModel
           */
          public void setDialogModelAndPage(Viewable<?> dialogModel,String differentPage) {
              setDialogModelAndPage(dialogModel, differentPage, buttonBar_default);
          }
         
          /**
           *
           * @param dialogModel
           */
          public void setDialogModelAndPage(Viewable<?> dialogModel,String differentPage,String differentButtonBar) {
              this.dialogModel = dialogModel;
              if(differentPage!=null && !differentPage.isEmpty())
                  this.page = differentPage;
              else
                  this.page = dialogModel.getMainPage();
              this.buttonBar = differentButtonBar;
              log.debug("DialogHandler setting dialogModel="+getDialogModel()+"\tpage="+getPage()+"\tbuttonBar="+getButtonBar());
          }
         

       


          /**
           * Returns the associated page for the current model
           * @return
           */
          public String getPage() {
              if(page!=null && !default_page.equals(page))
                  return page;
              if(getDialogModel()==null || getDialogModel().getMainPage()==null || "".equals(getDialogModel().getMainPage()))
                  return default_page;
              else
                  return getDialogModel().getMainPage();
          }
         
          /**
           * marks a dialog id for closing
           * @param key dialogid
           */
          public void markDialogForClose() {
              log.debug("DialogHandler mark dialog to close");
              mayCloseDialog=true;
          }
         
          /**
           * demarks a dialog id for closing
           * @param key dialogid
           */
          public void demarkDialogForClose() {
              log.debug("DialogHandler demark dialog to close");
              mayCloseDialog=false;
          }
         
          /**
           * checks if the dialog may be closed
           * @param key dialogid
           * @return
           */
          public boolean mayCloseDialog() {
              boolean b = mayCloseDialog;
              mayCloseDialog=false;
              return b;
          }
         
      }

      {code}

       

      I´m really happy about any help!!

        • 1. Re: strange behaviour when first opening a modal panel
          Ilya Shaikovsky Master

          Pointer for future cases - I think a4j:log could provide useful insight there. It provides all the info about client activities of ajax script. In that case - I believe you should see something like  "Element for update not found" there. And I believe that it's caused by non w3c-complaint markup. You using a4j:outputPanel which is encoded as span by default and form with table inside(any block elements inside of inline one - not allowed). So the browser corrects you markup automatically moving the table out of span I believe. in that case reRender - fails and content remains old. So just try to add layout="block" to outputPanel.

          • 2. Re: strange behaviour when first opening a modal panel
            Rene Gritsch Newbie

            Thnx Illya,

             

            i´ve added this to all outputpanels but it makes no difference.

            i will try to log some cases.

             

            But it´s not only a rerender problem, even some actions are not called.

            It´s really strange, let me explain the scenary.

             

            open modal panel -> search button --> open another modal panel with a datalist (refreshed ok) -> select node -> ok button closes second modal panel and refereshes first one (OK). close also first one

             

            same again

            open modal panel -> search button --> open another modal panel with datalist (refreshed ok) -> select node (action listener not fired BAD) -> ok button closes second modal panel (action not called BAD)

             

            if i say browser refresh, from now on everything works fine (same in IE and firerfox)

            • 3. Re: strange behaviour when first opening a modal panel
              Rene Gritsch Newbie

              So i´ve checked the a4j:logs for both cases.

              hmm i´m pretty sure that this isn´t a browser problem, i can´t find any real difference in them, except that my action method isn´t called.

               

              I will make some more tests an let you now, thnx for now!

              • 4. Re: strange behaviour when first opening a modal panel
                Rene Gritsch Newbie

                Okay now i know more...

                 

                on these modal panel (sub dialogs) i have an extentedDatatable with a binding to event scoped seam comp.

                I have onclick action registered on the extendedDatatable. As soon as a click one row my rowaction gets called, but from now

                on my OK commandbutton actions is not called anymore ?!

                If i remove the binding, a can´t get the selection anymore but my OK commandbutton works fine. So it has definitly something todo with

                the binding.

                 

                I will post the code and a screenshot for better understanding

                test2.png

                 

                 

                {code:xml}

                <?xml version="1.0" encoding="UTF-8" standalone="no"?><ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:a4j="http://richfaces.org/a4j" xmlns:f="http://java.sun.com/jsf/core" xmlns:fipos="http://enhancements.fipos/jsf" xmlns:h="http://java.sun.com/jsf/html" xmlns:rich="http://richfaces.org/rich" xmlns:s="http://jboss.com/products/seam/taglib" xmlns:t="http://myfaces.apache.org/tomahawk" xmlns:ui="http://java.sun.com/jsf/facelets">

                    <rich:modalPanel id="panelPartnerSearch" minWidth="600" maxHeight="350" autosized="true">

                            <f:facet name="header">

                                <h:panelGroup>

                                    <h:outputText value="Partnersuche"></h:outputText>

                                </h:panelGroup>

                            </f:facet>

                            <f:facet name="controls">

                                <h:panelGroup>

                                    <h:graphicImage value="#{resources.image('message.close')}" height="16" width="16" styleClass="hidelink" id="mdi"/>

                                    <rich:componentControl for="panelPartnerSearch" attachTo="mdi" operation="hide" event="onclick"/>

                                </h:panelGroup>

                            </f:facet>

                 

                            <a4j:form id="panelFormFastPartySearch">                       

                                <a4j:outputPanel id="modalContentPartnerSearch" layout="block">

                                     <table width="100%">

                                            <tr align="left">

                                                <td>           

                                                    <h:panelGrid columns="1">

                                                        <a4j:jsFunction name="selectEntry" action="#{partyTurntableButtonController.fastSearchOvertakeSelectedParties}" reRender="panelPartnerTurntable"/>

                 

                                                        <rich:datascroller for="fastpartyDataList"/>

                                                        <rich:extendedDataTable

                                                            id="fastpartyDataList"

                                                            width="600px"

                                                            height="350px"

                                                            sortMode="single"

                                                            selectionMode="multi"

                                                               value="#{turntableFastSearchModel.partyDataList}"

                                                            selection="#{turntableFastSearchDatatableBinding.selection}"

                                                            binding="#{turntableFastSearchDatatableBinding.dataTable}"

                                                               rows="20"

                                                               var="row">

                 

                                                               <a4j:support event="onclick" limitToList="true" immmediate="true" bypassUpdates="true"/>

                                                            <a4j:support event="onRowDblClick" limitToList="true" immmediate="true" bypassUpdates="true" oncomplete="selectEntry();Richfaces.hideModalPanel('panelPartnerSearch');" />

                 

                                                            <rich:column headerClass="dataTableHeader" width="100"

                                                                label="Actions" sortable="false">

                                                                <f:facet name="header">

                                                                    <h:outputText value="Aktionen" />

                                                                </f:facet>

                                                            </rich:column>

                                                            <rich:column headerClass="dataTableHeader" width="50"

                                                                label="Id" sortable="true" sortBy="#{row.ID}">

                                                                <f:facet name="header">

                                                                    <h:outputText value="Id" />

                                                                </f:facet>

                                                                <h:outputText value="#{row.ID}" />

                                                            </rich:column>

                                                            <rich:column headerClass="dataTableHeader" width="300"

                                                                label="Name" sortable="true" sortBy="#{row.preview}"

                                                                             filterBy="#{row.preview}" filterEvent="onkeyup">

                                                                <f:facet name="header">

                                                                    <h:outputText value="Name" />

                                                                </f:facet>

                                                                <h:outputText value="#{row.preview}" />

                                                            </rich:column>

                                                            <rich:column headerClass="dataTableHeader" width="100"

                                                                label="Birthdate" sortable="true" sortBy="#{row.birthdate}">

                                                                <f:facet name="header">

                                                                    <h:outputText value="Geburtsdatum" />

                                                                </f:facet>

                                                                <h:outputText value="#{row.geburtsdatum}" />

                                                            </rich:column>

                                                        </rich:extendedDataTable>

                                                        <rich:datascroller for="fastpartyDataList"/>                                      

                                                   </h:panelGrid>

                                                </td>

                                            </tr>

                                    </table>   

                                   </a4j:outputPanel>

                                   <rich:spacer height="3" />   

                                   <t:fieldset>

                                    <table width="100%">

                                        <tr align="right">

                                            <td>

                                                <a4j:commandButton  id="fastPartySearchCancelButton"

                                                                    onclick="Richfaces.hideModalPanel('panelPartnerSearch');"

                                                                    value="#{convertHelper.getButtonLabel('buttonbar.product.cancel')}"    

                                                                    style="width:#{convertHelper.calculateButtonSize('buttonbar.product.cancel')}px"

                                                                    type="reset"

                                                                    />

                 

                                                <a4j:commandButton  id="fastPartySearchOKButton"

                                                                    oncomplete="Richfaces.hideModalPanel('panelPartnerSearch');"

                                                                    value="#{convertHelper.getButtonLabel('buttonbar.product.ok')}"    

                                                                    ajaxSingle="true"   

                                                                    status="waitStatus"

                                                                    reRender="panelPartnerTurntable"                                       

                                                                    action="#{partyTurntableButtonController.fastSearchOvertakeSelectedParties}"

                                                                    style="width:#{convertHelper.calculateButtonSize('buttonbar.product.ok')}px"

                                                                    />

                                            </td>

                                        </tr>       

                                    </table>

                                </t:fieldset>

                        </a4j:form>           

                    </rich:modalPanel>

                </ui:composition>

                {code}

                 

                {code}

                package x;

                 

                @SuppressWarnings("serial")

                @Name("turntableFastSearchDatatableBinding")

                @Scope(ScopeType.EVENT)

                public class TurntableFastSearchDatatableBinding implements Serializable {

                 

                    private HtmlExtendedDataTable dataTable;

                    private SimpleSelection selection;

                 

                    public HtmlExtendedDataTable getDataTable() {

                        return dataTable;

                    }

                    public void setDataTable(HtmlExtendedDataTable dataTable) {

                        this.dataTable = dataTable;

                    }

                    public SimpleSelection getSelection() {

                        return selection;

                    }

                    public void setSelection(SimpleSelection selection) {

                        this.selection = selection;

                 

                        TurntableModel tm = PartyTurntableButtonController.getModel();

                        List<Partner> selectedParties = new ArrayList<Partner>();

                        Iterator<Object> keyIt = getSelection().getKeys();

                        while (keyIt != null && keyIt.hasNext()) {

                            Object key = keyIt.next();

                            getDataTable().setRowKey(key);

                            com.generali.fipos.persistence.db.complex.Partner dbp = (com.generali.fipos.persistence.db.complex.Partner) getDataTable().getRowData();

                            try{

                                Partner p = DaoFactory.getInstance().getPartnerDao().mapPartyFromDBParty(dbp);

                                selectedParties.add( p);

                                tm.getDecorated().setSelectedParty(p);

                            }catch(DaoException daoe) {

                                throw new RuntimeException("Exception while mapping party from database to dao!\n"+daoe.getMessage(),daoe);

                            }

                        }

                 

                        tm.setSelectedFastSearchParties(selectedParties);

                    }

                 

                }

                {code}

                • 5. Re: strange behaviour when first opening a modal panel
                  Ilya Shaikovsky Master

                  tried your code with a few simplifications

                  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                  <ui:composition>
                  <rich:modalPanel showWhenRendered="true">
                  <a4j:form id="panelFormFastPartySearch">
                  <a4j:outputPanel id="modalContentPartnerSearch" layout="block">
                  <table width="100%">
                  <tr align="left">
                  <td><h:panelGrid columns="1">
                  <rich:datascroller for="table" />
                  <rich:extendedDataTable
                  value="#{extendedTableBean.capitalsDataModel}" var="cap"
                  id="table" width="580px" height="400px"
                  sortMode="#{extendedTableBean.sortMode}"
                  selectionMode="#{extendedTableBean.selectionMode}"
                  tableState="#{extendedTableBean.tableState}"
                  selection="#{tableBinding.selection}"
                  binding="#{tableBinding.dataTable}">
                  <rich:column sortable="false" label="Flag" id="col_1">
                  <f:facet name="header">
                  <h:outputText value="Flag" id="flag" />
                  </f:facet>
                  <h:graphicImage value="#{cap.stateFlag}" id="cap_state_flag" />
                  </rich:column>
                  <rich:column sortBy="#{cap.state}" id="col_2"
                  filterBy="#{cap.state}" filterEvent="onkeyup" width="170px"
                  label="State Name">
                  <f:facet name="header">
                  <h:outputText value="State Name" id="state_name" />
                  </f:facet>
                  <h:outputText value="#{cap.state}" id="cap_state" />
                  </rich:column>
                  <rich:column sortable="true" sortBy="#{cap.name}" id="col_3"
                  filterBy="#{cap.name}" filterEvent="onkeyup" width="170px"
                  label="State Capital">
                  <f:facet name="header">
                  <h:outputText value="State Capital" id="state_capital" />
                  </f:facet>
                  <h:outputText value="#{cap.name}" id="cap_name" />
                  </rich:column>
                  <rich:column sortBy="#{cap.timeZone}" label="Time Zone"
                  id="col_4">
                  <f:facet name="header">
                  <h:outputText value="Time Zone" id="time_zone" />
                  </f:facet>
                  <h:outputText value="#{cap.timeZone}" id="cap_time_zone" />
                  </rich:column>
                  <a4j:support event="onclick" limitToList="true"
                  immmediate="true" bypassUpdates="true" />
                  </rich:extendedDataTable>
                  <rich:datascroller for="table" />
                  </h:panelGrid></td>
                  </tr>
                  </table>
                  </a4j:outputPanel>
                  <fieldset>
                  <table width="100%">
                  <tr align="right">
                  <td><a4j:commandButton id="fastPartySearchOKButton"
                  value="problem" ajaxSingle="true"
                  action="#{extendedTableBean.action}" /></td>
                  </tr>
                  </table>
                  </fieldset>
                  </a4j:form>
                  </rich:modalPanel>
                  </ui:composition>
                  </html>

                  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

                  <html xmlns="http://www.w3.org/1999/xhtml"

                       xmlns:ui="http://java.sun.com/jsf/facelets"

                       xmlns:h="http://java.sun.com/jsf/html"

                       xmlns:f="http://java.sun.com/jsf/core"

                       xmlns:a4j="http://richfaces.org/a4j"

                       xmlns:rich="http://richfaces.org/rich">

                   

                  <ui:composition>

                       <rich:modalPanel showWhenRendered="true">

                            <a4j:form id="panelFormFastPartySearch">

                                 <a4j:outputPanel id="modalContentPartnerSearch" layout="block">

                                      <table width="100%">

                                           <tr align="left">

                                                <td><h:panelGrid columns="1">

                   

                                                     <rich:datascroller for="table" />

                   

                                                     <rich:extendedDataTable

                                                          value="#{extendedTableBean.capitalsDataModel}" var="cap"

                                                          id="table" width="580px" height="400px"

                                                          sortMode="#{extendedTableBean.sortMode}"

                                                          selectionMode="#{extendedTableBean.selectionMode}"

                                                          tableState="#{extendedTableBean.tableState}"

                                                          selection="#{tableBinding.selection}"

                                                          binding="#{tableBinding.dataTable}">

                                                          <rich:column sortable="false" label="Flag" id="col_1">

                                                               <f:facet name="header">

                                                                    <h:outputText value="Flag" id="flag" />

                                                               </f:facet>

                                                               <h:graphicImage value="#{cap.stateFlag}" id="cap_state_flag" />

                                                          </rich:column>

                                                          <rich:column sortBy="#{cap.state}" id="col_2"

                                                               filterBy="#{cap.state}" filterEvent="onkeyup" width="170px"

                                                               label="State Name">

                                                               <f:facet name="header">

                                                                    <h:outputText value="State Name" id="state_name" />

                                                               </f:facet>

                                                               <h:outputText value="#{cap.state}" id="cap_state" />

                                                          </rich:column>

                                                          <rich:column sortable="true" sortBy="#{cap.name}" id="col_3"

                                                               filterBy="#{cap.name}" filterEvent="onkeyup" width="170px"

                                                               label="State Capital">

                                                               <f:facet name="header">

                                                                    <h:outputText value="State Capital" id="state_capital" />

                                                               </f:facet>

                                                               <h:outputText value="#{cap.name}" id="cap_name" />

                                                          </rich:column>

                                                          <rich:column sortBy="#{cap.timeZone}" label="Time Zone"

                                                               id="col_4">

                                                               <f:facet name="header">

                                                                    <h:outputText value="Time Zone" id="time_zone" />

                                                               </f:facet>

                                                               <h:outputText value="#{cap.timeZone}" id="cap_time_zone" />

                                                          </rich:column>

                                                          <a4j:support event="onclick" limitToList="true"

                                                               immmediate="true" bypassUpdates="true" />

                                                     </rich:extendedDataTable>

                                                     <rich:datascroller for="table" />

                   

                                                </h:panelGrid></td>

                                           </tr>

                                      </table>

                                 </a4j:outputPanel>

                   

                                 <fieldset>

                                 <table width="100%">

                                      <tr align="right">

                                           <td><a4j:commandButton id="fastPartySearchOKButton"

                                                value="problem" ajaxSingle="true"

                                                action="#{extendedTableBean.action}" /></td>

                                      </tr>

                                 </table>

                                 </fieldset>

                            </a4j:form>

                       </rich:modalPanel>

                  </ui:composition>

                   

                  </html>

                  As expected - both action fired for me sequentially Now let's see what could occur on your side.

                   

                  At first please add phasetracker to application and check it's output for both requests.And in general if there are some reports in server log?

                  • 6. Re: strange behaviour when first opening a modal panel
                    Rene Gritsch Newbie

                    Working one:

                    23.11.2010 12:13:54 org.exadel.jsf.PhaseTracker beforePhase
                    INFO: BEFORE RESTORE_VIEW 1
                    23.11.2010 12:13:54 org.exadel.jsf.PhaseTracker afterPhase
                    INFO: AFTER RESTORE_VIEW 1
                    23.11.2010 12:13:54 org.exadel.jsf.PhaseTracker beforePhase
                    INFO: BEFORE APPLY_REQUEST_VALUES 2
                    23.11.2010 12:13:54 org.exadel.jsf.PhaseTracker afterPhase
                    INFO: AFTER APPLY_REQUEST_VALUES 2
                    23.11.2010 12:13:54 org.exadel.jsf.PhaseTracker beforePhase
                    INFO: BEFORE PROCESS_VALIDATIONS 3
                    23.11.2010 12:13:54 org.exadel.jsf.PhaseTracker afterPhase
                    INFO: AFTER PROCESS_VALIDATIONS 3
                    23.11.2010 12:13:54 org.exadel.jsf.PhaseTracker beforePhase
                    INFO: BEFORE UPDATE_MODEL_VALUES 4
                    23.11.2010 12:13:54 org.exadel.jsf.PhaseTracker afterPhase
                    INFO: AFTER UPDATE_MODEL_VALUES 4
                    23.11.2010 12:13:54 org.exadel.jsf.PhaseTracker beforePhase
                    INFO: BEFORE INVOKE_APPLICATION 5
                    23.11.2010 12:13:56 org.exadel.jsf.PhaseTracker afterPhase
                    INFO: AFTER INVOKE_APPLICATION 5
                    23.11.2010 12:13:56 org.exadel.jsf.PhaseTracker beforePhase
                    INFO: BEFORE RENDER_RESPONSE 6
                    23.11.2010 12:13:58 org.exadel.jsf.PhaseTracker afterPhase
                    INFO: AFTER RENDER_RESPONSE 6

                     

                     

                    Same after clicking a row in the datatable:

                    23.11.2010 12:14:43 org.exadel.jsf.PhaseTracker beforePhase
                    INFO: BEFORE RESTORE_VIEW 1
                    23.11.2010 12:14:43 org.exadel.jsf.PhaseTracker afterPhase
                    INFO: AFTER RESTORE_VIEW 1
                    23.11.2010 12:14:43 org.exadel.jsf.PhaseTracker beforePhase
                    INFO: BEFORE APPLY_REQUEST_VALUES 2
                    WARN  [org.ajax4jsf.component.AjaxViewRoot] No component found to process as 'ajaxSingle' for clientId j_id198:panelFormFastPartySearch:fastPartySearchOKButton
                    23.11.2010 12:14:43 org.exadel.jsf.PhaseTracker afterPhase
                    INFO: AFTER APPLY_REQUEST_VALUES 2
                    23.11.2010 12:14:43 org.exadel.jsf.PhaseTracker beforePhase
                    INFO: BEFORE PROCESS_VALIDATIONS 3
                    WARN  [org.ajax4jsf.component.AjaxViewRoot] No component found to process as 'ajaxSingle' for clientId j_id198:panelFormFastPartySearch:fastPartySearchOKButton
                    23.11.2010 12:14:43 org.exadel.jsf.PhaseTracker afterPhase
                    INFO: AFTER PROCESS_VALIDATIONS 3
                    23.11.2010 12:14:43 org.exadel.jsf.PhaseTracker beforePhase
                    INFO: BEFORE UPDATE_MODEL_VALUES 4
                    WARN  [org.ajax4jsf.component.AjaxViewRoot] No component found to process as 'ajaxSingle' for clientId j_id198:panelFormFastPartySearch:fastPartySearchOKButton
                    23.11.2010 12:14:43 org.exadel.jsf.PhaseTracker afterPhase
                    INFO: AFTER UPDATE_MODEL_VALUES 4
                    23.11.2010 12:14:43 org.exadel.jsf.PhaseTracker beforePhase
                    INFO: BEFORE INVOKE_APPLICATION 5
                    23.11.2010 12:14:43 org.exadel.jsf.PhaseTracker afterPhase
                    INFO: AFTER INVOKE_APPLICATION 5
                    23.11.2010 12:14:43 org.exadel.jsf.PhaseTracker beforePhase
                    INFO: BEFORE RENDER_RESPONSE 6
                    23.11.2010 12:14:44 org.exadel.jsf.PhaseTracker afterPhase
                    INFO: AFTER RENDER_RESPONSE 6

                    • 7. Re: strange behaviour when first opening a modal panel
                      Ilya Shaikovsky Master

                      found couple of problems:

                       

                      1) still much outputPanel's without layout - causes much non w3c-complatin html. much spans with nested tables, div's and so on.

                      2) a4j:include by default also create span as root element. weird but you should define layout also where used.

                      3) clicked to Vergleich menu item. After page loaded and called Partnerdrehscheibe menu I opened page HTML source. I see that there are few HTML - head - body structures in document.

                       

                       

                      please resolve all that problems before going further.

                       

                      I really appreciate your efforts of providing sample application. That helped much.

                      • 8. Re: strange behaviour when first opening a modal panel
                        Ilya Shaikovsky Master

                        Sorry, but unable to find the reason in a short time and now too much on the plates to dig so huge sample. As next step I could suggest to assign id's to all the fipos:inlude components and pass them to include template. Also check that all the action components which used in erroneous case has non-autogenerated ids. Then check if the problem exist.

                         

                        B.t.w. one more minor problem to check navigation using tree sends two requests one of which are returns server error. Conversation could be broken there.

                         

                        If you would be able to simplify case samples - it will helps a lot to resolve in a short time.