Over the last month or so all coordinators of DotNetNuke "core" extensions projects such as Gallery were asked to provide new releases that would be tested via the DotNetNuke Release Tracker process in time for possible inclusion with the DotNetNuke 6.0 release.
The major goals for each project upgrade would be to:
- Move project development to VS 2010.
- Package the extension with a DNN v 5 manifest to include release notes and license information.
- Establish a minimum DotNetNuke core dependencey on v 5.4.4 if the extension had already done a specific release for DNN 5.x or on v 5.6.2. otherwise.
- Resolve all compiler warnings concerning use of core API methods marked obsolete/deprecated in 5.x.
- Refactor any data access code which made use of the "legacy" connection string in web.config appSettings.
- Integrate use of core Content Items API (taxonomy, etc.) if applicable.
On the "wish list" for extension project upgrades would be full documentation of code, population of Wiki pages for each project, and full XHTML compliancy.
Since I had just completed the 4.3.3 release of the Gallery module in December and had set the Gallery 4x codebase aside to begin work on laying the framework for MediaGallery 5x, I was at first reluctant to take on this task. I finally agreed on the basis that XHTML compliancy and Content Item integration would not be required. The Gallery team had discussed XHTML compliancy many times but with each previous version decided that it would be very difficult and time-consuming to tackle in Gallery as its markup and server-side html rendering was done with use of tag attributes everywhere - the legacy valign, align, cellspacing, cellpadding, height/width plus frequent use of deprecated tags such as <center> and <font>. Although each of the four "themes" had their own css style sheets, the css rules had been created haphazardly and inconsistantly by various developers. As for Content Item integration, that could not be easily undertaken since Gallery makes no use of the SQL database, instead storing its album/media metadata in xml files. To achieve XHTML compliancy and develop a proper SQL based data access layer would especially be a waste of time as none of the work would be useful for Gallery 5x which will be designed from the ground up to use a non-physical album metaphore for organization of media and a Silverlight 4 user interface.
After completing most of the above goals for DotNetNuke 5.6.2 dependency, fixing a number of minor issues, and re-packaging the module with a version 5 manifest, I decided in a moment of insanity to make all three gallery views in all four themes and all administrative controls XHTML compliant. Some 45 hours of work later (I told you that I was insane didn't I?) I believe that Gallery is about as XHTML compliant as a "coder" who is non-designer can make it. The module's layout is still mostly table based but along with the revised theme style sheets should lend itself much more to css styling.
I have uploaded both the install and source packages for Gallery 04.04.00 BETA to it's CodePlex project site for you to download and test:
Note that this is a BETA that has received very little testing and should not be used on a live production site until it has successfully passed the DotNetNuke Release Tracker testing process for "core" extensions. As the module does not make use of SQL scripts, it sould be possible for you to upgrade it to the final release versions BUT this is NOT guaranteed.
Please report any issues that you find in the project's CodePlex issue tracker. Barring any showstopper issues which are found in the next couple of days, I plan to submit this version to the Release Tracker testing by April 20th.
Here is a list of completed tasks, issues fixed and enhancements in Gallery 4.04.00:
- Completed the following tasks:
- ID: 20284 - Updated copyright year (2011) across all module files.
- ID: 20285 - Converted Gallery from a VS2008 to VS2010 Web Application Project.
- ID: 20285 - Refactored code to remove 43 compile warnings re core methods marked obsolete/deprecated in DNN 5.x.
- ID: 20285 - Repackaged with DNN 5 manifest (dnn) file and separate release notes and license file.
- Fixed the following issues:
- ID: 15082 - Revised all user control markup and code as well as css stylesheets in all four themes for XHTML 1.0 Strict compatibility. Removed all XHTML 1.1 deprecated html markup attributes and in-line styles (except were necessary to programatically inject a width value based on configuration settings).
- ID: 15082 - Reviewed and modified where necessary all controls for better consistancy of styling between controls.
- ID: 19351 - Unable to add child album containing uni-code characters if the album name began with a uni-code character.
- ID: 19353 - Adding filename containing % character results in broken thumbnail and other errors.
- ID: 19354 - Fixed missing localization of item (Copyright) in Exif data grid.
- ID: 20102 - Incorrect formatting of value "Permissable File Upload Types" - movie in Add File control.
- ID: 20331 - Number of media items contained in album not shown in standard, list or card views.
- ID: 20224 - Localization for client field ("Notes") is incorrect ("Client") in Add File control.
- ID: 20283 - Multiple controls of the same ID error in media context menu when DNN FolderID and FileID happen to be identical on same Gallery page.
- ID: 20289 - Icon button tooltips are not displayed in list view.
- ID: 20291 - Popup slideshow started from thumbnail context menu does not "pop-up".
- ID: 20444 - Fixed performance issue due to potentially huge (30,000 +) number of Maker Note data value pairs when displaying Exif data grid.
- Added the following enhancements:
- ID: 20439 - Added configuration setting "Default Album" to force Gallery to dispaly a specific album (rather than the top level) when browsing to a page containing the module.
- ID: 20509 - Revised client-side slideshow script to use jQuery to provide smooth fade-in/fade-out between images that should work in most late version browsers rather than the legacy code's IE only filter.
- ID: 20510 - Added capability to pause slideshow on hover over current image.
- ID: 20511 - Restyled and extended functionality of the Album Maintenance control including eliminating post-backs on operations such as "Select All" and "Deselect All".
- ID: 20512 - Refactored gallery configuration, album, and pending uploades caching to use expired cache item callback (GetCachedData) pattern available in DNN 5.x.
Now, maybe I can get back to work on MediaGallery 5x - should be much more interesting and rewarding! Let me know if you'd like to be part of the project team which will be built once I get the new version's data structure and framework in place. My email is bill (at) wesnetdesigns (dot) com.