Content Dependencies module
Content management Bundled: DX Core
Edition | DX Core |
---|---|
License |
|
Issues |
|
Maven site |
|
Latest |
2.0.4 |
Content dependencies are references between content items. When a page links to another page, a dependency is created. Similarly, when a page uses an asset from the DAM, a dependency is created between the page and the asset.
The Content Dependencies module displays dependencies between the selected content item and other items, whether the items reside in the same Magnolia workspace or in different ones. Editors can see the consequence of deleting the selected item and whether dependent items need to be published together.
Installing with Maven
Bundled modules are automatically installed for you.
If the module is unbundled, add the following to your bundle including your project’s <dependencyManagement>
section and your webapp’s <dependencies>
section.
If the module is unbundled but the version is managed by the parent POM, add the following to your webapp’s <dependencies>
section.
<dependency>
<groupId>info.magnolia.dependencies</groupId>
<artifactId>magnolia-content-dependencies-parent</artifactId>
<version>2.0.4</version> (1)
</dependency>
1 | Should you need to specify the module version, do it using <version> . |
Dependencies tab
A typical use case is adding a dependencies tab to a page properties dialog. The tab has two fields:
-
Lists content items that link to the item
-
Lists items the item links to.
Property | Description |
---|---|
|
required Dependencies tab. |
|
required Fields node. |
|
required
|
|
required References node. |
|
required Arbitrary node name. One for each workspace you want to track. |
|
required Subapp in |
|
required Workspace name. |
|
required Node type. |
|
required See Reference properties. |
|
optional Path resolver node. |
|
optional, default is `info.magnolia.module.dependencies.field.resolver.PathResolverImpl` Default implementation returns a node’s path.
info.magnolia.module.dependencies.field.resolver.AssetPathResolverImpl
implements |
|
optional App location factory node. |
|
optional, default is `info.magnolia.module.dependencies.field.factory.AppLocationFactoryImpl` Default implementation creates an app’s location.
info.magnolia.module.dependencies.field.factory.DamAppLocationFactoryImpl
implements |
|
optional Label displayed in dialog. |
|
required info.magnolia.module.dependencies.ui.field.DependenciesViewDefinition shows dependencies to and from workspaces. |
|
optional, default is Whether items linking to the item should be included. |
Adding dependencies tab to dialogs
Example: Adding a dependencies tab to
MTK’s basic
page dialog.
<light-module-folder>/<light-module-name>/decorations/mtk2/dialogs/pages/basic.yaml
form:
properties:
referencesTo:
class: info.magnolia.module.dependencies.ui.field.DependenciesViewDefinition
referencesTo: true
references:
pages:
appMapping: app:pages-app:browser
workspace: website
referenceProperties:
- link
- linkTypepage #teaser component
referencesFrom:
class: info.magnolia.module.dependencies.ui.field.DependenciesViewDefinition
referencesTo: false
references:
pages:
appMapping: app:pages-app:browser
workspace: website
referenceProperties:
- link
- linkTypepage #teaser component
assets:
appMapping: app:dam:jcrBrowser
workspace: dam
referenceProperties:
- image
- thumbnail
pathResolver:
class: info.magnolia.module.dependencies.field.resolver.AssetPathResolverImpl
appLocationFactory:
class: info.magnolia.module.dependencies.field.factory.DamAppLocationFactoryImpl
layout:
tabs:
- name: tabDependencies
fields:
- name: referencesTo
- name: referencesFrom
Here is the dependencies tab after adding it to the Travel Demo’s Page properties dialog and viewing it on the About page.
-
This page is depended upon by:
-
Pages: Lists pages that link to the page.
-
-
This page depends on:
-
Pages: Lists pages the page links to.
-
Assets: Lists assets added to the page.
-
All links are clickable and open the item in the target app.
Reference properties
Reference properties are properties that the module uses to retrieve nodes that an item depends on. They are typically properties that hold references to other nodes and whose value is the JCR identifier or UUID.
If you do not include the correct reference properties in your configuration, the items do not show up in the depends on section of the dependencies tab.
If you do not include any reference properties, the three default values (image
, contact
, and link
) are used.
The easiest way to find the correct reference properties to configure is to export the JCR content or to look in the JCR Browser app. |
Deletion Warnings
The module displays dependency-ware deletion warning messages in the Pages and Assets apps by default. The confirmation dialog lists links to the referring items that will be broken once the deletion is complete.
Deletion warnings are configured in the confirmDeleteAsset
action defintion. The
configuration patterns follow those of the
dependencies tab (above).
You can configure dependency-aware delete warnings in any app by adding
a references
node to deleteConfirmationAction
.
ConfirmDeletion action in the Assets app.
Property | Description |
---|---|
|
required Action node. |
|
required References node. |
|
required Arbitrary node name. One for each workspace you want to track. |
|
required Workspace name. |
|
required Node type. |
|
required info.magnolia.module.dependencies.ui.action.DependencyAwareConfirmationActionDefinition adds dependency awareness to the action. |
|
optional CSS class that identifies an icon used for the action. For available names, see Icons. |
|
required Name of action to execute on confirmation. |