The JCR browser app is a Magnolia tool that allows you to work at the repository level in any workspace. You can see details that are not readily visible in a specific app's tree view, and edit content and associated configuration. 

Configuration

The JCR app is based on the content app framework. The app is in the Tools app group that is only available to the superuser role. This restriction is configured in the app launcher layout.

The app is configured in /modules/jcr-browser-app/apps/jcr-browser.

Using the app

You can edit and add content in any workspace, but always do this with caution because you are working a repository level.

  • Browsing: Use the dropdown to switch between workspaces. All workspaces are available. If you create a new workspace it will automatically be available in the app.

  • Display system properties: Click the filter iconon the left and then check the check off button on the right to display properties such as UUIDs, creation dates and user information. These properties are omitted by default. When enabled they cannot be edited and editing actions are disabled.  

  • Editing: You can work with all content, except system properties, in the same way as any other app.

The Configuration app is essentially a JCR browser that displays the config workspace.

Website JCR browser example

The JCR browser shows content as it is stored in the JCR and is useful for looking at details that you would not see in the Pages app.

Example: Comparison of Demo Travel's About page in the JCR browser and in the editor.  


Nodes and properties:

<page folders>

Pages (mgnl:page) are stored in folders:

  • The page folder-structure matches the website tree structure.
  • There are content nodes for each page area .
  • All area nodes reside at the same level, regardless of whether configured as main or nested areas.

<area nodes>

Areas (mgnl:area) are stored in content nodes:
  • single and list areas have component subnodes.
  • noComponent areas can be used in various ways but typically have only area properties.

<component nodes>

Components (mgnl:component) are stored in numbered content nodes:

  • Node numbers are sequential and assigned automatically.
  • Nodes display in the same order as on the page.
  • Assigned number depends on when the component was created. Rendering order may not match numbering order. 
  • Components with nested components follow the same structure as area nodes. This coincides with the component definition configuration.

<component properties>

Component properties are stored under the component node:

  • Property names correspond to dialog field names.
  • By default i18n properties have a locale suffix.

<area properties>

Area properties, if any, reside under the area node.

<page properties>

Page properties reside under the page node:

  • Property names typically correspond to field names in the page properties dialog.
  • Components or areas can also add page-level properties.

Editing in the Website JCR browser

While in some cases the JCR browser may be considered a quicker alternative to editing content in a dedicated app, editing directly in the JCR browser rather than in the app may actually cause more damage than good to the integrity of your data.

There are certain things that you can do in the browser that are not possible in the editor. Here are a few suggestions:

  • Add multiple similar components to a page using the Duplicate item action. This saves the time and effort of adding the components from scratch in the editor. Duplicates can be amended in either the editor or browser. 
  • Add the same component to multiple pages. Duplicate a component on page 1 and then move the duplicate to the same area on page 2 or more.

(warning) While it is possible to move components from one page area to another, this is not a best practice. For seamless publishing your page content should always comply with the options in the template.

Publishing in the Website JCR browser

Publishing in the Website JCR browser is different from publishing in the Pages app:

  • When you publish a page in the JCR Browser, only the page and its properties are published. 
  • When you publish a page in the Pages app, the page and ALL its children (properties, areas, components) are published.
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))