Thursday, January 21, 2010

Minor bug fixed by jQuery 1.4

I am surprised I didn’t notice this before or that no one reported it, but there is a small bug in 2.3.3512 on the Manage Users page in the Site admin area. To reduce information overload when user albums are enabled, only user-created roles are shown by default on the Roles tab of the Edit User dialog window, as seen here:

Edit_User

If you want to see ALL roles – including the ones created by GSP to manage security for user albums, then select the checkbox Show roles that support the album ownership and user album features. When you do, a little jQuery script runs that shows all of these roles. In this screen shot, two additional roles materialize out of thin air when the checkbox is selected:

EditUser_WithAlbumOwnerRole

Or at least it does in browsers other than Internet Explorer 8. When IE8 is in the default Standards Mode, selecting the checkbox does… nothing. Well, almost nothing. If the checkbox is selected and you close the dialog box and then make it reappear by editing the same user, the roles will correctly display. But that is hardly the desired behavior.

The first thing I did was download the new jQuery 1.4 release and try it out. As luck would have it, the problem is solved! Selecting the checkbox correctly toggles the visibility of the roles in all major browsers. Phew!

The next version of GSP will either include the latest version of jQuery or else it will link to the hosted one at Google. My current thinking is that it will default to the hosted version for performance reasons but you can always switch to a local copy if you want.

But you don’t have to wait for this fix. There are two ways to update your current installation of GSP to the latest jQuery library:

1. Download the latest minified version of jQuery and copy it to the gs\script directory in your GSP installation. As of today the file is named jquery-1.4.min.js. Then update the jQueryScriptPath setting in galleryserverpro.config to point to this file.

2. Even easier is to tell GSP to use the hosted version at Google. Open galleryserverpro.config and update the jQueryScriptPath setting to http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js.

jQuery is a powerful library that helps make web pages come alive with rich interactivity. Currently I only use it in a few places in the Site admin area, but I plan to start using it throughout GSP. It will let us do some really cool things that previously I considered far too difficult to even attempt. Stay tuned!