AEM provides options to customize the consoles (and the page authoring functionality) of your authoring instance.
Clientlibs allow you to extend the default implementation to offer new functionality, while reusing standard functions, objects, and methods. When customizing with clientlibs, you can create your own clientlib under
/apps. For example, it can hold the code required for your custom component.
Overlays are based on node definitions and allow you to overlay the standard functionality found under
/libs with your own customized functionality under
/apps. When creating an overlay, a 1:1 copy of the original is not required, as Sling resource merger allows for inheritance.
Overlays can be used in many ways to extend your AEM consoles. Several examples are provided in the following sections.
If you are interested in options to customize the authoring experience, see Customizing Page Authoring.
You can customize the default view (column, card, list) for a console:
You can reorder the views by overlaying the required entry under:
The first entry is the default.
The nodes available correlate to the view options available:
For example, in an overlay for a list:
Define the following property:
You can build your own components and include the corresponding client libraries for custom actions.
For example, you may want to create a Promote to Social Media action at:
This can then be connected to a toolbar item on your console:
For example, in selection mode:
You can use a custom rendering condition to overlay the standard action and impose specific conditions that must be fulfilled before it is rendered.
For example, you may want to create a component to control the render conditions according to a group:
To apply these to the Create Site action on the sites console:
Create the overlay:
Then add the render condition for the action:
Using properties on this node you can define the
groups allowed to perform the specific action; for example,
To customize the columns in the list view:
Overlay the list of available columns.
On the node:
Add your new columns or remove existing ones.
If you want to insert additional data, you need to write a PageInfoProvider with a
This feature is optimized for columns of text fields. For other data types it is possible to overlay
When using a console, a user must often select from resources such as pages, components, or assets. This can take the form of a list from which the author must choose an item.
To keep the list to a reasonable size and also relevant to the use case, a filter can be implemented in the form of a custom predicate. See Customizing Page Authoring for details.