Hi everyone, I hope you've all had a good Thanksgiving (if you are in that part of the world).
Now that 1.0.1 is out the door, it's time to look forward to the 1.1 release and beyond. I'd like to do this for all of dojo but I can't boil this ocean, so I'm looking at dijit. I've gone over all the bugs against dijit, and especially the bugs marked for 1.1.
There are too many bugs to talk about individually but I've picked out the most salient issues, and listed them below. I'd like to get feedback from each of you, the dijit users, about the order of priority of these issues, since I don't think we'll be able to do all of them for the 1.1 release. (By "order" I mean an actual 1, 2, 3, 4 type list)
Architectural issues:
- tree/datastore issues
-
- dml/dnd not working - Updates to the tree (including DnD) are not working correctly since ItemFileWriteStore doesn't maintain referential integrity. Not a widget bug but affects Tree (#4552)
- the dojo.data API doesn't support lazy-load of individual attributes, which means that an item (representing a node in the tree) must contain at the least a list of the id's of it's children, which is not a good model for lazy-load of tree children. Many people have also requested the ability to directly control the contents of the tree rather than going through dojo.data but we've resisted that as we want to keep dijit simple.
- popup widgets' dom nodes moved to document.body
- Popups and drop downs are moved to document.body, which breaks destroyRecursive() and reload of ContentPane via href etc. (#2056, #3300, #4902, #4980)
- input widget layout bugs
- For the 1.0 release I changed the input type widgets (*TextBox, FilteringSelect, etc.) to use a table for formatting so that you can specify the outer width of the element, including the width of the arrow(s), the error icon, and the input area. But getting this to work in all cases across all browsers has proven very tricky. Is using <table> unstable? (#5148, #4894, #5139). maybe need alternate design using padding
- various textarea issues
- (#5116, #5210, #3902). should we switch to using a plain textarea with resizing on kepress plus on a timer? (#4979)
- layout widgets don't render inside dialog / hidden div
- (#4169, #4263, #4758)
- layout widgets in content panes
- Problems specifying when underlying widget is layout widget and should be sized along with ContentPane (#5169)
- splitting apart CSS files
- Lots of discussion about the large size of the CSS needed to download with dijit, and how to reduce it.
- use 4-corners technology for layout widgets
- refactor of AccordionContainer, TabContainer, etc? to use 4-corners technology being used in Borderlayout (#3887). The tangible benefit here is smoother screen resizing for something like the mail demo (this is especially an issue on FF).
- dojo.requireCss() / race condition loading CSS
- People have asked for synchronous load of CSS files to avoid race conditions, and also to fix path problems with IE's filter() path (which is relative to the html page, not the CSS file location) (#5136)
A11Y:
I don't know much about what's on the list for A11Y. A few highlights are:
- grid
- finish a11y for grid (#3813)
- dialog initial focus
- focus on first item in container not dialog itself(#4025, #4411, #4413, #5133, #5134)
New features:
Additional browser support:
Misc:
- DOH - we can write DOH tests that check simple things like whether the widgets can instantiate without getting an exception, but they would only test 10% of the functionality. People would still need to load all the test files (in all the browsers) to see if the widgets were really functioning or not
- Selenium - we can write selenium tests for the widgets. These would test a lot more, but are probably very time consuming to write and maintain.

Regarding automated tests
I think they are time consuming, but so is fixing regressions ;)
Just imagine if we had good coverage using DOH and Selenium or Windmill? It would be awesome to have these tools catch bugs before they are committed.
I'm willing to do the work pushing automated ui testing forward, but my time has been very limited lately, and I'm off for all of January.
CSS based layout for input widgets
The "input widget layout bugs" are not funny. I use YAML as CSS framework together with DojoToolkit. It works with DojoToolkiit V0.9, but not with the new table layout from V1.0.1. Couldn't we create a CSS based layout for these widgets, instead of using tables?
Remi
What I'm working on
Bill,
I agree with what you have so far and am adding in a couple of things I'm working on.
1. Updated Tundra theme. This is actually very far along, you can see it at http://dojotoolkit.org/~itorrey/tundra_upgrade/dijit/themes/themeTester.... just some minor clean up to polish things up a bit.
2. Widget 'personas'. I started working on a persona for each widget which describes the types of uses for a widget. This would help newcomers as the persona would describe in a few sentences the basic ideas behind the widget. I'm also currently cooking up a webapp theme for examples... the idea being we would create an example app (like the mail demo for instance) that would use all of our dijits. Each dijit would have a demo file which has data relating to that theme. For instance, if we went with the communication hub theme we might style the accordion pane to be our buddy list and a floating pane might be our IM conversation and within that might be tabs to switch between the conversations. Still working on fleshing this idea out.
3. As part of a SitePen blog about creating themes for Dijit I'm working on a style that we'll contribute as well.
iTorrey, tundra looks way
iTorrey, tundra looks way better!!! much cleaner and not messy anymore!!
I have worked on a theme nihilo as well http://www.nikolaionken.com/dojo/images/dojo-nihilo_03.png maybe we can implement this one until the 1.1 as well? xnihilo needs cleanup though
Personas
I'll be interested in seeing these (if they materialize).
menu need, css spliting nice
I have to say, the fact there's no real menu with Dojo is the #1 complaint I've gotten when discussing it with other users.
Css splitting would help with the total size of the download. Ability for them to dynamically load as needed as required would help. I'd also like to have the ability to easily move the css files to a secondary location for easier management with other site CSS files.
please no more CSS splits
Oh, please no more splits with the CSS files. Each request for another additional CSS file costs more and more time. A big CSS file is better than twenty small CSS files.
Remi
while i would want to agree
while i would want to agree with you initially, the sheer size of the css in the cases where you are not using all the widgets is cumbersome in itself. dijit.css i think clocks in at ~20k, and tundra.css another ~30k (?), just to use a single dijit. If the dijit used it's own theme css file, in development mode you would incur the hit of the multiple css files, but the build system could/would/should be utilized to roll the required css files into a single common file, and strip comments. which is about as optimal as it could get, imho. if you end up using a lot of dijits, the css will be one big file, otherwise, it's one much smaller file. this would also make it possible for dojox css files to be included in a theme file (for instance Lightbox provides definitions for both soria and tundra styling) and not have to be a separate include. One appealing idea would be to make each widget use it's own css file, and not actually tie it to the JS at all, but rather make (for example) tundra.css something like:
and then you could manually strip out the files you don't need, and have an easily parsed list of files to roll into a single project.css file (your own css included, potentially)
no real menu
When you say "there's no real menu", you are talking about the MenuBar thing, right? Something like the horizontal "File" menu at the top of windows on Microsoft Windows, or the top of the screen on the Mac.
Tip: use a alternative menu
Devanchya, you can always use a CSS based drop down menu, like the great ADxMenu.
Remi
Tree widget
For me and my company, the tree widget is a very high priority. We're actually waiting for the tree widget to become more solid before porting our main application to Dojo 1.x. Improvements to DnD are the main thing that we're looking for. Thanks for posting the question. ~Michael
splitting apart CSS files
Hi everyone, just letting you know that I begun attacking splitting the CSS files.
It's based on the idea of creating a 'minimalist' build of only the resources you need. See this ticket:
http://trac.dojotoolkit.org/ticket/2696
Not sure on delivery time but hope to be done sometime in end January 2008