Uploaded image for project: 'Nuxeo Platform'
  1. Nuxeo Platform
  2. NXP-11331

Better support for multi-tab navigation

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Severity: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 5.7.2
    • Component/s: Seam / JSF UI

      Description

      The problem
      JSF Backoffice UI depends on Seam Conversation context.
      Conversation ID is transmited via URL in REST links and is associated with sever side state (currentDocument, current selection ...).

      As a result, when using several tabs, if they all point to the same conversation, all the tabs share the same server side state, and this becomes a mess.

      The solution
      There is no simple way to detect that a user choose to navigate in a new tab.

      But Florent found the solution : we detect 'normal' navigation and add propagation of the conversation to the url.
      In all other cases, we use the default url that should not integrate the conversationId.

      <A href="nuxeo/somepage.faces" onclick="if(!event.ctrlKey){this.href='nuxeo/somepage.faces?converstaionId=0NXMAIN1'}"> Some doc </A>
      

      Integration
      This can be directly integrated inside RestDocumentLinkRenderer and RestDocumentLink.

        Issue Links

          Activity

          Hide
          Jenkins added a comment -

          SUCCESS: Integrated in nuxeo-jsf-master #1134
          NXP-11331 first version of RestDocumentLinkRenderer that uses JS to modify href at click time and allow multi-tabs navigation (jenkins: fc1d1f59d0da553a9b75b2de77fa61e8fa8efd9d)
          NXP-11331 also detected MacOS Ctrl+Click and open in new tab via middle mouse button (jenkins: 83e9b8ae7887a82bc86417ab16a6a82ec565d8d3)
          NXP-11331: let external link display be configured from studio (jenkins: b053095a5efc361857cb9e1192cb8221565fb9a7)
          NXP-11331: add hideExternalLink to layout (jenkins: affad627b973d5655400f38a5932f30b29e26f58)

          Show
          Jenkins added a comment - SUCCESS: Integrated in nuxeo-jsf-master #1134 NXP-11331 first version of RestDocumentLinkRenderer that uses JS to modify href at click time and allow multi-tabs navigation (jenkins: fc1d1f59d0da553a9b75b2de77fa61e8fa8efd9d ) NXP-11331 also detected MacOS Ctrl+Click and open in new tab via middle mouse button (jenkins: 83e9b8ae7887a82bc86417ab16a6a82ec565d8d3 ) NXP-11331 : let external link display be configured from studio (jenkins: b053095a5efc361857cb9e1192cb8221565fb9a7 ) NXP-11331 : add hideExternalLink to layout (jenkins: affad627b973d5655400f38a5932f30b29e26f58 )
          Hide
          Bertrand Chauvin added a comment - - edited

          To test:
          Show a document edition form
          Right click on a link and open a new tab (or ctrl / command + click)
          In the new tab, navigate on at least 4 different screens
          Go back to the first tab
          Save the document
          If an error appears saying the view could not be restored, then test is KO. If document is saved fine, test is OK.

          Show
          Bertrand Chauvin added a comment - - edited To test: Show a document edition form Right click on a link and open a new tab (or ctrl / command + click) In the new tab, navigate on at least 4 different screens Go back to the first tab Save the document If an error appears saying the view could not be restored, then test is KO. If document is saved fine, test is OK.
          Hide
          Bertrand Chauvin added a comment -

          Tested OK.

          Show
          Bertrand Chauvin added a comment - Tested OK.
          Hide
          Jenkins added a comment -

          SUCCESS: Integrated in nuxeo-jsf-master #1166
          NXP-11331: don't prevent external links from starting a new conversation (grenard: 46441e20560f8d2b630669eaf83df0534f63b072)

          Show
          Jenkins added a comment - SUCCESS: Integrated in nuxeo-jsf-master #1166 NXP-11331 : don't prevent external links from starting a new conversation (grenard: 46441e20560f8d2b630669eaf83df0534f63b072 )
          Hide
          Guillaume Renard added a comment -

          A side effect of this integration was to prevent external links from starting a new conversation. This is fixed with the last commit https://github.com/nuxeo/nuxeo-jsf/commit/46441e20560f8d2b630669eaf83df0534f63b072.

          Show
          Guillaume Renard added a comment - A side effect of this integration was to prevent external links from starting a new conversation. This is fixed with the last commit https://github.com/nuxeo/nuxeo-jsf/commit/46441e20560f8d2b630669eaf83df0534f63b072 .

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: