{5} Assigned, Active Tickets by Owner (Full Description) (244 matches)

List tickets assigned, group by ticket owner. This report demonstrates the use of full-row display.

Results (101 - 200 of 244)

1 2 3

dylan (88 matches)

Ticket Summary Component Milestone Type Severity Created
#18203 NumberTextBox: Type "-" and move focus out, the widget is not marked as invalid in some cases Dijit - Form 1.15 defect Aug 1, 2014

When "places" attribute in "constraints" is set, if typing "-" in NumberTextBox? widget and then moving focus out, the widget is marked as invalid - this is good.

However, when "places" attribute in "constraints" is not set, if typing "-" in NumberTextBox? widget and then moving focus out, the widget is not market as invalid - this is a bug.

This problem can be re-created on http://dojotoolkit.org/reference-guide/1.10/dijit/form/NumberTextBox.html. See attached screenshots.

There is a related bug (https://bugs.dojotoolkit.org/ticket/17382), but the problem I want to report here is different as the one reported in that bug. For that bug, I would consider the behavior is expected (or by design). When the focus is still in the widget, we should not mark the widget as invalid if the text is "-", as user may type number after "-", which will make the input valid. But when the widget loses focus, the widget needs to be marked as invalid if the input is "-", as "-" is not a valid number - this is the problem I want report in this bug.

Attached is a quick fix that we applied. The ideal fix would be fixing the regular expression when "places" attribute in "constraints" is not set.

#18257 this.inherited('name', arguments, true) with isDebug dojo config fails Documentation 1.15 defect Sep 8, 2014

if isDebug is set in dojoConfig I run into an exception when calling this.inherited('name', arguments, true) to get only the super method instead of calling it.

TypeError?: Function.prototype.apply: Arguments list has wrong type

#18386 No way to set progress callbacks for xhr.upload when using dojo/request/xhr IO 1.14 defect Nov 25, 2014

https://bugs.dojotoolkit.org/ticket/13375 mentioned that this support was in dojo/request/xhr but I took a look at the code today and found no way to add a progress callback to the xhr.upload object.

#18397 Text selection prevented after mouse down on dojox/mdnd/Moveable object Dojox 1.14 defect Dec 3, 2014

To reproduce, go to http://jsfiddle.net/nicknisi/8h364x90/1/ and drag one of the Moveable objects. Then, try and select text on the page. It looks like dojox/mdnd/Moveable stops selection on mouse down but then doesn't clear that listener afterwards.

#18551 [patch] Lines always show in dojox.charting.action2d.MouseIndicator Charting 1.14 defect Apr 10, 2015

Trying to add a MouseIndicator? with lines: false doesn't change anything. Lines keep showing up.

It is fixed by changing line 144 of MouseIndicator?.js from this:

this.chart.addPlot(this._uName, {type: IndicatorElement, inter: this });


this.chart.addPlot(this._uName, {type: IndicatorElement, inter: this, lines: this.opt.lines});

but I think further changes should be made to completely fix this issue.

#18697 PortletInGridContainerColumns - DND Error in IE. DojoX Widgets 1.14 defect Sep 7, 2015

DND Error in IE.

In the example "https://github.com/dojo/dojox/blob/master/widget/tests/test_PortletInGridContainerColumns.html" for a portlet within a Bordercontainer (For the use with IE it has to be delivered by a webserver). In Firefox and Chrome the DND-Event works as it should:

  • Click on the portlet an keep the Mousebutton pressed to move the portlet around.
  • Release the Musebutton to drop the portlet at that place.

IE (version 11) shows a strange behaviour:

  • the portlet sticks to the cursor even after releasing the the mousebutton.
  • I need to click again to drop the portlet

With Dojo < 1.8 it does work within IE without any issues.

#18759 dojox.xml.parser.parse can not run outside browser - not applicable for nodeJS Dojox 1.14 defect Nov 25, 2015

hi, I would like to use dojox.xml.parser.parse utility, but in NodeJS. I had a look at its code, and its instantiating DOMParsers from the browsers. Unlike statements in dojotoolkit.org, this means that not all of its utilities are applicable to all runtimes.

simply have a look at the dojo/xml/parser.js implementation...

#18782 config.js uses wrong prefix when has('dojo-config-api') is falsy Core 1.14 defect Jan 22, 2016

In dojo/_base/config.js, the branch that's taken if has('dojo-config-api') uses 'config' to prefix configuration properties added to has but these properties are expected to be prefixed with 'config-'.

Link to the offending lines: https://github.com/dojo/dojo/blob/1d32043df68bce115d324efcf2838f4cc6beb3d2/_base/config.js#L159-L171

#18894 EnterKeyHandling forgets line indentation upon new line Editor 1.14 defect Sep 27, 2016

When in DIV mode the enterkeyhandling forgets line indentation upon new line. I was able to fix this by adding the code below to the handleEnterKey function :

if (this.editor.queryCommandState("justifyleft")) {

newblock.align = "left";

} else if (this.editor.queryCommandState("justifyright")) {

newblock.align = "right";

} else {

newblock.align = "center";


#18904 dojox/html/_base.js should consume getObject() from lang Dojox 1.14 defect Oct 7, 2016


https://bugs.dojotoolkit.org/changeset/25850/legacy moved methods from dojo/_base/kernel (ex. dojo) to dojo/_base/lang.

In http://svn.dojotoolkit.org/src/tags/release-1.9.0/dojox/html/_base.js, the following can be found :

var html = kernel.getObject("dojox.html", true);

=> kernel.getObject == undefined

Suggestion 1:

Write instead : var html = lang.getObject("dojox.html", true);


Suggestion 2:

Once you replaced 'kernel' by 'lang'. You may wonder whether the dependency to 'dojo/_base/kernel' is still necessary in dojox/html/_base.js

Enjoy your day,


#18977 Tree and wipeIn/wipeOut-based Toggler anim erratic when started while previous anim in progress fx 1.14 defect Feb 21, 2017

Tree behaves erratically (that is, the animation jumps in various ways) when a node's +/- button is clicked while a previous expand or collapse is in progress. Toggler also behaves erratically (discontinuities, and attributes being animated out-of-sync with other attributes) when showFunc/hideFunc are set to wipeIn/wipeOut. I'll give recipes to reproduce some specific bad behaviors below.

My basic premise is that both of these widgets's animations should be continous in all cases, no matter in what crazy way the user clicks around on them, and so any discontinuities in their animations is a bug.

The discontinuities in both widgets apparently began with this commit, 6 years ago:


commit 944f8ad4c8dd3314b97f9ce8e015cad6db8ec96b Author: Douglas Hays <do[email protected]…> Date: Fri Mar 25 23:51:19 2011 +0000

Fixes #12177. Duplicate cleanup handler for both onStop and onEnd. Added automated test. git-svn-id: http://svn.dojotoolkit.org/src/dojo/[email protected] 560b804f-0ae3-0310-86f3-f6aa0a117693

My recipe to reproduce these problems is based on the first Tree example and third (last) Toggler example from the docs. I'm starting from the 1.7 docs, since that's the doc version whose code is most compatible with dojo&dijit as they have changed over the past 6 years:

https://dojotoolkit.org/reference-guide/1.7/dijit/Tree.html#a-programmatic-tree https://dojotoolkit.org/reference-guide/1.7/dojo/fx/Toggler.html#example-2-toggle-a-dom-node-with-custom-animation-functions

(note that the "example-2" is really example 3; that has since been fixed on the Toggler doc page). I lengthened the animation durations to 2 seconds in both examples; I've attached the two modified examples.

To demonstrate various bad behavious, first save the two examples I attached, and put up-to-date dojo&dijit repos in the appropriate places so they can be found by the example pages (i.e. put them under ../_stat

#18991 Port 18871 to 1.10 Core 1.13.1 defect Mar 20, 2017

Creating port request per Dylan's comment on 18871. We would be adding this to 1.10.4.

#18545 [meta] intern tests abort in the middle Core 1.14 defect Apr 3, 2015

This is from running using proxyUrl to run the tests from a mac against a Windows 7 VM:

mac:dojo bill$ npm run test-local

> [email protected] test-local /ws/trunk/dojo
> intern-runner config=tests/dojo.intern.local

Listening on
Starting tunnel...
Initialised chrome 41.0.2272.118 on XP
Test main - dojo/text - no X-Requested-With header FAILED on chrome 41.0.2272.118 on XP:
CancelError: Timeout reached on main - dojo/text - no X-Requested-With header
Error: Timeout reached on main - dojo/text - no X-Requested-With header
  at Error  <native>
  at new ErrorCtor  <__intern/node_modules/dojo/errors/create.js:13:21>
  at <__intern/lib/Test.js:178:38>
TypeError: Cannot read property '1' of undefined
  at publishInSequence  <node_modules/intern-geezer/lib/createProxy.js:50:13>
  at IncomingMessage.<anonymous>  <node_modules/intern-geezer/lib/createProxy.js:74:6>
  at IncomingMessage.EventEmitter.emit  <events.js:92:17>
  at <_stream_readable.js:920:16>
  at process._tickCallback  <node.js:415:13>

npm ERR! [email protected] test-local: `intern-runner config=tests/dojo.intern.local`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] test-local script.
npm ERR! This is most likely a problem with the dojo package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     intern-runner config=tests/dojo.intern.local
npm ERR! You can get their info via:
npm ERR!     npm owner ls dojo
npm ERR! There is likely additional logging output above.
npm ERR! System Darwin 14.1.0
npm ERR! command "node" "/usr/local/bin/npm" "run" "test-local"
npm ERR! cwd /ws/trunk/dojo
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.3
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /ws/trunk/dojo/npm-debug.log
npm ERR! not ok code 0

#18920 dojox.mobile.Carousel infinite loop DojoX Mobile 1.14 defect Nov 16, 2016

It is possible for an infinite loop to occur in onComplete at the line (Carousel.js:285):

for(i = 0; i < nPages; i++){

due to nPages being Infinity.

This happens if the width of the carousel is less than the width specified for it's items. This can happen as the carousel resizes with the page, and the area for it is smaller than the width specified for items when creating the carousel.

The cause is this.numVisible being set to 0 in 'resize' due to this.itemWidth > this.domNode.offsetWidth the line:

var num = Math.floor(this.domNode.offsetWidth / this.itemWidth);

this.numVisible is used to calculate nPages making it Infinity in this case.

In Chrome (54) this causes it to max out CPU with continually growing memory use. The only way to stop it is to kill it in Task Manager. You cannot reload or navigate to a different page.

#18940 Error on programatticaly load of dojox.charting.widget.chart DojoX Widgets 1.14 defect Dec 19, 2016


Store is defined by dojo.data.itemFileReadStore or dojox.data.QueryReadStore?.

Error: dojo/parser::parse() error TypeError?: Cannot read property 'sort' of undefined.

#18967 TabContainer regression Dijit 1.14 defect Jan 26, 2017

Comments from Ken Feldt on the mailing list:

I have an application with tabs that was working with dojo 1.10.6, but broke with dojo 1.11.2 and beyond...

The problem involves some mathjax (a mathematic rendering engine) that is dynamically building one of the tabs.

At: https://read.electricbook.net/book/guest/1

  • click example problem 1 - 1 (along left side) --- actually any of the sample problems will do
  • you will see the mathjax message along the bottom of a 'curtain' that is raised when all rendering is complete
  • you see three tabs - Problem Statement, Solution, and e-Blink

That is how it is supposed to work (dojo 1.10.6)

Try the same thing with https://staging.electricbook.net/book/guest/1

  • you see the tabs start to draw OK, but once the math rendering is complete, the tab content seems to be shifted up signficantly. By clicking the third tab (e-Blink) all three tab content areas snap back into place

I will be happy to make some type of change to the code - but I thought I would just ask the question to see if anyone else has this problem.

Oh and....

The dojo page http://dojotoolkit.org/download/ identifies the googleapis server for 1.11.3 as the script reference to use in pages that want

to download from a remote server

The 'other downloads page' (http://download.dojotoolkit.org/) states 1.12.1 is the latest stable release, and as the latest prerelease The google api download page has neither - it holds the latest as 1.11.2


Will it be safe to point my code to http://download.dojotoolkit.org/release-1.12.1/dojo-release-1.12.1/ ?


And then confirmed from Nick Fenwick:

I cannot reproduce the error with a test case, I tried using TabContainer? and StackContainer?. However, our production app definitely has a similar problem to Ken's.

For now I'm having to put this into our main CSS file:

.dijitHidden {

visibility: inherit; display: none;

} .dijitVisible {

visibility: inherit;


Hopefully someone can see from Ken's online example what the problem is? I can see now that the position:absolute is supposed to remove the elements from the document flow and visibility:hidden makes them invisible, which certainly does work in the test cases I created, but fails for me and Ken in our production app.

#14940 dojox.charting.widget.Sparkline sizing is incorrect when in a templated widget Charting 1.15 defect Mar 4, 2012

Hi, when we have a widget that uses a template and we we create an instance of that widget, the sparkline contained in that widget defaults to a 400 (width) by 300 (height) dimension. It does so regardless of the size specified in the CSS for the div that will contain the sparkline. Here's my setup: I have a widgetA. that widget is a key performance indicator row. Among other things in that row I want to show a sparkline. Because I may have several KPIs to look at, there can be several instances of widgetA. So in widgetA I have a div that is going contain the sparkline. I want that div to be a certain width, controlled by CSS. Unfortunately regardless of the size i put in the CSS, the sparkline defaults to 400X300. This behavior happens when i use a template only. I have other divs that I put directly in the markup and whether I specify the CSS online or in a CSS construct, the sparkline sizes fine. I attach a test file where you can see three sparklines: 1 with the inline CSS, one where the CSS is specified in the CSS section and another one in a templated widget (the third one). As it stands, if we cannot control the size of a sparkline widget from CSS it's a significant inconvenience as that would mean we cannot dynamically create instances of several rows that can control sparklines. Thanks for looking into it.

#16309 dom-class::add() does not work on SVG elements Core 1.14 defect Nov 8, 2012

Using dom-class::add() on a SVG node such as <g> does not work, because add() uses node[className] instead of node[className].baseVal on line 163.

I'm not sure if this is a bug or an enhancement, but if I use element.setAttribute() instead it works fine, so I would expect add() to work too, since add() is expected to replace setAttribute().

#17853 dojo/request/node doesn't emit notify events IO 1.14 defect Apr 8, 2014

It appears that dojo/request/node does not emit any events using dojo/request/notify.

#18072 dojo/request/node response encoding IO 1.14 defect Jun 4, 2014

Found that the data coming from the server do not match the encoding. Executes the query over:

Code highlighting:

var _bind = function (url, content) {
    return request(url, {
        headers:         {
            "Content-Length": Buffer.byteLength(content),
            "Content-Type": "text/plain;charset=UTF-8",
            "Accept-Encoding": "UTF-8",
            "User-Agent": "E",
            "Accept-Charset": "UTF-8"
        formData:        undefined,
        data:            content,
        query:           "",
        handleAs:        "text",
        method:          "POST"


Code highlighting:

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="..." xmlns:xsi="..." xmlns:SOAP-ENC="...">
        <SOAP-ENV:Body SOAP-ENC:encodingStyle="...">
                <NS1:GetAvailableHotelListResponse xmlns:NS1="urn:webservice-electrasoft-ru:types-twsReservationServiceIntf-ItwsReservationService">
                        <return xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[2119]">
                                <item>Ате��ика Гамма курорт</item>
                                <item>Горная Грузия 12 дней</item>
                                <item>Georgia 3_5дней</item>
                                <item>Новотель Шереметьево</item>

What a � character?

I thought about it a little: http://nodejs.org/api/http.html#http_http_request_options_callback

In the end, making a small change in the dojo/request/node:

Code highlighting:

      req.on('response', function(clientResponse){

After that I got the desired result:

Code highlighting:

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="..." xmlns:xsi="..." xmlns:SOAP-ENC="...">
        <SOAP-ENV:Body SOAP-ENC:encodingStyle="...">
                <NS1:GetAvailableHotelListResponse xmlns:NS1="urn:webservice-electrasoft-ru:types-twsReservationServiceIntf-ItwsReservationService">
                        <return xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[2119]">
                                <item>Ателика Гамма курорт</item>
                                <item>Горная Грузия 12 дней</item>
                                <item>Georgia 3_5дней</item>
                                <item>Новотель Шереметьево</item>

I'm not sure about the competence of the decision, but would love to see any result on this issue in the upcoming version.

Thank you very much! ..sorry my poor English

#18234 [regression] JSON-RPC-2.0 with unnamed parameters is broken RPC 1.14 defect Aug 21, 2014

The fix for ticket #16153 breaks our JAVA and C++-based JSON-RPC services, which are based on JSON-RPC 2.0 but do not support named method parameters.

According to


the client must issue a call with ordered parameters.

However, a call with an object containing the first parameter and an 'undefined' key is issued.

It turns out, that the code in Service.js does not check, whether the parameters in the SMD specify a name. Hence, na named parameter call is unconditionally enforced, when 'namedParams: true' is set in the envelopeRegistry.

#18274 dojox/editor/plugins/LocalImage fileMask does not work correctly Editor 1.14 defect Sep 18, 2014

Say you have an editor, and you're using the LocalImage? plugin, and you specify a fileMask value of '*.jpg;*.png'

If you enter a URL for an image:


the fileMask says that the file extension is invalid. To work correctly, the code that checks the mask needs to strip off everything after the question mark.

For example:


#18450 Update committer workflow to reference running tests with Intern Documentation 1.14 defect Jan 11, 2015

Should http://livedocs.dojotoolkit.org/developer/github be updated to reference instructions for running Intern (for Dojo core tests) before committing?

#18587 [patch][needs test] JS Error during load of iframe with style "display:none" in Firefox HTML 1.14 defect May 4, 2015

During load of an iframe with "display:none" a js error occurs cause getComputedStyle returns null for elements in this iframe.

Error occurs in dojo/hccss.js line 32

Following change in dojo/dom-style.js line 49 fix the problem:

- node.ownerDocument.defaultView.getComputedStyle(node, null) || {} : {};
+ (node.ownerDocument.defaultView.getComputedStyle(node, null) || {}) : {};

#18708 Client-Side XSS Bug in Grid Filter DojoX Grid 1.14 defect Sep 16, 2015

I noticed this bug in 1.9.7, but other versions may be affected as well.

When you use a filter with an EnhancedGrid?, you can insert some JavaScript? as the value and it will be executed. This is because the value is being displayed at the top of the Filter dialog and isn't properly escaped.

#18729 Google's CDN - "latest" version pointers no longer work Documentation 1.14 defect Oct 6, 2015

See this page - https://developers.google.com/speed/libraries/#troubleshooting

Since 1.8.3 (ish), the automatic pointers no longer function. Consequently, specification of "1.9" or "1.10" won't work at all, and "1" still points to "1.6.1".

I'd suggest removal of the section recommending this usage, and aligning with Google's recommendation - specific version usage.

#18912 check for isWindow in scroll for FF not correct Dojox 1.14 defect Oct 18, 2016

FF at somepoint added a scrollTo function on elements returns by dom.byId(). this causes this check to return an element is a window in FF.



isWindow = args["win"] == window.self

be a better check?

#18922 dojo/request/node does not trigger notify.onsend Events 1.14 defect Nov 22, 2016

The following code should trigger an breakpoint - it does not.

], function (node, notify) {
    'use strict';

    notify('send', function () {


Recommendation to add the following to line 72 of dojo/request/node

    util.notify.emit('send', response, def.cancel);

#18949 Select-Tag doesn't show Options, because it gets prevented (by gesture) H a p p y N e w Y e a r Dojox 1.14 enhancement Dec 29, 2016

dojox/gesture/Base.js ln:268

<select>-Tag is missing in following code. Would you Please include it until next release?

// invoking gesture.press()|move()|release()|cancel()
// #16900: same condition as in dojo/touch, to avoid breaking the editing of input fields.
	if ((e.target.tagName != "INPUT" || e.target.type == "radio" || e.target.type == "checkbox")
        && e.target.tagName != "TEXTAREA") {

I simple took previous code inside the following condition.

if (e.target.tagName != "SELECT") {


Now my select-tags show their options, again.

#18956 invalid out-of-date-check in dojo/store/Observable Data 1.14 defect Jan 17, 2017

following scenario:

observable-json-rest store with one active, observed query.

a array of updates flys in by e.g. cometd.

var store = Observable(new JsonRest({..}));

on("message",function(data) {
  array.forEach(data,function(item) {

while processing the messages, on certain updates, the application logic triggers a new query on the store...(in my case, a dgrid starts to preload new pages of items)

var result = store.query(....);
result.observe(function() {
  //do something...

the store then triggers an async server request. the store.notify() loop still continues to update the store.

when the query-result is available, I get following error in the console.

Query is out of date, you must observe() the query prior to any data modifications

If you take a look at the dojo/store/Observable implementation:

-) store.revision is updated on every store.notify() call

-) the query-updaters are called on every store.notify() call, but use

when(results, function(resultsArray){
...process updates...

therefore, the actual processing of the notification may also be async. in the meantime, N more notifies may cause the store.revision to be bumped up.

when the result is finally ready, the query-revision may never be up-to-date, even though the result.observe() setup is always correct.

IMO the check for the revision should be performed immediately when the updater is invoked.

queryUpdaters.push(queryUpdater = function(changed, existingId){

	if(++queryRevision != revision){
		throw new Error("Query is out of date, you must observe() the query prior to any data modifications");
	when(results, function(resultsArray){
		var atEnd = resultsArray.length != options.count;

#18964 dojox scrollableview in android devices is not working DojoX Mobile 1.14 defect Jan 24, 2017

dojox/mobile/ScrollableView (1.10+) in a cordova application have some scroll issues, which I have started observing recently and its only happening in android phones. We are currently using widget-based architecture. Even some of the store apps are facing this issue. Even we tested the below url of dojo and we are facing the same issue when we inspect it in chrome and view it in mobile mode (adding it for reference) http://demos.dojotoolkit.org/demos/mobileGallery/demo-ios7.html Please resolve/update/suggest on the above issue.

#18966 Label placement in StackedBars and StackedColumns Charting 1.14 defect Jan 25, 2017

Ever since 1.11.1 label placement in the StackedBars? and StackedColumns? is centered based on the chart origin instead of the bar/column shape origin. In 1.10.4 the labels were placed as expected. I found this as I am trying to update an existing application.

#18981 Child popup closes parent popup when mouse left click duration reaches certain threshold value Dijit 1.14 defect Feb 22, 2017

Received this issue via email as trac was flagging it as spam:

Inside a tooltip dialog that is opened using a popup, I have a button that opens a color picker also using popup. If I click a color cell rapidly the color picker closes, and the parent dialog remains opened. If I hold the mouse button for a longer period of time on a color cell, when I release the mouse, the color picker popup closes and then the parent tooltip dialog closes along with it.

This issue does not occur if I debug the code and put a breakpoint in the color picker popup onExecute() method. Pausing the execution seems to prevent propagation of the close event to the parent popup.

Below is my code to open the color picker - where fontTextColorNode is a button in a parent popup dialog.

            on(this.fontTextColorNode, "click", function (event) {


                var myPalette = new ColorPalette(


                    palette: "7x10",

                    onChange: function (val) {


                        console.log("selected color", myPalette.value);


                        that._set("color", myPalette.value);


                        formElementController.setPropertyValue(that.parentWidgetId, "color", myPalette.value);




                myPalette.on("blur", function () {





                    parent: that,

                    popup: myPalette,

                    around: that.fontTextColorNode,

                    orient: ["below"],

                    onExecute: function () {



                        console.log("closed myPalette");


                    onCancel: function () {






#18983 Mouse click activating DropDownButton: unable to use arrow keys for navigation Dijit 1.14 defect Feb 27, 2017

When using a mouse click a DropDownButton? that has a Menu associated with it, one cannot use the arrow keys to highlight the menu items.

After some analysis, I noticed this changed occurred for Dojo 1.9 (and later releases), and appears to be backported to a version of 1.8 (1.8.10 has same behavior as later releases). Using 1.7.5, the better (IMO) behavior occurs where one can use the arrow keys as keyboard focus is switched to the menu raised.

Examing the source, it appears the changes for ticket #11800,


is the culprit behind the behavior change.

Comparing with traditional applications, the behavior in 1.7 (and earlier) is consistent: regardless if menu was raised by a mouse click or a keyboard event, the keyboard can be used to navigate menu items. The newer behavior is not consistent with common practice.

Looking at the description of for #11800, I think the solution adopted goes contrary to behavior intent. First line of #11800 description:

If you right click on a page in Firefox, you get a context menu where no item is highlighted. The arrow keys still work; hitting down arrow hightlights the first item...

Note that, "arrow keys still work." With the code changes, they no longer do so. I think the original submitter was not asking for arrow key selection to no longer work, just that there is no initial item highlight.

Another related behavior change that occured between 1.8.x and 1.9.x is arrow key navigation does not work in 1.9 and later even if you hover mouse over a menu item. In versions 1.8 and prior, click to popup/dropdown menu, move mouse over first item. You can then use arrow keys move highlight to other menu items. In 1.9, this is no longer the case.

I have not been able to find the specific code changes between 1.8 and 1.9 that lead to this behavioral change.

This change a behavior goes contrary to normal GUI based applications. For example, in native GUI apps, arrow-key-based higlighting of a menu item will always work, regardless of how the menu was raised or how a menu item was highlighted (e.g. mouse hover).

The following messages to the mailing list were posted months ago regarding this issue, but no responses received: http://mail.dojotoolkit.org/pipermail/dojo-interest/2016-September/085272.html http://mail.dojotoolkit.org/pipermail/dojo-interest/2016-September/085274.html

#18984 Tree keydown event handling is flaky Events 1.14 defect Mar 3, 2017

Five out of the six ways I know of to make a keydown event handler on a Tree seem to be unreliable, starting in dojo 1.9.1. This was observed using chrome version "57.0.2987.74 beta (64-bit)" on a macbook pro, using dojo 1.9.1, 1.9.10, 1.10.1, 1.10.7, 1.11.1, 1.11.3, 1.12.1. (It seems to work properly in 1.8.13.)

I'll attach a test program that demonstrates, using key handlers connected in various ways.

I didn't bother with anything involving dojo.connect(), since that's deprecated. And I didn't set tree.onKey*, since that apparently prevents tree.on(...) and on(tree, ...) from working. That leaves six other ways to do it (I think):

  • (A) Tree ctor params.onKey* = function(e){...}
  • (B) tree.on('key*', function(e){...})
  • (C) on(tree, 'key*', function(e){...})
  • (D) on(tree.domNode, 'key*', function(e){...})
  • (E) tree.domNode.onkey* = function(e){...}
  • (F) tree.domNode.addEventListener('key*', function(e){...})

Only (A) seems to work reliably. To demonstrate, load the page and do the following:

  1. Click anywhere on the tree to give it keyboard focus
  2. Press-and-quickly-release the 'j' key
  3. A quarter-second later, press-and-quickly-release the space bar.

Console output is as follows. Note the missing handler calls (B)-(F) on the keydown of the Space bar.

    (+3.209525s) (A) tree ctor params.onKeyDown: KeyJ
    (+0.000840s)  (B) tree.on 'keydown' callback: KeyJ
    (+0.000380s)   (C) on tree 'keydown' callback: KeyJ
    (+0.000385s)    (D) on tree.domNode 'keydown' callback: KeyJ
    (+0.000330s)     (E) tree.domNode.onkeydown: KeyJ
    (+0.000280s)      (F) tree.domNode.addEventListener 'keydown' callback: KeyJ
    (+0.001215s) (A) tree ctor params.onKeyPress: KeyJ
    (+0.001900s)  (B) tree.on 'keypress' callback: KeyJ
    (+0.000445s)   (C) on tree 'keypress' callback: KeyJ
    (+0.000320s)    (D) on tree.domNode 'keypress' callback: KeyJ
    (+0.000285s)     (E) tree.domNode.onkeypress: KeyJ

#18994 DropDownList pupup is in the wrong position on Windows 10 touchscreen laptop. Dijit 1.14 defect Apr 1, 2017

This problem is occurs on a Windows 10 touchscreen laptop.
There is a dropDownList on a page.

1.After the page is initialized,click the dropDownList using the touchscreen,and the menu pops up.
2.Use two fingers to zoom in the page,and move the dropDownList using the touchscreen.
3.Click the dropDownList using the touchscreen,and the popup is in the wrong position.

After step 2,the origin position has been changed,dojo should have recalculated the origin position,but in fact it didn’t do that,so that there is a origin offset.
I can't show real information in our product,but I made a picture to explain more clearly.

#13021 Body text selection broken after GridContainer drag and drop DojoX Layout 1.15 defect critical May 20, 2011

After clicking or dragging a TitlePane? in a GridContainer?, text selection for the document body no longer works until the browser is refreshed.


1) Open demo example above 2) Select portlet text - works fine 3) Click/Drag? titlepane 4) Select portlet text - no longer works

To resolve this, remove line 90 in dojox/mdnd/Moveable.js or restore onselectstart.


Text selection does not occur with this line removed, so it is not necessary.

#14636 Chained animation not so chained fx 1.15 defect major Jan 18, 2012

A chained animation works fine on the first run. But after it has finished once, calling .start() on it again, the chained animation is not working right. It appears to only ever play the last entry in the array (found that out after switching them around) anymore.

Demo by Karl Tiedt here: http://jsfiddle.net/W7sjf/ My code example: http://pastebin.com/PRWviFhf

#13357 ObjectStore: isItem(item) could also test for identity Data 1.15 defect minor Jul 3, 2011

Checking if object is a data.store.item in ObjectStore.isItem() could also use getIdentity(item) to determine if it belongs, e.g:

return (typeof item == 'object') && item && !(item instanceof Date) && this.getIdenty(item);

#4782 [patch][ccla]IFrame relative offset problem in dojo.coords() HTML 1.15 defect normal Oct 18, 2007

It seems that when I want to use/draw a widget inside an IFrame Dojo (version 0.9.0) does not take into account the relative position of the IFrame in the parent page. This causes popups like Tooltips to appear outside of the IFrame. This testcase should demonstrate the behaviour:

<script type='text/javascript'
djConfig=' isDebug: true, usePlainJson: true' src='dojo/dojo.js'></script>

<script type='text/javascript'>
dojo.addOnLoad(function init() {
  window.frames["frm"].document.write("<html><body><div id='tip0'>hover</div></body></html>");
  var id = window.frames["frm"].document.getElementById('tip0');
  var c = dojo.coords(id);
  console.log("x: " + c["x"] + "  y: " + c["y"]);
<body class="tundra">
  <iframe name="frm" id="frm" width="300" height="300" frameborder="0"
    scrolling="yes" style="position:absolute;left:200px;top:200px;"></iframe>

The (x,y) coordinates of the element should take into account the IFrame offset.

Thank you!

  • Amir

#8919 [patch] Charts within different documents throw an error DojoX GFX 1.15 defect normal Mar 18, 2009

When you have two dojox.charts each within its own iFrame, the second one throws an error, because the measuringNode in dojox.gfx._base._getTextBox is on the wrong document.

I tested this with Dojo 1.2.3, but the affected file _base.js is unchanged at the respective place in HEAD (as of today).

(also affected seems to be dojox/sketch/Annotation.js)

Solution: if the currently stored measuringNode (for finding out the DPI used) is on a different document than dojo.doc, throw it away and create a new one.

Throwing away the old node is necessary, as otherwise you would create additional measuringNodes on each document each time you switch back and forth between the documents. An alternative would be to set an id and retrieve the node back by id, or store the measuringNodes in an associative container where the document is the key.

#9884 [patch] [cla] Layout-aware Toolbar DojoX Widgets 1.15 enhancement normal Sep 14, 2009

This is a feature suggestion, for either dijit.Toolbar or a dojox variant, where the toolbar can push items that dont fit in the available space into a dropdown menu, similar is spirit to the recent TabContainer? enhancements.

I'm attaching a zip with a prototype. It shows a widget that can map Button widgets to MenuItem? widgets, and implements the layout-widget interface to allow re-drawing the toolbar to fit.

Further work is needed to support different toolbar child-types, like seperators, dropdown buttons.

Also, its been suggested that there should be an option to either create menu items for all toolbar items, or to only create them for toolbar items that are hidden.

#10347 [patch][cla] dojox.date.Timezone - add support for guessing browser timezone Dojox 1.15 enhancement normal Nov 16, 2009

Would be nice to have support for guessing the browser's timezone. This can be done by grouping based off of key offsets

#10348 [patch][cla] dojox.date.Timezone - add support for forcing the timezone to be displayed Dojox 1.15 enhancement normal Nov 16, 2009

Even if the locale doesn't contain the timezone in the timeFormat string, add it according to locale rules

#10349 [patch][cla] dojox.date.Timezone - add a djConfig variable for formatting *all* times according to timezone Dojox 1.15 enhancement normal Nov 16, 2009

something like

djConfig.dojoxTimezone = "America/Denver"

would format all times using the America/Denver? timezone.

#10369 [patch][cla] dojox.date.Timezone - make parameters optional to getTzInfo Dojox 1.15 enhancement normal Nov 19, 2009

If date is missing, use current time, if timezone is missing, guess the current timezone (see #10347 for the current timezone guessing)

#10644 dojox.form.BusyButton label can't be changed permanently DojoX Form 1.15 defect normal Jan 19, 2010

BusyButton? makes a copy of the label at postCreate and each time the cancel method is called it restores that copy overwriting any change you could do to the button's label.

Attached are two patches, one with a possible fix and another with a test for this.

#10691 windowName transport is not working on HTTPS to HTTP configuration using FireFox Dojox 1.15 defect normal Jan 29, 2010

dojox.io.windowName.send fails to POST data when the local host is https and the remote host is http in Firefox. I believe this is happening because FireFox? is displaying a warning message to the user about sending unencrypted data from an encrypted site. FireFox? uses the about:blank location while waiting for the user’s input to this warning message. The windowName transport then tries to navigate back to the local domain and grab the data out of about:blanks’s window name, which doesn’t exist . I think this is a simple fix. It looks like this case is already handled for every browser except FF

Take a look at the following code from windowName’s onload function:

if(!dojo.isMoz && frame.contentWindow.location =='about:blank'){

opera and safari will do an onload for about:blank first, we can ignore this first onload



I think all that needs to be done here is to remove the isMoz condition.

if(frame.contentWindow.location =='about:blank'){

opera and safari will do an onload for about:blank first, we can ignore this first onload



OS - Windows Browser version - Firefox 3.5 Dojo Build - 1.2.3

#11009 [patch][cla][needs AMD conversion] coyotepoint-patch:chartImage-Require gif image support in charting Charting 1.15 enhancement normal Apr 20, 2010

Issue-In charting I was unable to show gif image instead of SVG.

Resolution- I created Custom.js with help of Default.js.I am assuming i'll get addSeries data in following format.

{x:6,y:4,image:'./images/alert.red.gif',width:20,height:20,tooltip:'tooltip message'}

I am attaching patch file as well as original code with testing html file.

#11212 [patch]dojox.validate.isUrl doesn't validate certain urls correctly Dojox 1.14 defect normal May 25, 2010

It looks like dojox.validate.isUrl doesn't return true if a url has multiple symbols in a row, even if the url is valid. For example, it returns false on all of the following:

http://www.mysite.com/#bla http://www.mysite.com/?bla=x http://www.mysite.com/bla/?x=y http://www.mysite.com/bla/#x

The key there is the ending slash, followed immediately by either a ? or #.

#11435 dojox.validate.regexp.url is too specific with fragment identifiers Dojox 1.14 defect normal Jul 13, 2010

The fragment identifier is validated as such:


These days any character is used in the fragment identifier, for example the #! combo supported by Google. Also, URLs simply ending in # are treated as being invalid.

Can we change it to this instead?


#11525 Legend image for plot on graph shows nothing DojoX Widgets 1.15 defect normal Aug 3, 2010

The legend in version 1.5.0 isn't displaying properly under certain conditions. For example, add a plot to any graph like (must have lines: false for error to appear):

NOTE: the series description shows up in the legend but no image.

chart1.addPlot("test", {type: "Default", lines: false, markers: true});

See attached test.html file.

#11709 [patch][ccla][needs AMD conversion] Chart 2D: Axis Break Charting 1.15 enhancement normal Sep 9, 2010

Axis breaking allows user to manually specify a break in the chart axis, it's useful when there are some items are far too larger than most other items in a chart, it makes possible to see the difference between smaller items much more clearly.

chart.addAxis("y", {
vertical: true,
breakAt: {from: 150,to: 980},

And there is one testcase in the patch

#11758 dojox GridContainer DragHandle Problem DojoX Layout 1.15 defect normal Sep 20, 2010


GridContainer? with DragHandle? doesn't work properly when child ContentPane? contents set by href.

I attached the test case you can compare set('content', '...') and set('href', '...') behavior differenence.

#11785 [patch] ThumbnailPicker does not scroll to "next" page if last image on current page ends exactly at the right side of the scroller Dojox 1.15 defect normal Sep 27, 2010

In one of my test cases I have noticed, that the ThumbnailPicker? would not scroll to the "next" page due to a special situation which can occur quite often:

If on the current page the last image is the last yet loaded image and ends exactly with the right border of the scrollable area the widget does not scroll to the next page because


is never called as the if statement within the for loop in the _next function never evaluates to true.

I fixed this in my project with the following two changes:

1.) Add a this._showThumbs(this._thumbs.length - 1); after the for loop in _next()

2.) remove the already questioned if statement from _showThumbs() in line 376 (the one with the FIXME: WTF ...)

This removes the problem with the special situation and as far as I could test the widget (and this was pretty much) does not have any other side effects.

#11794 [patch] Added method "getWidgetPosition" for GridContainer DojoX Layout 1.14 enhancement normal Sep 28, 2010

The GridContainerLite? has a new method which can be used to get the position in a column easily.

This is very important when one wants to save the order of widgets in the grid.

It might be left to discuss whether one should return an array a la { column: widget.column, pos: <pos here> }. Because as of now, one needs to call <widget>.column separately to get the column the widget is in.

I have pushed to GitHub?. This can be found here:


#12164 Browser back button has iframe history for dojo.io.iframe IO 1.15 defect normal Jan 15, 2011

After uploading files by dojo.io.iframe the browser requires some extra back-button presses to get to the previous page. The number of presses is the same as the number of files uploaded. This seems to be related to the iframe having it's own history.

I have hacked this for myself by deleting the iframe after the file has uploaded, thereby deleting the history; But I don't think this is the 'right' way (I have limited javascript experience).

NB dojo.io.iframe does multiple file uploads (queued?) that this will probably break..

window.dojoIoIframe=null; dojo.body().removeChild(dojo.io.iframe._frame); dojo.io.iframe._frame=null;

This is a problem in Firefox 3.68 and IE 8.0 for me.

#12182 Dojox.charting.DataChart doesn't support x,y coordinants from server Charting 1.15 defect normal Jan 19, 2011

It appears that DataChart?.js has some typecasting that causes x,y coordinate data to not work even though they work in Chart2D.

Lines 400 (ar.push(Number(field));), 411 (this.seriesData[nm].push(Number(field));), and 413 (this.seriesDataBk[nm].push(Number(field));) all use a typecast to Number() which causes series that are in the format of {x:3,y:4} to not work in DataChart?.

Removing the Number conversion around field seems to fix the problem although for safety it may be better to check the data to see if it's a coordinate if so then cast both x and y to numbers, if not cast the whole object.

#12346 missing node on overlay after _handleSend() DojoX Form 1.15 defect normal Feb 24, 2011

dojox.form.FileInputAuto?._handleSend() removes this.overlay.firstChild (that was previously changed to display the upload message) but never restores the original blank text node ("&nbsp;). Thus, when _sendFile() is invoked another time (if an error occurred at first attempt), it will fail trying to remove a missing node.

I would suggest to change:

	_handleSend: function(data,ioArgs){
		// summary: The callback to toggle the progressbar, and fire the user-defined callback

		// innerHTML throws errors in IE! so use DOM manipulation instead

		// ...


	_handleSend: function(data,ioArgs){
		// summary: The callback to toggle the progressbar, and fire the user-defined callback

		// innerHTML throws errors in IE! so use DOM manipulation instead

		// ...

#12599 dijit.Editor in dojox.layout.TableContainer resize/layout bug DojoX Layout 1.14 defect normal Apr 4, 2011

When a dijit.Editor is placed in a dojox.layout.TableContainer, an exception is raised, because the editor's layout method expects a "_contentBox" attribute to be set on the instance, but in this case it is not (see attached test case).

The Editor seems to assume that the layout widget will call its resize method and pass in an argument; the TableContainer calls resize without passing in any arguments.

We've worked around this in our code with the following:

editor.resize = function () {
        editor, arguments);

#12633 dojox.form.MonthTextBox ignores min/max constraint DojoX Form 1.15 defect normal Apr 10, 2011

dojox.form.MonthTextBox (as well as other dojox date pickers) ignores min/max constraint

#12634 dojox.form.MonthTextBox ignores datePattern constraint DojoX Form 1.15 defect normal Apr 10, 2011

The only output dojox.form.MonthTextBox? is capable of producing is the month selected on the widget.

But the widget itself allows to choose not just a month but a year. There is no way for the year chosen by the user to be propagated to the widget output.

If you're allowing users to choose year in the widget you should allow the year to be retrieved from the widget instead of ignoring it.

The logical way to do that would be via datePattern. It is hardcoded to 'MM' but even if you change it to anything else it doesn't work because even the hardcoded pattern seems to be ignored by the widget.

#12716 Selection error in dojox.widget.RollingList DojoX Widgets 1.15 defect normal Apr 19, 2011

When I link my FireFox version 4.0 to:


and click "North America", the first item ("Africa") stays highlighted (though it does open the correct secondary pane).

When I then click "United States of America", I get an error in FireBug: "ret is null" with a pointer to RollingList.xd.js (line 8)

Similar behaviors in IE 8. And it's also happening to me when I try to use the RollingList on my local pages using dojo 1.5 or 1.6.

I hope I gave enough information; and I hope I adequately searched the existing bugs. This is my first bug report.

#12747 Nested object serialization with objectToQuery IO 1.15 defect normal Apr 22, 2011

Apparently dojo has no ability by default to serialize regular nested objects via dojo.objectToQuery.

Right now doing this:

dojo.objectToQuery({user: {username: 'lyle', password: 'testing'}});

will generate the query:

user=[Object object]

This is useless to everybody. The generally accepted solution is the following:


This is how PHP and Rails expect nested objects, and it's how Zend and Rails build their forms by default. This is also how jQuery serializes nested objects.

This may not be the perfect solution, but you shouldn't get garbage when you put nested objects into objectToQuery.

Also, I noticed that in an older version of node.js this syntax was expected for nested objects, but at some point it has changed to no longer accept it in the way I've outlined. I don't know why that is but I'm plenty curious.

#12930 ref.js resolveJSON schema look fails for object id's with [ or / characters Dojox 1.15 defect normal May 13, 2011

In the ref.js, resolveJSON method, it makes use of a regular expression to find what I believe is the prefix for the absolute id, it then uses this to lookup the schema in this list of schemas. This code is shown below:

if(args.schemas && (!(it instanceof Array)) && // won't try on arrays to do prototypes, plus it messes with queries 
(val = id.match(/^(.+\/)[^\.\[]*$/))){ 
    schema = args.schemas[val[1]];

If the object id contains a ',?' or '/' character, the result of the regular expression val[1], does not represent the prefix of the absolute id and the regular expression fails. So an id of the form:


Would fail to have its prefix detected, and its schema would not be picked up.

Would it be possible to enchance this so such object id, would succefully resolve. I probally am missing a larger designer here, but in this scenario, could the prefix parameter that is passed in not be used to do the schema lookup as opposed to cracking the id with this regular expression?

#12982 GridContainer offsets column index when manually organized DojoX Layout 1.15 defect normal May 18, 2011

When creating a manually organized dojox.layout.GridContainer? (isAutoOrganized: false) programmatically to place widgets in specific columns the error "Unable to insert child in GridContainer?" appears in the console for widgets placed in column 0.

It appears the addChild method assumes a zero-based column index, but the _organizeChildrenManually method assumes a one-based column and thus subtracts 1 from the column before calling _insertChild to re-arrange child widgets.

Another effect is that it's impossible to place widgets in the last column.

Example to reproduce:

dojo.addOnLoad(function() {

var cpane1 = new dijit.layout.ContentPane?({ title:"cpane1", content: "Content Pane 1 : Drag Me !" }),

cpane2 = new dijit.layout.ContentPane?({ title:"cpane2", content: "Content Pane 2 : Drag Me !" }), cpane3 = new dijit.layout.ContentPane?({ title:"cpane3", content: "Content Pane 3 : Drag Me !" });

var gridContainer = new dojox.layout.GridContainer?({

nbZones: 3, isAutoOrganized: false

}, dojo.byId("rootNode"));

gridContainer.addChild(cpane1, 0, 0); gridContainer.addChild(cpane2, 1, 0); gridContainer.addChild(cpane3, 2, 0); gridContainer.startup();


#13071 ThumbnailPicker reload html as image Dojox 1.15 defect normal May 25, 2011

At template (source:dojox/trunk/image/resources/[email protected]),

<img src="" dojoAttachPoint="navPrevImg"/>
<img src="" dojoAttachPoint="navNextImg"/>

so empty img src cause reloading html as image. It should be src="${_blankGif}".

#13143 [patch] dojo.dnd.Moveable publishing before updating DnD 1.15 defect normal Jun 1, 2011

in dojo.dnd.Moveable onMoveStart and onMoveStop, addClass and removeClass are called AFTER the publish. The problem is that some widgets like Dialog use those classes to check if the item is moving or not, checking if body has a class dojoMove for example.

In some cases, due to some race conditions, onMoveStop publishes, a subscriber is triggered, call a function which checks dojo.body classes, and find dojoMove, then do not do the expected modifications. Tha happens because the removeClass is done after the publish.

        onMoveStart: function(/* dojo.dnd.Mover */ mover){
                // summary:
                //              called before every move operation
                dojo.publish("/dnd/move/start", [mover]);
                dojo.addClass(dojo.body(), "dojoMove");
                dojo.addClass(this.node, "dojoMoveItem");
        onMoveStop: function(/* dojo.dnd.Mover */ mover){
                // summary:
                //              called after every move operation
                dojo.publish("/dnd/move/stop", [mover]);
                dojo.removeClass(dojo.body(), "dojoMove");
                dojo.removeClass(this.node, "dojoMoveItem");

The solution would be to simply do the css modifications BEFORE publishing, which is also more logical. To solve this, we just need to modify the code like this :

        onMoveStart: function(/* dojo.dnd.Mover */ mover){
                // summary:
                //              called before every move operation
                dojo.addClass(dojo.body(), "dojoMove");
                dojo.addClass(this.node, "dojoMoveItem");
                dojo.publish("/dnd/move/start", [mover]);
        onMoveStop: function(/* dojo.dnd.Mover */ mover){
                // summary:
                //              called after every move operation
                dojo.removeClass(dojo.body(), "dojoMove");
                dojo.removeClass(this.node, "dojoMoveItem");
                dojo.publish("/dnd/move/stop", [mover]);

#13303 [patch][cla] FloatingPane defect on resize browser window (on FF) DojoX Layout 1.15 defect normal Jun 24, 2011

I create a floating pane; show it; then move it to another position (via mouse). Now I resize the browser window (via mouse) (or maximize it, or restore it from maximize). The floating pane return to its original position This not happen when I minimize and restore browser window.

I'm using 1.6.1 and FF5. This noo happen in 1.6 (from Google CDN) This not happen in IE8

I attach file (copied from your example doc)

#13724 _insertAfter can be removed in dom-construct HTML 1.15 enhancement normal Aug 18, 2011

the following line:

_insertAfter(node, refNode);

can be replaced with:

_insertBefore(node, refNode.nextSibling);

this works correctly even if refNode is the last element

#13958 Add HTML5 history support to dojo.hash Core 1.15 enhancement normal Sep 20, 2011

I've been working on adding HTML5 history support to dojo.hash to enable RESTful URLs in Ajax applications. I've come up with a set of overrides to dojo.hash that enable this to work in my app, but I'm wondering if there's value in pushing this into dojo so that the greater community can benefit.

Here's a blog post describing the solution:


#14379 [patch][cla] GridContainerLite - publish restriction only on keyboard event DojoX Layout 1.15 defect normal Dec 3, 2011

In testGridContainerLite.html a function is connected to "/dojox/layout/gridContainer/moveRestriction", which is only publish on keyboard event.

This patch add publish from mdnd and then !gridContainerLite resend it.

#14481 dojo.fx.wipeOut onEnd race condition due to connect() fx 1.15 defect normal Dec 15, 2011


If you look at that line of code you will see the wipeOut() connects to the anim.onEnd to do final styles on the node... if you are doing a wipeOut -> <do some dom manipulations> -> wipeIn trigged off onEnd of the wipeOut you are forced to set a 0ms setTimeout or the styles from the connect will get set AFTER the wipeIn begins (as long as the arbitrary code in the middle doesnt take more than a cycle or so)

Interestingly enough, dojo.fx.chain() of the 2 anims works, but I lose the ability to run code between the transitions

#15112 Application-Controller-Pattern: Provide an example for shared methods of different page-level controllers Documentation 1.14 enhancement Apr 1, 2012


The tutorial on the application controller pattern (http://dojotoolkit.org/documentation/tutorials/1.7/recipes/app_controller/) is a very good and helpful one. I tried to use it in my first project so as to improve code structure and readability. But soon I came up with one limitation of that pattern: My application consists of several pages (and thus several separate page-level controllers). However there are some functions/methods which are always the same on each page (e.g. for initialization of the top navigation). I.e.: There are some "static" methods shared by all controllers. At the moment I have copied and pasted these functions. But that is surely not the way to go: If I have to change the code, I need to change it in all controllers.


Yet unclear - for me as Dojo newbie - how to implement this. I tried to introduce a _BaseController class, and all page controllers inherit from this base controller class now. This gives me the full power of class inheritance and the usual way to call functions (using this.myFunc() instead of just myFunc()).

#15529 dojo.hitch documentation confuses scope with context Core 1.14 defect Jun 19, 2012

The doc for dojo.hitch says:

"Returns a function that will only ever execute in the a given scope"

Where "scope" is mistakenly used instead of "context". This causes confusion by programmers using dojo.hitch and often leads them to use dojo.hitch when it is completely unnecessary. For example:

dojo.hitch(obj, obj.someFunction)();

Which is just a wasteful way to do:


#16218 dojo/data/ObjectStore save function Data 1.14 defect Oct 22, 2012

In the save function, when calling the onComplete function Callback, it must be better to pass the "value" args than the "actions" variable. The variable "actions" is not used in the function "save".

line 456 : kwArgs.onComplete.call(kwArgs.scope, actions value);

Deferred.when(result, function(value){
-->			kwArgs.onComplete.call(kwArgs.scope, actions); <--
	// on an error we want to revert, first we want to separate any changes that were made since the commit
	left = -1; // first make sure that success isn't called
	kwArgs.onError.call(kwArgs.scope, value);

Thx Regards

#16235 [patch] [cla] dojox/geo/openlayers AMD Dojox 1.15 enhancement Oct 24, 2012

The dojox/geo/openlayers currently requires OpenLayers? to be loaded through a <script> tag, breaking the principles of dynamic module loading.

Incidentally there is an option to build OpenLayers? for AMD compatibility in the recent evolutions (development version, to be included in the next release).

Dojox/geo/openlayers should be accepting the 2 options.

Proposed patches attached to this ticket, they consist of:

  • a loader plugin (maybeamd.js) which loads the AMD OL version, or just returns the globally defined one
  • minor modifications of the existing files, defining "OpenLayers?" as a local variable resulting of the plugin
  • README file describing the process involved, specifically a "openlayers-amd" configuration variable, set through dojoConfig or "has". If the "openlayers-amd" option is not set, OpenLayers? is retrieved form the global environment, a legacy fallback.

#16247 [patch][cla] New PasteFromWord plugin Editor 1.14 feature Oct 25, 2012

I've created a new PasteFromWord? plugin at Sitepen, and we would like to commit it.

One thing to consider (assuming it is approved) is whether this should replace the old one or if we should rename this. There may be a back-compat issue by swapping it out. Or maybe not? There wouldn't be a button on the toolbar.

The file and test is attached if anyone wants to look it over.

#16498 [patch] [cla] dojox/gesture should expose start/end coordinates Dojox 1.14 enhancement Dec 20, 2012

Especially when listening on larger elements, it might be important to know where exactly the gesture has happened, e.g. if the swipe was on the left or right half of the element. I think there's no reason to not simple expose those coordinates along with "dx" and "dy" (e.g. as "startX", "startY", "x" and "y").

#16499 [patch] [cla] dojox/gesture prevents native scrolling on touch devices Dojox 1.14 defect Dec 20, 2012

Native scrolling (e.g. via -webkit-overflow-scrolling: touch) on an element or any descendant that dojox/gesture listens on gets blocked by e.preventDefault(); in the _process function (line 267). Is that by intention? If not, can't we just get rid of the call to preventDefault()?

#17095 dijit/form/Select doesn't remove observe listeners when new queries are given Dijit - Form 1.14 defect May 1, 2013

There is a serious bug with dijit/form/Select's interactions with dojo/store/api/Store style stores that are wrapped with the dojo/store/Observable object. The setStore function of the Select tries to intelligently handle both the old style stores and these newer ones. What is supposed to happen is, I set a store using the setStore function. Through this function I will also pass a query for the select to use to filter out values to get only the ones I want in the select. While doing this, it registers with the observe function to get notifications of changes to those values represented in the query so the list of options are always up to date.

The problem I am having is, I need to be able to change the query dynamically depending on the user's interaction with my application. So I need to call setStore a number of times with different queries. This part seems to work until I update the store somewhere else. The problem is that the Select never deregisters the notifications being sent to it by the Observable wrapper for old queries. This results highly erroneous data being entered into the Select box's options list.

First, it will get results added which are outside of its current query, plus, depending on how many times I have called setStore, and how many times those calls utilize queries that match the data being added to the store, I will get multiple duplicate entries in the Select box's options list, one for each notification.

I was going to write up a test case to show you the problem, but after looking at the code in dijit/form/_FormSelectWidget.js file where the setStore function is defined, I figured I didn't need to. It is pretty obvious that the problem stems from the functionality not being fully converted over from handling the old style stores. First off, on line 351 (of dojo version 1.8.3) that starts with "this._queryRes.observe", the call to observe is done without capturing the returned handle. Without this handle, you can't remove the Observable's listener anyways. Secondly, an attempt to stop the listener does take place on line 307, but it is for the old style stores using the dojo/data/api/Notification close function.

I've written a diff that corrects this issue as well. It might not fit in with your naming conventions, so feel free to change the name of the internal variable where I stored the observe listener's handle.


#17512 Sniff android returns undefined on firefox android Core 1.14 defect Oct 16, 2013

While one firefox for the android, has("android") is returning undefined. It seems to be working fine on chrome and the android default browser.

I am running Firefox version 24.0. My tablet is Samsung Galaxy Note 10.1. Model Number: GT-N8013. Android version 4.1.2.

#17772 Should dojo/store/Cache return in-flight promises? Data 1.14 enhancement Mar 3, 2014

I was thinking that the dojo/store/Cache should return any in-flight requests to the master Store.

The following small change works for me in my situation. I was thinking it could work for others.

#18598 dojo/request CORS documentation Documentation 1.14 defect Jun 5, 2015

In following the common practice of setting the "X-Requested-With" header field on all XHRs, dojo/request sort of sabotages CORS requests by triggering them to all require preflighting. It's up to the developer to prevent this by manually clearing the "X-Requested-With" header field when crafting the request.

#18609 IE < 11: Loader inconsistently runs factory synchronously for module with no deps Loader 1.14 defect Jun 18, 2015

Most browsers, including IE 11, will run a module's factory function on the next turn, even if that module has no dependencies. This is not true for IE < 11, which takes a different code path.

Test case: https://gist.github.com/kfranqueiro/7e3c9594918dbc3bea32

On modern browsers, this logs:

after factory in factory all loaded

In IE < 11, this logs:

in factory all loaded after factory

(Note that I've only been testing this in async mode specifically.)

I played around initially with wrapping https://github.com/dojo/dojo/blob/1.10.4/dojo.js#L1860 in a setTimeout, which seemed to resolve the issue with no regressions... But then I noticed that even removing the line entirely resolves it with no regressions as well.

Wondering if Rawld could comment on whether this change seems sane.

#12327 Allow dojo.Animation to have a duration of zero or throw an error Core 1.14 defect minor Feb 21, 2011

If I setup an animation, e.g. using dojo.animatePropery(args) with args.duration = 0 I'm getting into a division by zero situation in the _cycle method. In my case I got a height of NaNpx which gave an error on the console in IE and failed silently in other browsers.

Why would you start an animation with duration = 0? Seems stupid but in my case the code intended to have all the corresponding callback called without a visually recognizable effect (of course only for a certain condition while the other branch of the code sets a number greater than zero as the duration). What I'm trying to say: It might happen so lets fix it.

In the _cycle method you get either a value for the step of Infinity or NaN depending if some milliseconds passed since "starting" the animation. Infinity is not a problem because step gets normalized to 1 then. NaN is not caught and passed on until it is written to the DOM in a way.

Attached patch checks if duration is 0 before division.

#9263 dijit.layout.ContentPane doesn't allow replacing invalid content when setter fails Dijit 1.15 defect normal May 7, 2009

Currently, the _onError(type, err, consoleText) method of dijit.layout.ContentPane? will never show the message returned from onContentError due to the way it is written. It current looks like this:

var errText = this['on' + type + 'Error'].call(this, err);
	console.error(consoleText, err);
}else if(errText){// a empty string won't change current content
	this._setContent(errText, true);

The problem is that when there is, for example, a requires error, the html setter always returns consoleText.

Instead, I think the else should be removed, and the functions should look like this:

	console.error(consoleText, err);
var errText = this['on' + type + 'Error'].call(this, err);
if(errText){// a empty string won't change current content
	this._setContent(errText, true);

This will allow for more robust error handling.

#10352 New DateTime Picker control Dijit 1.15 enhancement normal Nov 16, 2009

This control will function more like a dijit.form.DateTextBox. it includes Date selection and Time picker. Right now there is no support for different formats and no tests are being developed yet. I would appreciate if users can suggest me with necessary improvements.

Eric Durocher (3 matches)

Ticket Summary Component Milestone Type Severity Created
#16341 [patch][cla] charts don't render the right dimensions DojoX GFX 1.14 defect Nov 14, 2012

http://jsfiddle.net/neonstalwart/GRGjD/ shows a chart that i would expect to be rendered without any overflow at all - the dimensions have been set to fit exactly in the space provided yet the chart causes overflow.

when i looked at the code that renders the chart i found the background of a chart is composed of 2 rect elements - 1 for "fill" and 1 for "stroke". the "fill" rect is rendered 1px taller and 1px wider than the chart dimensions (http://bugs.dojotoolkit.org/browser/dojo/dojox/trunk/charting/Chart.js?rev=29694#L984) and the "stroke" rect is rendered 1px narrower and 1px shorter than the chart dimensions (http://bugs.dojotoolkit.org/browser/dojo/dojox/trunk/charting/Chart.js?rev=29694#L1027).

why the need to use anything other than the proper dimensions? there are no comments at all in the code to give any indication of why this is done.

i suspect that there could be more to it than just these few lines of code because in an attempt to tweak the dimensions so the chart will render how i'd expect i've found the height to be too tall by 3px.

#16364 Deserialized shapes don't keep their IDs DojoX GFX 1.15 task Nov 19, 2012

If you deserialize an SVG which was converted with the svg2gfx.xsl stylesheet, the generated "name" property in the JSON is not being converted into a id attribute on the svg element it represents.

This makes it very hard to selectively add events on the graphic, for example. So i suggest to add that.

#17482 [patch][cla][GFX] New API to specify rounding precision for SVG shape coordinates DojoX GFX 1.15 enhancement Oct 1, 2013

Currently, GFX rounds decimal coordinates to 4 digits after the decimal point when converting coordinates to string (for example in SVG attributes). This can lead to unexpected results when more precision is needed, like in the attached test case, where an almost-complete arc created but the arc is not drawn as the rounded start and end points are equal (although the actual coordinates specified are slightly different).

Thew new API could be a global option, or a new optional per-shape property, for example: shape.setPrecision(10).

Note this is specific to the SVG renderer (maybe VML too, not tested). The Canvas renderer does not need to convert coordinates to strings so it does not have that problem.

Eugene Lazutkin (3 matches)

Ticket Summary Component Milestone Type Severity Created
#8996 Odd behavior with custom axis labels for Chart2D line chart Charting 1.15 defect major Mar 26, 2009

The Chart2D samples and documentation imply that if you provide an array of values and labels for the axis, the labels will be aligned with major ticks. If the labels in the array are evenly spaced by their numeric equivalents, the chart at first appears to compute whether all the labels will fit, and then use only enough of them as will fit. It's pattern for this, though, seems inconsistent.

In the attached sample, a line chart is used to plot a time series of data over 24 hours with one data point on the hour each hour. The x axis values are date object millisecond values (e.g., (new Date()).getTime() ). Labels are provided for the x axis showing strings for each hour on the numeric value for the hour.

If majorTickStep is not specified (1 hour = 3600000ms), the axis computes the major tick positions and uses as many of the labels as possible, but there are two problems. The major tick marks are not on equal intervals (i.e., they start out every 3 hours, but sometimes have intervals of two hours) and they do not line up with the data points on the hour. If majorTickStep: 3600000 is specified, then the data points line up with the major ticks, but all the labels are used and overlap.

In a real-world application where the data for the chart may span different numbers of hours, there is not an obvious way to know how many labels will fit so that the label array could be properly constructed to match a proper majorTickStep value equal to "n hours". But when the chart is left to space the labels automatically so they will fit, the beahvior described above is problematic.

#10184 Easy way for drops on targets to get added to a referenced source DnD 1.15 enhancement normal Oct 22, 2009

Attached a unit test:

Drag items from one of the lists to the headers

#10868 scaler/common::eq function broken for large values Charting 1.15 defect normal Mar 21, 2010

This function in scaler/common.js doesn't work for large label values:

var eq = function(/*Number*/ a, /*Number*/ b){
        // summary: compare two FP numbers for equality
        return Math.abs(a - b) <= 1e-6 * (Math.abs(a) + Math.abs(b));   // Boolean

If the label values are [1237940000000, 1237940000001, 1237940000002] then the eq function says 1237940000009 matches all 3. The function should have subtracted the label[0].value before comparing. This is causing charts to show duplicate and incorrect labels.

Jared Jurkiewicz (2 matches)

Ticket Summary Component Milestone Type Severity Created
#17237 [PATCH][CLA] dojox/charting/action2d/MoveSlice sometimes leaves dangling slices Charting 1.15 enhancement Jun 6, 2013

Sometimes the MoveSlice? action will not draw a slice back in after a mouseout of the slice. This hapens when the browser doesn't actually fire a mouseout event on the slice (big surprise). While that is a browser issue we can't really fix, we can make the MoveSlice? action a bit more robust in that it can also listen to mouseout of the chart node, AND it can iterate over the animation list (outs are kept and cleared later, only move ins are deleted), and clean up any slices sticking out when you mousein to another slice. So even if the mouseout was missed, the mousein of the other one triggers a cleanup to pull the hung slice back in. Patch for this forthcoming.

#10973 [patch][ccla]VML show text contains '\n' in multiples while SVG don't DojoX GFX 1.15 enhancement normal Apr 9, 2010

Text contains '\n' is shown in multiple lines with VML renderer, but shown in a single line with SVG renderer. The behavior shall be consistent and better to be multi-line.

Kitson Kelly (4 matches)

Ticket Summary Component Milestone Type Severity Created
#15409 Cannot return dojox.form.BusyButton to idle with cancel() method DojoX Form 1.15 defect May 25, 2012

With the following button:

<button id="busyButtonAccount" dojoType="dojox.form.BusyButton?" busyLabel="{t}Creating...{/t}" type="button" onclick="submitAccount();"> {t}Create{/t} </button>

The following code does not work:

dijit.byId('busyButtonAccount').cancel(); dijit.byId('iban').focus(); dijit.byId('iban').displayMessage(dijit.byId('iban').getErrorMessage());

(iban is a dijit.form.ValidationTextBox?)

The button remains busy

#15686 BusyButton label resets to incorrect value when it has been changed programatically DojoX Form 1.15 defect Jul 17, 2012

If you set a BusyButton? label with .set('label', foo) the change is lost if you .makeBusy() and .cancel() the button.

The value is stored in postCreate as this._label and never updated. cancel() resets the label to that stored this._label value.

My first attempt at a quick fix is to provide a _setLabelAttr function to update this._label:

	_setLabelAttr: function(/*String*/ value) {
		this._label = value;

While this fixes the behaviour, there's probably a more elegant way to handle this, for example only store this._label in makeBusy() so that it is always reset to the right value in cancel().

#17065 documentation example code refs test files but they're not available on dojotoolkit.org Documentation 1.15 defect Apr 23, 2013

The PHP file seems to work/exist on the livdeocs.dojotoolkit.org site, but not on the main published site.

Here are two example urls:

*h ttp://livedocs.dojotoolkit.org/_static/dojox/data/tests/stores/QueryReadStore.php?name=A*&start=0&count=100 (works)

And here are the two pages that use these php files (in the examples):

#17346 Error on digit widgets reference guide using IE Documentation 1.15 defect Jul 26, 2013

I was trying to learn about writing some widgets using Dojo and I've find an error using Internet Explorer 7.

On http://dojotoolkit.org/reference-guide/1.9/quickstart/writingWidgets.html all samples returns an message about "undefined" is null...

I've made the same test using Internet Explorer 8, Dojo 1.6, 1.7, 1.8 and 1.9 and I got the same error.

1 2 3
Note: See TracReports for help on using and creating reports.