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 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 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, JcrDataProvider supports filtering by:
-
Node name (JcrTitleColumnDefinition)
-
Node path (JcrPathColumnDefinition)
-
Publication status (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 JcrPathColumnDefinition, which is expected to be only in the list view). |