Enabling contextual editing of an SPA

November 14, 2023

You can enable contextual editing of an SPA to allow content contributors to browse to the app in Edit mode in Jahia, navigate inside the app, and edit content directly in the app.

Note: The application must be served by Jahia to be visible in Edit mode.

If your SPA resides on a standalone application, you should move or embed the SPA inside a Jahia module. For example, move the SPA directly inside your [spa_name]-dx-module.

For example, if your SPA consists of a JavaScript SPA and simple bootstrapping HTML, you can copy the HTML code into a page template and then create a Jahia page named spa_name. Then, the JavaScript will be bundled inside the module.

To create a page template:

  1. Create a template view ( for example, jnt_template/html/template.spa_name.jsp) which will contain the HTML code.
  2. In Jahia Studio, add a new page template using this view.
  3. Then, create a page from the new template in your site. Verify that the SPA correctly displays.

After creating your page template, modify the application so that you can open it for editing in Jahia Edit mode.

The app can detect that is in an edit frame by checking for the presence of window.parent.jahiaGWTParameters. If Edit mode is detected, you should switch the router to memory or hash to avoid conflicts with the edit frame.

Finally, you can add Edit buttons to specific sections of the application. Modify the button so that it calls:

window.parent.authoringApi.editContent("/sites/digitall/contents/destinations/xxx", '',["jnt:content"], ['gant:destination'])

Where:

  • "/sites/digitall/contents/destinations/xxx"
    Is the path of the content item
  • ["jnt:content"]
    Is the base type of your content
  • ['gant:destination']
    Is the type of the content item