projectdoc Toolbox

Add a document as a child and automatically make supplied properties available in the parent.

This tip is an extension to the tip Supply Documents. There we showed briefly, how authors can have properties supplied from other projectdoc documents. The use case was a service and its configuration for IT service management with the projectdoc Toolbox for Confluence.

With this tip we go one step further: Whenever we add a new projectdoc document to the service document, we want the supplied properties of these documents automatically be available for the service. This makes especially sense if the configuration is not shared.

Prerequisites

This tip assumes that readers are familiar with the tip Supply Documents.

Create the Service Document

This time we need to add the service document first.

Add a property called Configurations with Child Documents Macro as value.

Note that for this example we do not add a hide control, so the property will be shown, once a configuration has been added.

Next add the Document Properties Supplier From Documents Macro to a section of the service document. Point the Properties parameter to the Configurations property on the same page by leaving the Documents parameter empty.

Save the page!

Add HTTP Configuration

Create a new child document for the HTTP configuration of the service.

Add the following property with the supply control.

Save the page!

Click on the service document!

Add a Memory Configuration

Add a new child document for the memory configuration.

Add the following property with the supply control.

Save the page!

Click on the service document!

Change Memory Configuration

Now make a change! For example change the memory requirement from 1 GB to 8 GB:

Click on the service document and see the change there, too.

Be more selective

The example assumes that any document an authors adds to the service document is treated as configuration. Authors can control which properties a document must have to be considered a configuration.

Authors can require child documents to have a specific doctype or match certain constraints.

For more information please refer to the documentation of the Child Documents Macro.

Summary

With the Child Documents Macro it is easy to bind a document to its parent. Adding child documents is like adding additional aspects to a document. Therefore we call this feature Aspects light.

Currently we work on getting Aspects as a new feature to the projectdoc Toolbox. Aspects will not only include the properties, but also sections. Stay tuned! (smile)

Resources

Supply Documents
Show how to import properties from other projectdoc documents into a projectdoc document.
Child Documents Macro
Renders the list of child documents, matching the given filter criteria.
Document Properties Supplier From Documents Macro
Import properties from another projectdoc document.