JCR data source
The JCR data source provides a flat or hierarchical structure of JCR nodes from a given JCR workspace in a specified root path.
The JCR data source is part of the Magnolia 6 UI framework. The fully
qualified class name is
If you work with the Magnolia 5 UI framework, see Content connector instead. |
Example definition
datasource:
$type: jcrDatasource
workspace: contacts
includeProperties: true
preview:
nodeName: photo
allowedNodeTypes:
- mgnl:contact
- mgnl:folder
describeByProperty: lastName # will display a contact's last name instead of its JCR path
sortBy:
lastName: ascending
firstName: descending
List of properties
Property | Description | ||
---|---|---|---|
|
required Use |
||
|
required Specifies the parameters for info.magnolia.ui.contentapp.preview.JcrPreviewProvider. See JCR preview definition for more information. |
||
|
required Name of the workspace in
the |
||
|
optional List of node types the data source operates on. If no value is specified, the data source will operate on all node types. |
||
|
optional Value must be a JCR property present on the nodes of the corresponding workspace. If the node does not contain the given property, the node path will be used instead. |
||
|
optional, default is When |
||
|
optional, default is When |
||
|
optional, default is When |
||
|
optional, default is Name of the data source. |
||
|
optional Name of a JCR property displayed by
|
||
|
optional, default is Path configured as the root of the workspace. Only content below the path is operated on. |
||
|
optional List of properties the data source sorts by. Possible values for
|
Data source components
Module component mappings can be defined in the context of the current
data source (a component section should have an id in the form of
<id>datasource-<ds-name></id>
, where <ds-name>
is configured in the
definition).
Type | Implementation | Description |
---|---|---|
|
|
Provides delegates required by select fields. |
|
|
Converts path to actual item and back. |
|
|
Looks up version of selected item. |
|
|
Provides preview of selected item (for example, content of a binary node or link to an image). |
|
|
Reads and writes properties from/to item in form. |
|
|
Modifies items in grid for JCR data source. |
|
|
Checks whether items comply with the criteria defined in info.magnolia.ui.api.availability.AvailabilityDefinition. |
|
|
Observation utility wrapper used in UI framework. |
|
|
Checks whether item is available for interaction (selection, editing, etc). |
|
|
Displays description for selected item(s) at the bottom of app. |
|
|
Displays items as list, tree or thumbnails. See also JCR component filtering. |
<components>
<id>datasource-jcr</id>
<component>
<type>info.magnolia.ui.field.SelectFieldSupport</type>
<implementation>info.magnolia.ui.field.JcrSelectFieldSupport</implementation>
</component>
<component>
<type>info.magnolia.ui.datasource.ItemResolver</type>
<implementation>info.magnolia.ui.contentapp.JcrNodeResolver</implementation>
</component>
<component>
<type>info.magnolia.ui.contentapp.version.VersionResolver</type>
<implementation>info.magnolia.ui.contentapp.version.JcrVersionResolver</implementation>
</component>
<component>
<type>info.magnolia.ui.contentapp.browser.preview.PreviewProvider</type>
<implementation>info.magnolia.ui.contentapp.preview.JcrPreviewProvider</implementation>
</component>
<component>
<type>info.magnolia.ui.datasource.PropertySetFactory</type>
<implementation>info.magnolia.ui.contentapp.JcrPropertySetFactory</implementation>
</component>
<component>
<type>info.magnolia.ui.contentapp.Datasource</type>
<implementation>info.magnolia.ui.datasource.jcr.JcrDatasource</implementation>
</component>
<component>
<type>info.magnolia.ui.availability.AvailabilityChecker</type>
<implementation>info.magnolia.ui.availability.JcrAvailabilityChecker</implementation>
</component>
<component>
<type>info.magnolia.ui.observation.DatasourceObservation</type>
<implementation>info.magnolia.ui.contentapp.observation.JcrDataSourceObservation</implementation>
</component>
<component>
<type>info.magnolia.ui.contentapp.browser.ItemInteractionAvailability</type>
<implementation>info.magnolia.ui.contentapp.JcrItemInteractionAvailability</implementation>
</component>
<component>
<type>info.magnolia.ui.contentapp.ItemDescriber</type>
<implementation>info.magnolia.ui.contentapp.JcrItemDescriber</implementation>
</component>
<type-mapping>
<type>info.magnolia.ui.contentapp.browser.ListPresenter</type>
<implementation>info.magnolia.ui.contentapp.JcrListPresenter</implementation>
</type-mapping>
<type-mapping>
<type>info.magnolia.ui.contentapp.browser.TreePresenter</type>
<implementation>info.magnolia.ui.contentapp.JcrTreePresenter</implementation>
</type-mapping>
<type-mapping>
<type>info.magnolia.ui.contentapp.browser.ThumbnailPresenter</type>
<implementation>info.magnolia.ui.contentapp.JcrThumbnailPresenter</implementation>
</type-mapping>
</components>
JCR component filtering
In columns, info.magnolia.ui.contentapp.JcrDataProvider supports filtering by:
-
Node name (info.magnolia.ui.contentapp.column.jcr.JcrTitleColumnDefinition)
-
Node path (info.magnolia.ui.contentapp.column.jcr.JcrPathColumnDefinition)
-
Publication status (info.magnolia.ui.contentapp.column.jcr.JcrStatusColumnDefinition)
-
Any other JCR property value
Because filter objects are shared between views, the same filter components should be available in both tree and list views (except for info.magnolia.ui.contentapp.column.jcr.JcrPathColumnDefinition, which is expected to be only in the list view). |