diff --git a/docs/README.md b/docs/README.md
index f1065f9149..c57ee1fbdb 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -170,6 +170,7 @@ for more information about installing and using the source code.
| [User preferences service](core/user-preferences.service.md) | Stores preferences for components. | [Source](../lib/core/services/user-preferences.service.ts) |
| [Bpm user service](core/bpm-user.service.md) | Gets information about the current Process Services user. | [Source](../lib/core/userinfo/services/bpm-user.service.ts) |
| [Ecm user service](core/ecm-user.service.md) | Gets information about a Content Services user. | [Source](../lib/core/userinfo/services/ecm-user.service.ts) |
+| _View util service_ | _Not currently documented_ | [Source](../lib/core/viewer/services/view-util.service.ts) |
## Widgets
@@ -184,7 +185,7 @@ for more information about installing and using the source code.
| Name | Description | Source link |
| ---- | ----------- | ----------- |
| [Data Table Adapter interface](core/datatable-adapter.interface.md) | Defines how table data is supplied to DataTable and Tasklist components. | [Source](../lib/core/datatable/data/datatable-adapter.ts) |
-| [Form Field Validator interface](core/form-field-validator.interface.md) | Defines how the input fields of Form and Task Details components are validated. | [Source](../lib/core/form/components/widgets/core/form-field-validator.ts) |
+| [Form Field Validator interface](core/form-field-validator.interface.md) | Defines how the input fields of [Form](../../lib/process-services/task-list/models/form.model.ts) and Task Details components are validated. | [Source](../lib/core/form/components/widgets/core/form-field-validator.ts) |
| [Search Configuration interface](core/search-configuration.interface.md) | Provides fine control of parameters to a search. | [Source](../lib/core/services/search-configuration.service.ts) |
[(Back to Contents)](#contents)
@@ -204,7 +205,7 @@ for more information about installing and using the source code.
| ---- | ----------- | ----------- |
| [Breadcrumb component](content-services/breadcrumb.component.md) | Indicates the current position within a navigation hierarchy. | [Source](../lib/content-services/breadcrumb/breadcrumb.component.ts) |
| [Dropdown breadcrumb component](content-services/dropdown-breadcrumb.component.md) | Indicates the current position within a navigation hierarchy using a dropdown menu. | [Source](../lib/content-services/breadcrumb/dropdown-breadcrumb.component.ts) |
-| [Content metadata component](content-services/content-metadata.component.md) | Displays and edits metadata related to a node. | [Source](../lib/content-services/content-metadata/components/content-metadata/content-metadata.component.ts) |
+| [Content metadata card component](content-services/content-metadata-card.component.md) | Displays and edits metadata related to a node. | [Source](../lib/content-services/content-metadata/components/content-metadata-card/content-metadata-card.component.ts) |
| [Content node selector panel component](content-services/content-node-selector-panel.component.md) | Opens a Content Node Selector in its own dialog window. | [Source](../lib/content-services/content-node-selector/content-node-selector-panel.component.ts) |
| [Content node selector component](content-services/content-node-selector.component.md) | Allows a user to select items from a Content Services repository. | [Source](../lib/content-services/content-node-selector/content-node-selector.component.ts) |
| [Content action component](content-services/content-action.component.md) | Adds options to a Document List actions menu for a particular content type. | [Source](../lib/content-services/document-list/components/content-action/content-action.component.ts) |
@@ -279,7 +280,7 @@ for more information about installing and using the source code.
| Name | Description | Source link |
| ---- | ----------- | ----------- |
-| [Search Widget interface](content-services/search-widget.interface.md) | Specifies required properties for Search filter component widgets. | [Source](../lib/content-services/search/search-widget.interface.ts) |
+| [Search Widget interface](content-services/search-widget.interface.md) | Specifies required properties for [Search filter component](../content-services/search-filter.component.md) widgets. | [Source](../lib/content-services/search/search-widget.interface.ts) |
[(Back to Contents)](#contents)
diff --git a/docs/content-services/README.md b/docs/content-services/README.md
index 47be042b94..5d24d54a67 100644
--- a/docs/content-services/README.md
+++ b/docs/content-services/README.md
@@ -13,7 +13,7 @@ for more information about installing and using the source code.
| ---- | ----------- | ----------- |
| [Breadcrumb component](breadcrumb.component.md) | Indicates the current position within a navigation hierarchy. | [Source](../../lib/content-services/breadcrumb/breadcrumb.component.ts) |
| [Dropdown breadcrumb component](dropdown-breadcrumb.component.md) | Indicates the current position within a navigation hierarchy using a dropdown menu. | [Source](../../lib/content-services/breadcrumb/dropdown-breadcrumb.component.ts) |
-| [Content metadata component](content-metadata.component.md) | Displays and edits metadata related to a node. | [Source](../../lib/content-services/content-metadata/components/content-metadata/content-metadata.component.ts) |
+| [Content metadata card component](content-metadata-card.component.md) | Displays and edits metadata related to a node. | [Source](../../lib/content-services/content-metadata/components/content-metadata-card/content-metadata-card.component.ts) |
| [Content node selector panel component](content-node-selector-panel.component.md) | Opens a Content Node Selector in its own dialog window. | [Source](../../lib/content-services/content-node-selector/content-node-selector-panel.component.ts) |
| [Content node selector component](content-node-selector.component.md) | Allows a user to select items from a Content Services repository. | [Source](../../lib/content-services/content-node-selector/content-node-selector.component.ts) |
| [Content action component](content-action.component.md) | Adds options to a Document List actions menu for a particular content type. | [Source](../../lib/content-services/document-list/components/content-action/content-action.component.ts) |
@@ -88,4 +88,4 @@ for more information about installing and using the source code.
| Name | Description | Source link |
| ---- | ----------- | ----------- |
-| [Search Widget interface](search-widget.interface.md) | Specifies required properties for Search filter component widgets. | [Source](../../lib/content-services/search/search-widget.interface.ts) |
+| [Search Widget interface](search-widget.interface.md) | Specifies required properties for [Search filter component](../content-services/search-filter.component.md) widgets. | [Source](../../lib/content-services/search/search-widget.interface.ts) |
diff --git a/docs/content-services/content-metadata-card.component.md b/docs/content-services/content-metadata-card.component.md
new file mode 100644
index 0000000000..5c4772da8c
--- /dev/null
+++ b/docs/content-services/content-metadata-card.component.md
@@ -0,0 +1,217 @@
+---
+Added: v2.1.0
+Status: Active
+Last reviewed: 2018-08-07
+---
+
+# Content Metadata Card component
+
+Displays and edits metadata related to a node.
+
+
+
+## Basic Usage
+
+```html
+
+
+```
+
+## Class members
+
+### Properties
+
+| Name | Type | Default value | Description |
+| ---- | ---- | ------------- | ----------- |
+| displayEmpty | `boolean` | false | (optional) This flag displays/hides empty metadata fields. |
+| multi | `boolean` | false | (optional) This flag allows the component to display more than one accordion at a time. |
+| node | [`MinimalNodeEntryEntity`](../content-services/document-library.model.md) | | (required) The node entity to fetch metadata about |
+| preset | `string` | | (required) Name of the metadata preset, which defines aspects and their properties. |
+| readOnly | `boolean` | false | (optional) This flag sets the metadata in read only mode preventing changes. |
+
+## Details
+
+The component shows metadata related to a given node. It uses the
+[Card View component](../core/card-view.component.md) to render the properties of metadata aspects.
+The different aspects and their properties to be shown can be configured as application config
+presets (see below). By default the component only shows the basic properties of the node.
+The user can click on the pencil icon at the bottom of the component to edit the metadata
+properties.
+
+### Application config presets
+
+You can define different presets for the metadata component or override the default presets in
+the `app.config.json` file. The **default** preset is "\*" if not set, meaning the component
+will display every aspect and property of a node without filtering.
+
+You can define as many extra presets as you need for your components.
+
+The example configurations below show the options in detail.
+
+#### Indifferent config
+
+The default configuration behaves like the following:
+
+```json
+...
+"content-metadata": {
+ "presets": {
+ "default": "*"
+ }
+}
+...
+```
+
+#### Aspect oriented config
+
+With this type of configuration you can "whitelist" aspects and properties for a preset, but everything will be grouped by aspects and there is no further way to group properties. Use a
+[layout oriented configuration](#layout-oriented-config) if you want to define your own
+custom groups.
+
+The default configuration shows every aspect but you can restrict it to just a small selection
+of aspects by "whitelisting" the ones you want in the `default` section. In the example below,
+just the `exif:exif` and `custom:aspect` aspects are whitelisted:
+
+```json
+...
+"content-metadata": {
+ "presets": {
+ "default": {
+ "custom:aspect": "*",
+ "exif:exif": "*"
+ }
+ }
+}
+...
+```
+
+You can further restrict the whitelist to specific properties of one or more aspects by using
+an array of property names in place of the "\*" filter:
+
+```json
+...
+"content-metadata": {
+ "presets": {
+ "default": {
+ "custom:aspect": "*",
+ "exif:exif": [ "exif:pixelXDimension", "exif:pixelYDimension"]
+ }
+ }
+}
+...
+```
+
+A final example shows the same process applied to a custom preset called "kitten-images":
+
+```json
+...
+"content-metadata": {
+ "presets": {
+ "default": "*",
+ "kitten-images": {
+ "custom:aspect": "*",
+ "exif:exif": [ "exif:pixelXDimension", "exif:pixelYDimension"]
+ }
+ }
+}
+...
+```
+
+### Layout oriented config
+
+You can also go beyond the aspect oriented configuration if you need to configure the groups and properties in a more detailed way. With this type of configuration any property of any aspect/type
+can be "cherry picked" and grouped into an accordion drawer, along with a translatable title
+defined in the preset configuration.
+
+#### Basic elements
+
+The following config will produce one accordion group named "TRANSLATABLE_TITLE_FOR_GROUP_1",
+with all the properties from `custom:aspect` followed by the two properties (`exif:pixelXDimension`
+and `exif:pixelYDimension`) from the `exif:exif` aspect and then one property (`custom:myPropertyName`) from `custom:type`:
+
+```json
+...
+"content-metadata": {
+ "presets": {
+ "kitten-images": [{
+ "title": "TRANSLATABLE_TITLE_FOR_GROUP_1",
+ "items": [
+ { "aspect": "custom:aspect", "properties": "*" },
+ { "aspect": "exif:exif", "properties": [ "exif:pixelXDimension", "exif:pixelYDimension"] },
+ { "type": "custom:type", "properties": [ "custom:myPropertyName" ] },
+ ]
+ }]
+ }
+}
+...
+```
+
+#### More complex example
+
+A more complex config is shown in the example below:
+
+```json
+ "content-metadata": {
+ "presets": {
+ "kittens": [
+ {
+ "title": "GROUP-TITLE1-TRANSLATION-KEY",
+ "items": [
+ {
+ "aspect": "exif:exif",
+ "properties": "*"
+ },
+ {
+ "aspect": "kitten:vet-records",
+ "properties": [ "kitten:custom1", "kitten:custom3" ]
+ },
+ {
+ "aspect": "owner:parameters",
+ "properties": [ "owner:name" ]
+ },
+ {
+ "type": "kitten:kitten",
+ "properties": [ "kitten:name", "kitten:color" ]
+ }
+ ]
+ },
+ {
+ "title": "GROUP-TITLE2-TRANSLATION-KEY",
+ "items": [
+ {
+ "aspect": "kitten:food",
+ "properties": [ "kitten:favourite-food", "kitten:recommended-food" ]
+ }
+ ]
+ }
+ ]
+ }
+```
+
+The result of this config would be two accordion groups with the following properties:
+
+| GROUP-TITLE1-TRANSLATION-KEY |
+| ---------------------------- |
+| exif:param1 |
+| exif:param2 |
+| ... |
+| exif:paramN |
+| kitten:custom1 |
+| kitten:custom3 |
+| owner:name |
+| kitten:name |
+| kitten:color |
+
+| GROUP-TITLE2-TRANSLATION-KEY |
+| ---------------------------- |
+| kitten:favourite-food |
+| kitten:recommended-food |
+
+## What happens when there is a whitelisted aspect in the config but the given node doesn't relate to that aspect
+
+Nothing - since this aspect is not related to the node, it will simply be ignored and not
+displayed. The aspects to be displayed are calculated as an intersection of the preset's aspects and the aspects related to the node.
diff --git a/docs/user-guide/summary.json b/docs/user-guide/summary.json
index 0fb367e21b..c132ad2896 100644
--- a/docs/user-guide/summary.json
+++ b/docs/user-guide/summary.json
@@ -3,6 +3,7 @@
{ "title": "Form Extensibility and Customisation", "file": "extensibility.md" },
{ "title": "Internationalization in ADF", "file": "internationalization.md" },
{ "title": "Theming", "file": "theming.md" },
+ { "title": "Transclusion", "file": "transclusion.md" },
{ "title": "Typography", "file": "typography.md" },
{ "title": "Walkthrough - adding indicators to highlight information about a node", "file": "metadata-indicators.md" },
{ "title": "Tutorials", "file": "tutorialIndex.md",
diff --git a/docs/versionIndex.md b/docs/versionIndex.md
index 0536ce6769..a8603014b0 100644
--- a/docs/versionIndex.md
+++ b/docs/versionIndex.md
@@ -13,7 +13,6 @@ of components organized by ADF libraries.
- [v2.1.0](#v210)
- [v2.0.0](#v200)
-
## v2.5.0
**Released:** 2018-08-14 ([Release notes](release-notes/RelNote250.md))
@@ -109,7 +108,7 @@ No new components added.
-- [Content metadata component](content-services/content-metadata.component.md)
+- [Content metadata card component](content-services/content-metadata-card.component.md)
- [Content node dialog service](content-services/content-node-dialog.service.md)
- [Content node selector panel component](content-services/content-node-selector-panel.component.md)
- [Search configuration service](core/search-configuration.service.md)