In a recent NotesIn9 video, I showed how to use the dGrowl Dojo plugin to create growl-style messages in XPages. Jesse Gallagher and Frank Van der Linden showed how to trigger growl-style message from server-side code with Java. In this post, I’ll round out the discussion with an SSJS snippet to do the same.
view.postScript()
As in Jesse’s and Frank’s examples, the key method here is view.postScript()
. This method adds a client-side snippet to run after a server-side refresh occurs. I believe it has been available since 8.5.3.
As Jesse mentioned, the biggest challenge here is usually escaping characters properly, remembering that you’re using server-side code to write out client-side code.
The concept is simple, though — take the client JS from an example message and, if it only uses single quotes, wrap it in double quotes and pass it through.
var notificationJS = "dg.addNotification('Here is an info message...',{'channel':'info', 'duration': 3000});"; view.postScript(notificationJS);
Full Refresh vs Partial Refresh
This works fine with both full and partial refreshes. However, if you use a partial refresh, you would have the ability to run the script multiple times and display separate messages (as needed), whereas a full refresh would clear all messages because it refreshes the entire page.
