• Dojo Tab Containers and partial refresh

    By Pieter JD Malan 3 years ago

    Hello,

    I am having trouble with Dojo Tab Containers and partial refresh.

    I am including a sample database to illustrate the issue:

    1. Navigate to : http://localhost/refreshtest.nsf/. A view and empty form is displayed. The form contains a Dojo Tab Container with 2 tabs:
    2. Click on one of the entries in the view – the information is displayed in the form below, but the formatting of the tab container is lost:

       
    3. This application works as expected R8.5.2. Am I missing anything – or is there a workaround for this issue.

    Anny help would be appreciated ... we can only upgrade to 8.5.3 once this issue is resolved :-)

     

    Regards,

    Pieter Malan

    • Sample DB attached below

      By Pieter JD Malan 3 years ago
      • This looks like an issue with dojo 1.6.1

        By Philippe Riand 3 years ago

        Thanks for the sample DB. When I switched back to dojo 1.5.1, then it worked. So we have an issue with Dojo here that needs investigation.

        • Thanks for the updade - 2 questions>

          By Pieter JD Malan 3 years ago

          Hello,

          1. Do I loose any major functionality by downgrading dojo to 1.5.1

          2, What is the steps required to downgrade to Dojo 1.5.1

           

          • This is not recommended

            By Philippe Riand 3 years ago

            You have to set the dojo property version to 1.5.1, but 1.5.1 is not recommended nor supported with 8.5.3. We should better try to understand what fails with 1.6.1, and even see if 1.7.x fixes it. I already notified the team and push it as an SPR.

            • An SPR has been logged and verified against dojo-1.6.1 & dojo-1.7.x

              By lisa henry 3 years ago

              An SPR has been created and verified against dojo-1.6.1.

              DEGN8RKB43:  OpenNTF Dojo Tab Containers and partial refresh

              I also have verified this issue also occurs on upgrade to dojo-1.7.x, with an added error, therefore will need some investigation

              • Thanks for the update!

                By Pieter JD Malan 3 years ago
              • Need advice on how to proceed

                By Pieter JD Malan 2 years ago

                Hello,

                 

                We seem to be stuck between a rock and a hard place with our project at the moment!

                 

                We have major issues with browser incompatability with some of the extension library components on Domino 8.5.2 and would love to upgrade to 8.5.3, since it seems that the browser issues may be fixed, but cannot as a result of this issue.

                 

                We do not want to use the standard tab container since it refresh on each tab change - do you perhaps have an alternative solution we could try?

                 

                Would it be an option for us to package dojo 1.5 and see if that resolves the issue? I know such a configuration is  not supported, but are you aware of any issues as a result of reverting back?

                Many thanks,

                Pieter Malan

                 

                • Make the fresh bigger

                  By Philippe Riand 2 years ago

                  I tried your sample and simply remove the refreshId. In this case, it still does a partial refresh, but on the whole page. This means that it doesn't again parse the JS and CSS files, and thus it is very fast.

                  Or, avoid using partial refresh in this particular case.

                   

                  <xp:viewColumn columnName="Name" id="viewColumn1"
                  
                  displayAs="link">
                  
                  <xp:viewColumnHeader value="Name" id="viewColumnHeader1"></xp:viewColumnHeader>
                  
                  <xp:eventHandler event="onclick" submit="true"
                  
                  refreshMode="partial" immediate="true">
                  
                  <xp:this.action><![CDATA[#{javascript:viewScope.put("docId", currView.getUniversalID());}]]></xp:this.action>
                  
                  </xp:eventHandler>
                  
                  </xp:viewColumn>
                  
                   
                  
                  • xe:djTabContainer and partial update

                    By Maire Kehoe 2 years ago

                    I've looked into this issue some more (DEGN8RFC3B).

                    The problem occurs when the XPage root control has dojoForm="true", and you have an xe:djTabContainer or Dojo Tab Container (dijit.layout.TabContainer) within an area that is partial updated or partial refreshed.

                    To workaround the issue, put a panel control within the partial update area, surrounding the tab container. Add an onClientLoad event to the panel, with client JavaScript code like so (referencing the tab container's id):
                                   // needed in 8.5.3
                                    dijit.byId('#{id:djTabContainer1}').startup();
                                    // needed in 8.5.3 and 8.5.4
                                    dijit.byId('#{id:djTabContainer1}').resize();

                    In 8.5.3 you need to call both startup and resize. In recent not-yet-released 8.5.4 builds, you only need to call resize.
                    The updated sample is attached.