354 Lotus blogs updated hourly. Who will post next? Home | Downloads | Events | Pods | Blogs | Search | myPL | About 
Latest 7 Posts
Angular.js in XPages series
Wed, Apr 23rd 2014 177
Adding custom HTTP headers to Domino R9 using IBM HTTP Server (IHS)
Sun, Apr 20th 2014 264
An open letter to Mr. NotesIn9
Wed, Apr 2nd 2014 427
And the gloves are off……
Mon, Mar 31st 2014 326
When the community comes together we get the right answer
Sun, Mar 30th 2014 297
Why learning JavaScript is more critical to XPage developers than Java
Wed, Mar 26th 2014 716
PATCHing a Document using Domino Data Service
Mon, Mar 24th 2014 200
Top 10
Why learning JavaScript is more critical to XPage developers than Java
Wed, Mar 26th 2014 716
Arguably the most dangerous thing you could ever do in XPages – let other people use your eval() in their SSJS
Tue, Jun 18th 2013 429
An open letter to Mr. NotesIn9
Wed, Apr 2nd 2014 427
Why using XPages Partial Refresh is sometimes easy for developers and bad for users
Tue, Mar 4th 2014 326
And the gloves are off……
Mon, Mar 31st 2014 326
Going porn-mode on your browser
Fri, Jan 24th 2014 323
Prototypal inheritance of SSJS across the whole server in XPages
Sun, Mar 2nd 2014 317
EXTJS in XPages #14 – Grid editing and saving data via REST CRUD
Thu, Aug 1st 2013 307
When the community comes together we get the right answer
Sun, Mar 30th 2014 297
Lowering your ODS – an oldie but goodie
Fri, Feb 7th 2014 283

jQuery in XPages #7 – Pines Notify

In this article I will demonstrate how to implement a cool notification technique using Pines Notify.  This small (7k min) js library provides a wealth of flexibility and a feature set second to none. It can use multiple different CSS libraries (bootstrap, jQueryUI and others) so integration into your site is quick and simple.


Pines Notify is a notification popup capability which is easily integrated into a website. Like most jQuery plugins there is a methods to instantiate the capability and the ability to pass in multiple parameters.  There are certainly other popup style plugins but this is easy to grasp and the examples are very good.

We are going to look at how to make some complex function popups like these…

Examples of Pines Notify popups

Examples of Pines Notify popups


There are two demonstration pages this week

The first demonstration is a basic port of the Pines Notify buttons from the original example into an XPage.

The second demonstration shows how the Pines Notify could be used in a real application


Click on the link to download the complete jQuery in XPages demonstration database (including Pines Notify).

Pines Notify

Pines Notify provides a basic shell for popup creation and the capability for multiple custom configurations. A “popup” by default is created on the top right of the screen and disappears after a fixed period of time. The the position, CSS, length of time shown, transparency, contents, callbacks and other features can be controlled through the use of parameters. There are too many to mention in one article but they can all be seen at the example website.

Sample Notification

Sample Notification

Adding Pines Notify to an XPage

The Pines Notify download contains the .js files (readbale and minified) and a basic css file. These are easily added to our database as files in the WebContent folder.

Adding Pines Notify js and css fields to our database

Adding Pines Notify js and css fields to our database

Once we have added the js and css files to the database they can be added to our XPage as a resource(s)

		<xp:script src="js/jquery.pnotify.min.js" clientSide="true"></xp:script>
		<xp:styleSheet href="css/jquery.pnotify.default.css"></xp:styleSheet>

jQuery UI and jQuery

Pines Notify uses the jQuery library and jQuery UI CSS for display. These are added to the XPage as additional resources

		<xp:script src="js/jquery-1.7.1.min.js" clientSide="true"></xp:script>
		<xp:styleSheet href="css/jquery.custom-theme/images/jquery-ui-1.8.18.custom.css"></xp:styleSheet>

Using Pines Notify

Pines Notify has a basic format for activating. Here is a sample button from the website:

<button class="btn source" onclick="$.pnotify({
 	pnotify_title: 'Regular Notice',
 	pnotify_text: 'Check me out! I'm a notice.'
});">Regular Notice</button>

In this format the button does not work correctly when added to an XPage as it causes a page refresh when clicked. To turn this into an functioning button we must use an <xp:button> like this one

<xp:button value="xPages Lower Timer" id="button1" styleClass="btn source">
<xp:eventHandler event="onclick" submit="false">
			pnotify_title: 'Regular Notice',
		 	pnotify_text: 'Check me out! I'm a notice.'

The Pines Notify examples website gives us the code we need to create each button

Taking the sample code from the Pines Notify examples page

Taking the sample code from the Pines Notify examples page

And to convert this to our XPages button we just need to copy and paste this code and insert it into the <![CDATA[ code section above. Using this we can quickly and easily convert the examples into functioning XPages buttons.

Pinning Notifications

By default all Notifications have the ability to "pin" them to the screen. Should they contain information the user wishes to retain, they can do so

Pinning your notification

Pinning your notification

Closing Notifications

By default all notifications can be closed before they fade out using the X in the notification

Stacking notifications

Pines Notify notifications always stack on top of each other, so you never have to worry about position or overlaying issues, they will organize themselves nicely.

Showing all notifications

By default there is a bar added to the screen which allows user to see the last and/or all previous notifications.

Showing all previous notificaitons

Showing all previous notificaitons

Working this into XPages functionality

Javascript alert boxes have been used since the start of the web but they require a user click and an unnecessary interaction from the user if the point of the notification is just that – to notify the user of something.

In our XPages applications we could potentially notify the user after:

  • Successful REST update from the server
  • partialRefresh completion
  • form submission
  • Pager completion
  • General application workflow progress
  • Validation failure

really the possibilities are endless and really up to you the developer.


My demonstration site examples page has illustrated a number of buttons taken directly from the website and I have also added some notifications to the other jQuery in XPages examples (linked in through the menu).

On my second Demonstration page There are 4 simple examples of real application uses for Pines Notify

Dojo Toaster Widget

On the XPages server without the need for jQuery you can use the dojo toaster widget to provide a notification capability. You should take a look at Chris Toohey’s well written article on Mastering the Dojo Toaster for XPages to get a comparison.


To Alan Hurt for pointing me in the direction of this plugin :)

Apr 24, 2012
41 hits

Recent Blog Posts

Angular.js in XPages series
Wed, Apr 23rd 2014 7:37p   Mark Roden
Introduction Angular.js is an Open Source (MIT) JavaScript framework created and maintained by Google. It is designed to help web developers create quick and functional applications, while reducing the overhead of data binding and state management. If you want to find out more about Angular then look at some of the myriad of great resources around the web. Angular Developer Tutorial New To Angular? Start Learning Here https://www.ng-book.com/ Angular.js the awesome parts (Video) Front end / [read] Keywords: domino xpages application applications community development google java javascript

Adding custom HTTP headers to Domino R9 using IBM HTTP Server (IHS)
Sun, Apr 20th 2014 6:41p   Mark Roden
IBM HTTP Server (IHS) was added to R9 so that we could have TLS support for HTTPS encryption. For more on how to do that see Russ Maher’s post(s) on the subject. Under the covers IHS is really a modified version of Apache Web server and comes with some of the Apache options. It gives us the ability to add custom headers to all pages served up by the server. You can turn IHS on by adding the following to your notes.ini – this does require a full reboot HTTPIHSEnabled=1 When the [read] Keywords: domino ibm notes xpages server

An open letter to Mr. NotesIn9
Wed, Apr 2nd 2014 6:33a   Mark Roden
Dear Mr Leedy, I regret to inform you that your blatant use of child labor has offended my child labor union. They do not feel like you have represented me in the correct light. I trust that you will find this short response in the same light as your original offense. yours faithfully, Your very good friend Marky Roden CC: everyone who has seen this video http://notesin9.com/index.php/2014/03/31/notesin9-141-java-vs-javascript-throwdown/ [read] Keywords: java javascript

And the gloves are off……
Mon, Mar 31st 2014 5:57p   Mark Roden
Picture this: I have been away for 5 days and during that time “someone” has been posting cryptic comments on twitter about how the next notesin9 is going to be different….and scaring me. So I am waiting at the airport this afternoon, about to board my plane home and I get this link from this “friend” who tells me to watch the new video it and enjoy. I download it and watch it on the plane. People start to look at me funny as I start to snort and giggle at my phone. [read] Keywords: ibm xpages application integration javascript twitter

When the community comes together we get the right answer
Sun, Mar 30th 2014 12:41p   Mark Roden
Last week I posted why JavaScript is more critical a skill to learn than Java. There was an outpouring of comments, discussion and responses unlike any I have seen in a while. To give a little more background as to why I decided to post: I was not to be antagonistic or instigate a storm in a tea cup. It was because for the third time in 2014 I had been told by a notes developer something along the lines of “I can’t learn XPages because I have read that you need to learn Java and I do [read] Keywords: notes xpages blogging community java javascript

Why learning JavaScript is more critical to XPage developers than Java
Wed, Mar 26th 2014 5:14p   Mark Roden
I have tried to write this article multiple times over the last 2 years, when I read it back to myself it always sounds like I am bitching. Honestly, I usually am and that is why it has not been published. This is a final attempt at a constructive argument against the insistence on many blogs that everyone should learn Java. Many people think I hate Java; I really don’t. I can program Java (I am no expert admittedly) and have done so on multiple occasions. My concerns are always raised whe [read] Keywords: domino ibm lotus notes notes client R4 xpages ajax application applications community css database development dojo google interface java javascript network server websphere xml


PATCHing a Document using Domino Data Service
Mon, Mar 24th 2014 7:11p   Mark Roden
Talk about frustrating – in a week full of slow progress and CORS cross domain hell I found this little annoyance after hours of staring and curing – once again the power of trial and error triumphs over my stupidity again. The problem I have a Domino Data Service running on the server and I want to update a document This is the imaginary URL https://xomino.com/issues.nsf/api/data/documents/unid/FDCA9C28A793D3F785257C4D0068BBCA returning the imaginary data just fine { "@href": [read] Keywords: domino ibm ajax application java server

How to ad icons to individual items in a Select2 multi-value field
Tue, Mar 18th 2014 8:08p   Mark Roden
Select2 is one of the best user interface enhancers I have come across – if you do not know what it is then you need to go play with it. It transforms SELECT boxes into dynamic, stunning, interactive UI elements and allows for all sorts of customizations and developer fun. What I want to be able to do is select items from different categories within the select2 box and then add an icon displaying to the user which category they came from. In this article I will show how. Example I want to [read] Keywords: css interface xml

My ongoing struggle with stupidity and what is not valid JSON
Sun, Mar 16th 2014 6:06p   Mark Roden
So this was a frustrating lesson to learn – and please feel free to be entertained by my apparent stupidity. I was trying to create my own JSON with an xAgent – seems easy enough. I created a simple output which looked like this { 'items': [ { 'name': 'AK', 'dc': 23 } ] } and when I fed it through my AJAX code it failed. $.ajax({ dataType: 'json', url: "http://copper.xomino.com/xomino/ExtjsBigData.nsf/xState.xsp?query="+query //url: 'http://coppe [read] Keywords: ajax google javascript

jQuery in XPages #20 – NProgress – YouTube-like slim progress bar
Wed, Mar 12th 2014 7:02p   Mark Roden
In this article I will describe how to implement and use the jQuery NProgress nano scrollbar plugin Demonstration The XPages integration of NProgress is demonstrated here Download The demonstration database can be downloaded from the link above or from here NProgress Introduction Since Youtube.com added their nano scroll bar at the top of the page there have been a flurry of different jQuery plugins which mimic the nano progress bar at the top of the screen. The silly thing is that the progre [read] Keywords: xpages ajax application applications css database dojo integration javascript openntf server xml

Created and Maintained by Yancy Lent - About - Blog Submission - Suggestions - Change Log - Blog Widget - Advertising - Mobile Edition