subapp definition

A subapp descriptor describes a subapp. A subapp is typically rendered as a tab inside an app. The descriptor defines the classes that read the configuration and implement the subapp.

Subapp descriptor

Here is an example of a main subapp inside a helloworld app. Create subapp configuration under the subApps folder.

ui-helloworld-app/apps/helloworld.yaml
appClass: info.magnolia.ui.app.helloworld.HelloWorldApp
class: info.magnolia.ui.api.app.registry.ConfiguredAppDescriptor
icon: icon-app
label: Hello World
subApps:
  main: 
    subAppClass: info.magnolia.ui.app.helloworld.main.HelloWorldMainSubApp
    class: info.magnolia.ui.api.app.registry.ConfiguredSubAppDescriptor
    label: Hello!
Node nameValue

 
modules

 

 
ui-helloworld-app

 

 
apps

 

 
helloworld

 

 
subApps

 

 
main

 

 
class

info.magnolia.ui.api.app.registry.ConfiguredSubAppDescriptor

 
label

Hello!

 
subAppClass

info.magnolia.ui.app.helloworld.main.HelloWorldMainSubApp

Properties:

<subapp name>

required

Subapp node name. This is the internal ID of the subapp. Used to reference the subapp for example in URL fragments.

class

required, default is info.magnolia.ui.api.app.registry.ConfiguredSubAppDescriptor

Subapp descriptor class that reads the configuration. The class must implement the

$webResourceManager.requireResource("info.magnolia.sys.confluence.artifact-info-plugin:javadoc-resource-macro-resources") SubAppDescriptor
 interface. Examples of such classes are
$webResourceManager.requireResource("info.magnolia.sys.confluence.artifact-info-plugin:javadoc-resource-macro-resources") ConfiguredSubAppDescriptor
 and 
$webResourceManager.requireResource("info.magnolia.sys.confluence.artifact-info-plugin:javadoc-resource-macro-resources") ConfiguredContentSubAppDescriptor
. Use the fully-qualified name of the class.

subAppClass

required

Subapp business logic class. The class must implement the 

$webResourceManager.requireResource("info.magnolia.sys.confluence.artifact-info-plugin:javadoc-resource-macro-resources") SubApp
 interface which displays the subapp to the user in a tab.

closable

optional , default is true

Whether the subapp can be closed. When set to false no close icon (X) is displayed.

icon

optional

CSS class that identifies an icon font used on the app tab. For available names see Icons.

label

optional

Text or message bundle key. Displayed in the subapp tab.

(warning) The order in which you configure subapps is important. The first subapp will be the default subapp. It is started first.

Browser subapp descriptor

Browser subapp is a specialization of the basic subapp, provided by the content app framework. The browser subapp allows you to view and organize content items in a tree, list and thumbnail view. The browser subapp descriptor is similar to the basic subapp descriptor but the classes are different.

subApps:
  browser: 
    subappclass: info.magnolia.ui.contentapp.browser.BrowserSubApp
    class: info.magnolia.ui.contentapp.browser.BrowserSubAppDescriptor
Node nameValue

 
subApps

 

 
browser

 

 
class

info.magnolia.ui.contentapp.browser.BrowserSubAppDescriptor

 
subAppClass

info.magnolia.ui.contentapp.browser.BrowserSubApp

Detail subapp descriptor

Detail subapp is also part of the content app framework. It creates and edits the content items listed in the browser subapp.

subApps:
  detail: 
    subappclass: info.magnolia.ui.contentapp.detail.DetailSubApp
    class: info.magnolia.ui.contentapp.detail.DetailSubAppDescriptor
Node nameValue

 
subApps

 

 
detail

 

 
class

info.magnolia.ui.contentapp.detail.DetailSubAppDescriptor

 
subAppClass

info.magnolia.ui.contentapp.detail.DetailSubApp

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