A choose dialog allows you to select an item from an app, typically from a content app. Below is a choose dialog for choosing a page. The dialog displays the workbench from the Pages app. You typically open a choose dialog by clicking a link field in some other dialog. Configure the choose dialog under the app that manages the items.

Choosing items from content apps

A content app already has a suitable view for choosing items: the workbench of the first subapp. You don't need to configure a choose dialog explicitly.

$webResourceManager.requireResource("info.magnolia.sys.confluence.artifact-info-plugin:javadoc-resource-macro-resources") ContentApp
 creates a ChooseDialogDefinition programmatically. A 
$webResourceManager.requireResource("info.magnolia.sys.confluence.artifact-info-plugin:javadoc-resource-macro-resources") WorkbenchFieldDefinition
 and a 
$webResourceManager.requireResource("info.magnolia.sys.confluence.artifact-info-plugin:javadoc-resource-macro-resources") ContentConnectorDefinition
 are instantiated In the ContentApp#openChooseDialog method. Values for the definition classes are cloned from the first subapp of the app.

Configuring a choose dialog

You don't need to configure a choose dialog when choosing items from a content app. The workbench of the first subapp works as an item chooser automatically.

You can configure a choose dialog explicitly if required. Create a chooseDialog node under the app configuration.

Node nameValue

 
<module name>

 

 
apps

 

 
<app name>

 

 
chooseDialog

 

 
class

<fully-qualified class name of your ChooseDialogDefinition>

 
contentConnector

 

 
class

<fully-qualified class name of your ContentConnectorDefinition>

 
field

 

 
class

<fully-qualified class name of your FieldDefinition>

Properties:

  • class: A choose dialog definition class implementing info.magnolia.ui.dialog.definition.ChooseDialogDefinition
    Its default implementation is info.magnolia.ui.dialog.definition.ConfiguredChooseDialogDefinition (due to registration magnolia-ui-framework/src/main/resources/META-INF/magnolia/ui-framework.xml). Leave out the class property to use the default implementation.
  • contentConnector
  • field:
    • class: A field used to choose the item, typically a workbench. The value must be a subclass of info.magnolia.ui.form.field.definition.FieldDefinition. This means it can be many kind of fields, for instance a
      $webResourceManager.requireResource("info.magnolia.sys.confluence.artifact-info-plugin:javadoc-resource-macro-resources") SelectFieldDefinition
       or a more complex custom field.

Note that ChooseDialogDefinition extends DialogDefinition. This means you can also configure actions (Select and Cancel by default) and an actionArea (optional).

Configuring a workbench

If you want to configure a custom workbench, use info.magnolia.ui.contentapp.field.WorkbenchFieldDefinition as field.

Node nameValue

 
chooseDialog

 

 
field

 

 
class

info.magnolia.ui.contentapp.field.WorkbenchFieldDefinition

 
workbench

 

 
extends

../../../subApps/browser/workbench

 
imageProvider

 

Properties:

  • field
    • classinfo.magnolia.ui.contentapp.field.WorkbenchFieldDefinition
    • workbenchExtend an existing workbench definition or use any properties from the workbench definition.
    • imageProvider: Optional.

 

#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))