Hi,
I'm using beta-1 so this may be a non-issue as I haven't pulled from source lately. The function "tacos.defaultLinkAction" sends this data to the server which is set into the visibleWidgets property of the AjaxWebRequest.
kwArgs[
"content"]["widgetids"] = dojo.widget.manager.widgetIds.join(
",");
Can someone explain how this is used? Is it something for a future feature or something someone is using for their work?
Here is why I ask...
The dojo build I use (.2.2 I think) creates the dojo.widget.manager.widgetIds array using each widget's widgetId as the index and the widget itself as the array entry, as in...
this
.widgetIds[widget.widgetId] = widget; The join() method (at least in IE) internally seems to just loop through the array's length using an integer index. This means nothing is ever sent to the server except for a String consisting of zero or more commas like ",,,,,,," because there are no corresponding entries to the array unless a widgetId happens to be an integer.I wouldn't care about the widgetIds feature at all, but I happen to have dojo widgets with widgetIds like "875" which are interpreted as integers by _javascript_ (at least in IE) and then set the length of the
dojo.widget.manager.widgetIds array to be that (or the highest integer used). So what gets sent to the server for me with an AjaxDirectLink is a list of that many commas. I still wouldn't even care, but this seems to be causing the resultant URL to exceed IE's size limit and the call fails.
The workarounds are to change my Ids or intercept the call to dojo.io.bind and clean up the contents, but ideally we'd send the real list of widgetIds to the server rather than using join.
Thanks,
Michael
