# Ways to Add Messaging to the End User Interface

Part of the Performance and Scaling series.

Communication between administrators and end-users is an essential part of maintaining a productive reporting environment. To this end, administrators may add to Exago BI's out-of-box messaging in a way that better serves their unique implementations.

Your environment may have certain data objects which contain large amounts of data - perhaps an order of magnitude more than most others. You may not want your users to add these objects "naked" to a report, i.e. without adding any filters. As a second line of defense, custom messaging can be built into the application in order to remind users of this at the most pertinent times during report design.

The following two methods could be employed, separately or together, to add custom messaging, one being somewhat more assertive than the other. You can add rich-text tooltips to data objects which appear when a user hovers the cursor over the object name. And you can add an Action Event to launch a caution dialog when the user adds the object to the report design.

# Tooltip

Data objects have a "description" attribute that allows you to assign them tooltips which appear on hover in the objects menu. Exago BI supports rich-text tooltips, which can contain any variety of HTML, such as pictures, links, and even embedded videos! Description text can be supplied in the Admin Console, but it is usually better to add it to a language file and then reference the element id in the description field. This allows for easier reuse of common descriptions.

### Example

    <element id="entity_ShowFilterWarning" tooltip="Object is large and should be filtered.">

Add description html to a language file

Then reference the element id in the object description field

## Using HTML and JavaScript in Tooltips

To support rich tooltips first make sure that the following configuration flag is set to True:

( Feature/UI Settings ) Show Enhanced Tooltips

Then in the language file, we can add HTML, inline CSS, and even inline JavaScript to the tooltip attribute. Any built-in JavaScript functions from the Getting Started content can also be used in tooltips.

Note: Remember to encode any quotes (`&quot;`) and tag symbols (`&lt; &gt;`).

### Example

We can add a clickable image to the tooltip, which will open an informational page in an Exago tab.

    <element id="entity_ShowFilterWarning" tooltip="&lt;div&gt;&lt;img src='Config/Images/CautionIcon.jpg' style='cursor:pointer;' onclick='wrAddTabbedContent(&quot;CautionWindow&quot;,&quot;Filter Large Entities&quot;);' /&gt; Entity is large and must be filtered.&lt;/div&gt;"></element>

The wrAddTabbedContent function is a part of the built in user scripts

Those more aesthetically gifted than I will create more eye-catching examples

This can go a long way towards setting user expectations for report performance.

# Dialog

The previous example is passive in nature, and requires users to initiate their own observation in order to learn. We can, alternatively, take an assertive approach and force users to read and acknowledge a caution dialog when they add certain data objects to a report. We can use a global action event to insert custom JavaScript that runs whenever a user adds a data object (OnAfterAddDataObject).

### Example

Action events are context aware via the clientInfo object

# Conclusion

Exago BI provides a wealth of options for adding and extending application messaging. These examples only represent a small subset of what is possible. What ideas you can come up with?

Download the code for these examples.