What is Dialog in AEM


In Adobe Experience Manager (AEM), a dialog is a fundamental user interface element that allows content authors to configure and provide input for components on a webpage. Think of it as a form or a pop-up window where authors can:
Enter text: For example, the title of a component, a paragraph of content, or a link URL.
Upload images or files: To include media within the component.
Select options: From dropdowns, checkboxes, or radio buttons.
Configure behavior and appearance: Such as setting styles, layouts, or other properties specific to that component.
Key aspects of AEM dialogs:
Purpose: Dialogs are essential for empowering non-technical users (content authors) to manage and populate content effectively without needing to touch code. They bridge the gap between the content repository (JCR) and the visual representation of content on the page.
Association with Components: Every AEM component that requires author input typically has an associated dialog. When an author edits a component on a page, the component's dialog opens, allowing them to make changes.
Structure and Configuration:
Dialogs are defined by a node structure within the AEM repository, typically under the component's definition.
For Touch UI (the modern AEM interface), dialogs are defined under a
cq:dialog
node, using Granite UI components (based on CoralUI). These provide a responsive and modern interface.For Classic UI (older AEM versions), dialogs were defined using
dialog.xml
and based on the ExtJS framework. While still compatible to some extent, Touch UI is the current standard.The dialog definition specifies the various fields (text fields, path browsers, multifields, checkboxes, etc.) and their properties, which dictate how they appear and what data they store.
Data Storage: When an author saves changes in a dialog, the input data is stored as properties of the corresponding component's node in the JCR (Java Content Repository). This data is then used by the component's rendering logic (e.g., HTL/Sightly or JSP) to display the content on the webpage.
Types of Dialogs:
Regular Dialog: This is the most common type, used to configure content specific to an instance of a component on a particular page. The data saved here is page-specific.
Design Dialog (
cq:design_dialog
): This is a special type of dialog used to configure the design or global properties of a component at the template level. The data saved in a design dialog is typically stored under/etc/design
and applies to all instances of that component on pages using the same template. This is useful for consistent styling or behavior across a site.
In summary, AEM dialogs are crucial for the authoring experience, providing a user-friendly interface for content creators to interact with and populate web components, ultimately driving the content on AEM-powered websites.
Subscribe to my newsletter
Read articles from sagar karotia directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

sagar karotia
sagar karotia
I am a passionate frontend developer