Thursday, September 29, 2005

Creating a Domino Navigation System - Part 1

In this tutorial, I'll be attempting to show you one way that you could make a menu/navigation system for your company (I'm hesitating to use the word portal), without resorting to either Workplace or WebSphere.

I think we're all familiar with the welcome screen, which is nice for individual users, but really isnt much good for a corporation, especially not one with lots of databases.

I originally built a navigation system for my company using Navigators, they were the only things available at the time. This resolved some problems I had with the workspace, namely how to put new databases on the desktop, and control where they went.

Unfortunately, the problem with this approach is that when you want to make changes, you have to do so using designer. I wanted to come up with a more flexible navigator which would allow things to be easily moved around.

Note that the proposed navigator is a Notes-based, rather than web-based system.

The Basic Building Blocks
I'm going to assume a little familiarity with domino designer here...

Create an outline to use for the left hand panel navigation system - I'd suggest that it should include things like My Mail, and the main departments/divisions in your company.

Create a Page for the Navigator Controls (down the left hand side of the screen), and embed the outline onto it.

Create a second page for the main body of the navigator - we're actually going to use views for most of the work in the navigator, but a page is really nice to start on. This gives us a bit of scope for graphics. You might want to embed some frequently used views from other databases onto this page. I added our room booking system and business contacts, speed dials and staff phone list. I also added some graphical icons below and put two views (back into the navigation system itself) at the top (I'll provide more information on these later).

I created a page for the Top banner and a page for the version number (bottom left hand corner), these pages don't do much, so you might want to ignore them.

I have two forms in my database, one is a Navigator Entry, and the other is a Reminder. The reminder is essentially the same as the navigator entry except that it has time and scheduling fields to make its entries appear only on days for which it is relevant. The data from the reminder form appears on the top view of the navigator.

I'm mainly going to be concerned with the navigator entry form. This form should have, at the very least, an Item Title (text field), possibly a LinkType (dialog list) and a LinkData field (text).
I've called these fields TXTTitle, KEYLinkType and TXTLinkData respectively. You should also consider having a Categories (Dialog List) field, so that you can decide which views an entry should be in. My categories field was called KEYCategories.

Finally, create a view which displays the TXTTitle from the Navigator Entry form. You can place a restriction on the view if you like, In my case, I restrict to only those Navigator Entries which have @Contains(KEYCategories ; "STAFF_FAVORITES"). You should update your page to embed this view on it.

You should create one or two more copies of this view, with different KEYCategories restrictions, including at least one view with no restrictions. You should link some of your outline entries to these views, (to open the views in the pane currently occupied by the main body page.

Create a frameset to tie all of these elements together and set the database to open the frameset. Make the navigation controls page, and the main body page the default settings for the navigator, and set the database to open the navigator automatically when it is opened.

Next Time: I'll give you the code required to execute items when they are double-clicked in views.

No comments: