#8859 closed defect (fixed)
[regression] subgrid broken
Reported by: | bill | Owned by: | Bryan Forbes |
---|---|---|---|
Priority: | high | Milestone: | 1.3 |
Component: | DojoX Grid | Version: | 1.3.0b3 |
Keywords: | Cc: | James Burke | |
Blocked By: | Blocking: |
Description
On Safari, running http://download.dojotoolkit.org/release-1.3.0b3/dojo-release-1.3.0b3/dojox/grid/tests/test_subgrid.html I get an
failed loading ../../../dojo/../dojox/grid/DataGrid.js with error: TypeError: dijit._Widget is undefined
Change History (5)
comment:1 Changed 12 years ago by
Priority: | normal → high |
---|
comment:3 Changed 12 years ago by
Cc: | James Burke added |
---|
Hmm, what Adam said is correct, this bug apparently indicates a problem with the build system.
I agree _Grid.js should list the requires individually:
dojo.require("dijit._Widget"); dojo.require("dijit._Templated");
but still if there's a regression in the build system we should fix that.
comment:4 Changed 12 years ago by
The problem is not the build system logic, but rather the structure of the standard.profile.js: it now has layers in for the Grid, GFX, Charting and DTL, and for the Grid and Charting layers they have layerDependencies on dijit.dijit, so the built file for the dojox.grid.DataGrid? assumes dijit.dijit has already been loaded:
http://bugs.dojotoolkit.org/browser/util/trunk/buildscripts/profiles/standard.profile.js
This is the problem with trying to do too many layers in the standard build, and one of the reasons I avoided it before. I think the solution is to remove the layerDependencies for those layers. Or remove those layers. But I will remove the layerDependencies for now -- it probably still performs better loading all the extra dijit code than waiting for all the individual modules to load. And we avoid any tricky errors if someone assumes that dojo.require("dojox.grid.DataGrid?") will load all of its dependencies.
Confirmed also in FF3 running the beta release. But the nightlies (built) and my local copy works fine.
I'm not sure why the dojo.require("dijit.dijit") in _Grid.js isn't pulling in dijit._Widget, but perhaps it makes sense to replace it with dojo.require calls for the specific modules needed? Or maybe I'm way off base.