Tons of progress has happened with liteGrid since my last in-depth post. At this point, I think I’ve met all the goals I defined, and I’m very happy with it, in terms of both functionality and design. Here’s what the current set of modules provides (remember all of this is mix-and-match, so you can tailor it to what you need):
- AJAX-based data provider supporting retrieval, updates (both multi-row batch and single-cell modes), updates, and inserts, with full support for retrieving and rebinding database-populated values post insert/update (more on this in a future post)
- Batch saving module that allows users to persist their changes on-demand
- BlockUI integration, nicely disabling access to the grid during data operations
- Cell saving module that automatically saves changes whenever a cell is edited
- Formatting module that allows you to specify anything from simple to advanced formatting rules
- Editable via integration with JEditable
- Layout manager that adds resizable columns, fixed header row, and more
- Integration with jQuery UI
- Row addition module that does exactly what it sounds like
- Row deletion module that adds a delete button to all rows
- (Thanks to David Koehler) Injection protection through escaping potentially dangerous characters, and unescaping them prior to edit
- Dynamic row striping that maintains the correct striping even as the grid changes
- Toolbar that supports custom buttons
- Tree-grid functionality, allowing rows to be nested under other rows
All of this functionality is implemented using liteGrid’s event-driven architecture, so there is little/no coupling between the core and the various modules.
Like I said a while back, all this is Coming Soon to an open-source repository near you. My plan is to make that happen within the next week. I don’t plan to make a release right away, but the code will be there for anyone that wants to take a look.
Roadmap to V1.0
Here are the list of things I want to do before I’ll be comfortable calling this a true “release”:
- Unit tests (probably using JSUnit)
- Better documentation; the code is well-commented, but I’d like to add vs-doc support as well as have a rich wiki that describes everything
- Complete demo application (including ASP.NET MVC backend)
- Resolve any lingering Internet Explorer 8 rendering issues
If you are interested in contributing, drop me a line, and I’ll let you know as soon as the source is available for you to check out. Or, stay tuned to this blog, and watch for a link to the project within the next week (hopefully).