Uploaded image for project: 'Hippo CMS'
  1. Hippo CMS
  2. CMS-15208

[Backport 15.2] Phase 2 perf impr: [FE] SiteMap performance improvement

    XMLWordPrintable

Details

    • New Feature
    • Status: Closed
    • Normal
    • Resolution: Fixed
    • None
    • 15.2.0
    • None
    • None
    • Quasar
    • Quasar Sprint 300, Quasar Sprint 301
    • Medium (3-5)

    Description

      See the description of ENT-5852 and how the backend will start returning partial SiteMap trees

      User stories & functional requirements

      As a User, I would like to have an improved SiteMap tree so that it will take less time to load the list

      Acceptance criteria

      • The user should be able to navigate via the SiteMap tree with less time taking to load the list
      • The spinner should not be shown as the result is expected to be fairly instant
      • Once the list of children for the item is loaded, there is no need to make another request to the BE when the user collapses/expands the item again

      Scope & technical Implementation

      • On page init, load the SiteMap tree using the endpoint below
        _rp/{sitemapUUID}./sitemapitem

        The response will look like 

      "data":{ 
        "id":"/", 
        "name":"home", 
        "pageTitle":null, 
        "pathInfo":"/", 
        "renderPathInfo":"/site/v1/channels/brxsaas", 
        "experiencePage":false, 
        "children":[{ 
          "id":"about",
          "name":"about", 
          "pageTitle":"About", 
          "pathInfo":"about", 
          "renderPathInfo":"/site/v1/channels/brxsaas/about", 
          "experiencePage":true, 
          "expandable":false 
        }]
      }

      On UI, the FE should draw the list of items with the same stylings as it is right now. The flag expandable indicates if this item has children to load. In case expandable is true, the FE should show an expandable arrow. 

      • When the user clicks on the expandable arrow the FE should make a call to
        _rp/{sitemapUUID}./sitemapitem/{children_item.id}

        It should fetch the children for the item. The FE should merge these children into the existing list and update the list on UI. This behavior is repeatable for all nested items of the list.

      Testing

      I guess E2E tests should not be changed. Not sure if we have any tests to measure performance. Plan to add e2e tests in a separate task to cover scenarios of:

      • Requests when un/folding sitemap items
      • Create/delete page/document being reflected in the sitemap
      • Switching between branches, merging branches
      • Changes to the sitemap between two users

      Attachments

        Issue Links

          Activity

            People

              dhachok Dmytro Hachok
              dhachok Dmytro Hachok
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: