A few interesting things landed in svn

Some interesting changes have been committed to svn branches/2.x

One big change is that I have created dedicated physical pages for the admin features (SiteSettings, Role Manager, Content Manager, etc) which until now have just been modules that plug into the content sysem the same as the content modules. Now there is an Admin Menu page with links to all the admin features, and they no longer appear in the main menu. I did this for a number of reasons.

I'm planning to make it configurable which features are "installed" but the admin features should always be there. In the previous model because the admin features just exist on pages in the content system, it is possible to remove the admin features from the site using the content management features with no way to get them back easily without doing it directly in the db.  So separating the admin features into physical pages outside the content system seemed the way to go. This change also helps with multi site installations using one web and db because when new sites are created we don't need to create admin pages in the content system in the new site either.

There are now 2 new skins named treeview1 and treeview2 which are really coopies of the existing jwv1 and jwh1 skins but modified to use the TreeView control for the menu. One of the cool things about the TreeView is its ability to load nodes on demand from the SiteMap. In large sites with lots of pages and deep hierarchies this can be a performance benefit.

When using the normal Menu all the navigation links for the entire site are rendered as markup into the page, typically showing only the top level and using mouse over to reveal deeper nodes. If you view the source you see the Menu rendered as ul and li elements in the markup and every link is there for the whole navigation tree which can be a lot of markup in a large site. The more markup there is the bigger the page size and the slower the perfomance. Since the menu is on pretty much every page its part of the payload of most requests.

The TreeView control also renders as ul and li elements but with PopulateOnDemand it will not render the markup for invisible nodes. When you click a node it will expand and add just the nodes requested. You can see this when you view the source of the page. If you want to check it out, the treeview1 skin has the TreeView for the menu and the treeview2 skin has a regular horizontal menu for the main menu and a TreeView for sub pages beneath the top level. To see for yourself, create some deep hierarchies of pages and view the source of the page as you drill down from the top.

I also shortened the 3 column names on the mp_Users table and 2 column names on the mp_Sites table. Recently there has been some renewed activity by the Firebird data layer team. Firebird doesn't allow columns longer than 31 characters so this was a barrier in implementing the 2.x mojoPortal data layer. By renaming the columns this barrier is now removed so hopefully work will proceed for the Firebird data layer. Thanks to Gareth for all his hard work implementing Firebird for 1.x mojoPortal!

Some have noticed that the SQLite data layer for 2.x mojoPortal was broken a few versions ago and has not been shipped with the last few versions. Joseph Hill, who initially implemented the SQLite data layer has agreed to look into, so hopefully that data layer will come back to life sometime soon.

Comments

aleyush

re: A few interesting things landed in svn

Thursday, May 3, 2007 6:21:27 AM

About the admin pages. I agree about the modules, but vote for including these pages to menu by default. With the old variant i could access any of the admin features with one click, and now I have to click twice.

The same about treeview skins. They will be nice if using ajax, but with postbacks for drilldown... seems much less comfortablr to use.

re: A few interesting things landed in svn

Thursday, May 3, 2007 8:33:48 AM

Well those who want the Admin pages in the main menu can create pages in the menu that link to them but I do not think this should be done by default.

I have a plan to make it possible to configure what pages get created during setup using a config file, when that is finished then even those who think these pages should be in the main menu by default will be able to setup their config file so that it does include those pages, but the default config file will not have them.

About the TreeView, I plan on looking into making it ajaxy when I have time but I need to do it using just the open source ms ajax javascript, I don't want to have dependencies on the ms ajax dlls.

The other thing about using ajax is that I want to be careful that  anything I do using javascript or ajax still works if javascript is disabled and is accessible to screen readers and other presentation systems for those with disabilities. So it must degrade to reasonable functionality in those situations. There are already some things that need fixing in this regard, like the help system links do not currently work if javascript is disabled and I plan to fix that soon.

Joe

Comments are closed on this post.