A message view defines how a message is displayed in the Pulse and what users can do with the message. Magnolia's default message view can display any system messages 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 message view is defined in /modules/ui-admincentral/messageViews/default. Copy or extend it as a starting point for your own view. 

Node nameValue

 modules

 

 ui-admincentral

 

 messageViews

 

 default

 

 actions

 

 delete

 

 class

 info.magnolia.ui.admincentral.shellapp.pulse.message.action.DeleteMessageActionDefinition

 icon

 icon-delete

 form

 

 tabs

 

 message

 

 fields

 

 sender

 

 class

 info.magnolia.ui.form.field.definition.TextFieldDefinition

 message

 

 class

 info.magnolia.ui.form.field.definition.TextFieldDefinition

 rows

7

 actionbar

 

 sections

 

 messageActions

 

 groups

 

 deleteActions

 

 items

 

 delete

 

 defaultAction

delete

Nodes:

  • actions. 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. A 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. 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 message looks like the default view.

Using a view in code

To use your custom message view in code, set the view on the Message  object before sending it. 

private sendMessageWithCustomView(String messageText) {
   final Message message = new Message();
   message.setMessage(messageText);
   message.setType(MessageType.INFO);
 
   // Name of the view as defined in the configuration
   message.setView("myCustomView");

   messagesManager.sendLocalMessage(message);
}
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))