How To: Enhanced Domino Views

In my development in Domino I’ve always been disappointed with Domino Views. I’ve tried the XML views approach (nsftools.org), and although it works, it was just too slow. Since the Domino Views are fast loading, I figured there must be a way to make them work for me. So, to this end I’ve worked to create an enhanced view using Domino Views. The basic concept is I have Domino spit out basic html from views, with those views containing tags. After loading the HTML I’ve reconstructed them. On a run-of-the-mill single CPU, the views take about 1.5-2 seconds longer to load than standard view requests, but you get so much more without hitting the server again. It pulls in still only 1000 documents, but an action to “Navigate…Next or Previous” is included to get more and to return to previous documents. Some of the features of my work includes:

  • Enhanced categories: you can twisty open and shut any sections without polling the server or the others collapsing.

  • Caching Views: View contents are cached into another frame once loaded. Returning to them will pull in the cache. That takes only about 2 seconds to load. User will see a refresh icon if they wish to refresh view.

  • Selection of Documents: You can select/deselect all or as many documents as desired from the view. These values are stored so they can be acted upon.

  • Expanding/Collapsing: You can expand/collapse all or just as many sections as you want without polling the server.

  • Enhanced Navigation: As you scroll down the page, you position is remembered. Also any categories opened are remembered. If you return to the view, you are instantly taken to where you were with the sections opened you had before. This is also a great feature to call if you save a document and want the new contents in the view displayed, but don’t the user to start over expanding sections and getting to where they were before.

  • Constant Title Bar: If you scroll down the page, the title bar will stay with you.

  • You can even have a WebQuery agent spit out the formatted text and the enhanced views code then does the rest to structure the output.

There is a lot of code involved, but it is fairly modular. It has been developed in IE, but it could be tweaked to work on other browsers too. I’m working to get it migrated into a db so you can see exactly how everything is done. The biggest effort is formatting you view column/contents with the tags, so contents are handled properly.

I thought I’d post this now to see if there is interest in this. If so, please e-mail me (skylab@xmission.com) and I’ll add you to the list for distribution. The porting and example db should be completed in the next month (end of November 2008). If you want this sent to you, please let me know.

I don’t plan to release the code into the wild because I need to know whomever I distribute the code to isn’t in direct competition with my company. We do healthcare software related to regulation/standards. If you aren’t in this field of activity, you are welcome to my work.