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

Support available XPage templates via Hst Model

    XMLWordPrintable

Details

    • New Feature
    • Status: Closed
    • Normal
    • Resolution: Fixed
    • None
    • 14.3.0
    • None

    Description

      Goal

      In the Content Editor and in the Channel Manager we need to support creating a new XPage
      https://bloomreach.invisionapp.com/share/N4WCV1BEUXC#/screens/413517056

      Questions

      Where are the available XPages stored? Are they per channel, per webapp or global for all webapps and all channels? If they are per channel, then how would this work out in the Content Editor perspective since in the content perspective, there is no context about a channel. When an XPage layout has been chosen and copied below the document variant, should the XPage keep a reference to its origin where it was created from? Potentially valuable information in case the XPage layout ever gets changed...that way we could inform a developer which XPages originated from the layout and require potential changes. Should the origin reference be a unique combination (like Channel + XPage-layout name) or just the identifier (UUID) of the hst XPage layout node?

      Choices and Technical Approach

      Xpage layouts will become available for a Channel and in general be PER channel. They can ONLY be stored directly below the hst:configuration node for PaaS and only below the hst:workspace node for SaaS (see CMS-13535), for example as follows:

      + hst:site 
           + hst:configurations
               + myproject
                   + hst:xpages  [new nodetype]
                       + one-column   [hst:xpage]
                       |        + main
                       |            + container1
                       + two-column  [hst:xpage]
                                + main
                                    + container1
                                    + container2
      

      (and for SaaS below the hst:workspace like above)

      NOTE : we do not support XPages to be inherited from other hst configurations! They are PER channel.

      Above will be the storage structure. The HST API can via the Channel object support XPages as a List<XPage> where an XPage object contains all the information needed for the folder workflow to add a subprototype for the hst:xpage

      Now in the Channel Manager we could create a new XPage without confusion since the context of which channel is 'known'. However, we still have the problem of solving the 'Channel' context in the content editor.

      At this moment, the only way I see this possible, is to not let the Channel Manager 'decide' the context, but have this information on the XPageFolder : XPages will in general always be put in a certain folder, and this folder is likely to be configured to only allow XPageFolders or XPage documents...just like a blog folder is only allowed new blog folder or blog documents. We can add information on an XPageFolder for which channel this folder is meant, and when a child folder is added, this information is inherited (just like the hippotranslation:locale is inherited)

      To support choosing a document template [1], CMS wicket code can access the HST platform model via the HstRequestContext and via that access any other HstSite and Channel object and thus find out which XPage templates are available below a certain folder.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              aschrijvers Ard Schrijvers
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: