A message view defines how a notification (a message type) is displayed in the Notifications app and what users can do with it. Magnolia's default message view can display any system notification and allows the user to delete them. For a more advanced example, see the workflow message view in /modules/workflow/messageViews/workflow.

Definition

Here's how the default view is defined in /modules/ui-admincentral/messageViews/default. Copy or extend it as a starting point for your own view. 

../default.yaml
actions:
  delete:
    icon: icon-delete
    class: info.magnolia.ui.admincentral.shellapp.pulse.message.action.DeleteMessageActionDefinition
form:
  tabs:
    - name: message
      fields:
        - name: sender
          fieldType: text
        - name: message
          rows: 7
          fieldType: text
actionbar:
  defaultAction: delete
  sections:
    - name: messageActions
      groups:
        - name: deleteActions
          items:
            - name: delete

Properties:

<view name>

required

Name of view.

actions

required

An action definition that defines what actions the user can perform on the message. For example, a user can approve or reject a published page.

form

required

form definition that defines what message details are displayed in the view, such as the sender and the subject. The form fields are rendered as static text in the message view, not as fillable fields.

actionbar

required

An action bar definition that references actions defined in the message view or somewhere else. The action bar is displayed on side of the message view.

Here is what a notification looks like in the default view.

Using a view in code

To use your custom message view in code, set the view on the

$webResourceManager.requireResource("info.magnolia.sys.confluence.artifact-info-plugin:javadoc-resource-macro-resources") Message
 object before sending it. 

private sendMessageWithCustomView(String messageText) {
   final Message message = new Message();
   message.setMessage(messageText);
   message.setType(MessageType.INFO);
 
   // format when referencing a view
   // module-name:view-name (as defined in the configuration)
   message.setView("ui-admincentral:myCustomView");
   messagesManager.sendLocalMessage(message);
}
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))
  • No labels