{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 (1 - 100 of 244)

1 2 3
Ticket Summary Component Milestone Type Severity Created
#13214 enhance builder to execute subset rebuild BuildSystem 2.0 enhancement normal Jun 9, 2011

The v1.6- has the option buildLayers that allowed just rebuilding certain layers. This option could result in errors if changes were made to the code outside the layers directed to rebuild.

The 1.7+ builder should be enhanced to write out an internal state of a build (say a big file including all resources in various states of transition), and then have an update option where it reads the previous internal state, finds any changes in the sources, and then outputs a new, clean build. This should make builds during dev go much faster.

#18615 In SelectableLegend, need an option for automatic wrap / multi line support Charting 1.14 defect Jun 25, 2015

I am using dojo charts and added legend as new dojox.charting.widget.SelectableLegend?({

chart: c, outline: false, horizontal: true

}, divLegend.id);

Now if we have many entries or the name of the series parameters are big, legend unable to show all of them. Automatic multi-line support for SelectableLegend? is required.

#18641 Max and min value in line graph nor drawn properly Charting 1.14 defect Jul 14, 2015

I am making a line graph using below details, but the max and min points are not plotted as part of the graph but are being plotted as different points.

var chart;var minValue;var maxValue;chart = new dojox.charting.Chart('defaultPCMchart782824634Id',{ margins: {l: 0,r: 0, t: 0, b: 0}});chart.addAxis('x', {includeZero:false,leftBottom:true,vertical:false,type:'Invisible',fixUpper:'major',fixLower:'major',stroke: {color:'#000000',width :2},labelFunc : function(timeInMilliSeconds){var date=calcLocalTime(timeInMilliSeconds,0.0);var formattedDate=dojo.date.locale.format(date,{locale:'en-us'});return formattedDate;}});chart.addAxis('y', {includeZero:true,leftBottom:true,vertical:true,type:'Invisible',fixUpper:'major',fixLower:'major',stroke: {color:'#000000',width :2},labelFunc: formatAxisLabel});chart.addPlot('procUtilTrendSparkLineByLpar', {type: 'Lines',tension:5, markers:true,hAxis: 'x',vAxis: 'y',styleFunc: function(item) {if(item.y == maxValue){return {stroke: {color:'#F04E37', width:2}, fill: '#F04E37' };}else if(item.y == minValue){return {stroke: {color:'#FFE34F', width:2}, fill: '#FFE34F' };}else {return {stroke: {color:'#EDEDED', width:1}, fill: '#4682b3' };}}});chart.addSeries('procUtilServerUsageTrafficLine',[{x:1436263200000.000,y:0.002,tooltip:null},{x:1436270400000.000,y:0.003,tooltip:null},{x:1436277600000.000,y:0.002,tooltip:null},{x:1436284800000.000,y:0.003,tooltip:null},{x:1436292000000.000,y:0.003,tooltip:null},{x:1436299200000.000,y:0.003,tooltip:null},{x:1436306400000.000,y:0.009,tooltip:null},{x:1436313600000.000,y:0.002,tooltip:null},{x:1436320800000.000,y:0.002,tooltip:null},{x:1436328000000.000,y:0.002,tooltip:null},{x:1436335200000.000,y:0.003,tooltip:null},{x:1436342400000.000,y:0.003,tooltip:null},{x:1436349600000.000,y:0.003,tooltip:null},{x:1436356800000.000,y:0.003,tooltip:null},{x:1436364000000.000,y:null,tooltip:null},{x:1436371200000.000,y:null,tooltip:null},{x:1436378400000.000,y:null,tooltip:null},{x:1436385600000.000,y:null,tooltip:null},{x:1436392800000.000,y:null,tooltip:n

#18745 Threshold Indicator vertical fill fails Charting 1.14 defect Oct 29, 2015

In the threshold chart, configuring a vertical threshold fails to fill between the lines.

If you change thresholdual to "vertical: true" the fill does not appear as expected. http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/charting/tests/test_threshold.html

This seems to be due to the fill not properly accounting for the differences between vertical and horizontal cases. The issue may be in Indicator.js:_updateIndicator where the rectangle for linefill is created. It could also be in _renderIndicator, the return may just need to swap x1/x2 and y1/y2 in the vertical case.

#14078 [patch] [cla] dojo.hash doesn't work on IE for sites using document.domain Core 1.15 defect normal Oct 10, 2011

Some corporate sites use document.domain to become allow cross-site access between frames with different host names but same domain name. When used together with dojo.hash, this throws a Permission Denied error in IE 6-8 as these are using the IE workaround with a hidden iframe.

What's happening is that the page is then on another security domain than the hidden iframe, and the page is not allowed to access the window.location property on the iframe. Example:

    document.domain = "dojotoolkit.org";
    <iframe src="www.dojotoolkit.org/dojo/resources/blank.html">

The error can be verified with the following test case when deploying on a sub-domain such as www.dojotoolkit.org:

<!DOCTYPE html>
<!-- This test to be served on www.dojotoolkit.org and opened in IE 6/7/8 -->
			document.domain = "dojotoolkit.org";
		<script src="dojo/1.6.1/dojo/dojo.js"></script>

			dojo.ready(function() {

The solution is to make sure the hidden iframe sets the same document.domain as its parent page.

I have provided a patch that supplies the desired domain as a parameter to the iframe, and then also makes sure to wait for onload in the iframe before doing anything with it, to make sure that the domain has been set.

We are currently running with this tweak in production on 1.6.1 so it would be great to see it included in 1.6.2.

#11190 dojo.date.locale.parse handles 'S' token incorrectly Date 1.15 defect normal May 21, 2010

according to http://www.unicode.org/reports/tr35/tr35-4.html#Date_Format_Patterns 'S' is supposed to be "Fractional Second - rounds to the count of letters" but it is currently always being handled as milliseconds only.

if you look carefully at something like this

dojo.date.locale.parse("2010-05-21 09:39:03.455229", {datePattern: 'yyyy-MM-dd', timePattern: 'HH:mm:ss.SSSSSS'})

you will find that it's treating '455229' as milliseconds which then becomes equivalent to 455.229 seconds and so in firefox (didn't try other browsers) the resulting time becomes 9:46:38.229.

there is a note in dojo.date.locale.parse (line 446)

	// Check for overflow.  The Date() constructor normalizes things like April 32nd...
	//TODO: why isn't this done for times as well?

but i couldn't find an open bug so since i've stumbled across this problem i thought i'd open a ticket.

the same problem also causes

dojo.date.locale.parse("2010-05-21 09:39:03.4", {datePattern: 'yyyy-MM-dd', timePattern: 'HH:mm:ss.S'})

to treat the '4' as milliseconds rather than as tenths and so the time ends up with 03.004 seconds when it should be 03.4 seconds.

the way the code is currently, the 'S' token is only handled properly when it is used as 'SSS'.

currently i work around it by using a timePattern like 'HH:mm:ss.X' which causes all the fractions of a second to be ignored since 'X' (or any other token not having meaning) will be ignored. this works out ok because i don't really care about fractions of a second (or seconds) except for when they overflow and throw off the minutes.

#18228 [patch][test] dijit BackgroundIframe does not cover scrolled menu popup Dijit 1.14 defect Aug 20, 2014

When opening a popup containing a popup menu with a scroll-bar, part of the background can seep through. Also, when the content is scrolled, the background seeps through the part that was not visible before. See attached screenshots.

The cause of this problem is that the BackgroundIframe? that is attached to the popup wrapper does not cover the entire content of the wrapped node, nor does it cover the scrollbar.

Adding a second wrapper to handle the scrolling leaves the attached BackgroundIframe? inplace and makes sure it also covers the scrollbar. Please look at attached diff for the solution.

#17191 wrong constraints for parentConstrainedMoveable in a parent with position: absolute; DnD 1.15 defect May 23, 2013

a parentConstrainedMoveable that is in a parent that is absolutely positioned has it's constraints offset by the parent's position - see http://jsbin.com/ajimef/1/edit for an example.

i was expecting that the constraints would not have been affected by the parent's position.

my use case for this was a widget in the center region of a BorderContainer? that has a moveable node constrained to the domNode of the widget. the BC will use absolute positioning to position the domNode which results in the situation you see in the link above.

#10774 [patch]Selecting dropped option in dNd MultiSelect widget DnD 1.15 defect minor Feb 22, 2010

Target is created from dijit.form.MultiSelect. Source is defined in markup on the top of div tag using dojo.dnd.Source (from test_dnd.html example).

Expected result:

Drop some item(s) on the select widget. Behavior of dropped item(s)/option(s) does not differ from the behavior of options defined in markup.

Actual result:

Dropped options cannot be selected using Google Chrome. Actually there is a workaround. One needs to set focus on the select widget and then dropped option can be selected/unselected. Problem is not present in FireFox.

Tested in Google Chrome 5.0.322.2 dev and FireFox 3.5.8 on Ubuntu Karmic Koala x64.

#18736 Double input node in FileInput widget DojoX Form 1.14 defect Oct 16, 2015

Using dojox.form.FileInput? widhet results in doubled input tag. This node:

<input data-dojo-type="dojox.form.FileInput?" id="user_logo" name="user[logo]" />

is expanded to the following block:

<div widgetid="user_logo" class="dijitFileInput ">

<input id="user_logo" class="dijitFileInputReal" dojoattachpoint="fileInput" name="user[logo]" type="file"> <div class="dijitFakeInput">

<input id="user_logo" name="user[logo]" tabindex="0" class="dijitFileInputVisible" dojoattachpoint="focusNode, inputNode" type="text"> <div class="dijitInline dijitFileInputText" dojoattachpoint="titleNode">Browse ...</div> <div class="dijitInline dijitFileInputButton" dojoattachpoint="cancelNode" dojoattachevent="onclick:reset">Cancel</div>



Final block contains 2 input HTML elements with same is and name:

<input id="user_logo" name="user[logo]" type="file" class="dijitFileInputReal" dojoattachpoint="fileInput" > <input id="user_logo" name="user[logo]" type="text" class="dijitFileInputVisible" dojoattachpoint="focusNode, inputNode" tabindex="0" >

Submitting of the form with this HTML block leads to sending incorrect data to form handler and the file is not uploaded to a server.

My workaround:

this.inputNode.setAttribute('name', 'fake-' + this.inputNode.getAttribute('name'));

#18622 Cannot single-select after multi-selecting (dojox/Selection.js) Dojox 1.14 defect Jun 30, 2015

Widgets using dojox/Selection.js, such as dojox/Calendar, suffer from an issue when multi-selecting. Once you've multi-selected an item, the last item cannot be single-selected with left-click.

Steps to reproduce: 1) Pull up a calendar with three items Foo, Bar and Baz. 2) Left-click Foo 3) Control-click Bar 4) Control-click Baz 5) Decide you want to un-select Foo and Bar, and only have Baz selected. So normal-left-click Baz.

Expected: Only Baz is selected. Actual: Foo, Bar, Baz are all selected. You must click on something else (e.g. Foo) then click Baz in order to select Baz only.

Here's a demo: http://jsfiddle.net/inanutshellus/eL7ykcyj/

FWIW, the problem is in dojox/widget/Selection's selectFromEvent function. It does this:

    this.dispatchChange(oldSelectedItem, this.get("selectedItem"), renderer, e);

The problem is that oldSelectedItem and this.get("selectedItem") are Baz. Thus, everyone relying on dispatchChange says "Oh, the old thing was Baz, the new thing is Baz, so no change happened."

Instead, dispatchChange should send all of the previously-selected items, not just the last-selected element.

#14029 [patch][cla]dojox.mdnd Moveable throwning error Dojox 1.15 defect minor Sep 30, 2011

Moving DnD items when the onDrop event is fired requires you to first un-register them and then re-register them after moved. In this scenario dojox.mdnd.Moveable was throwning an error onMouseUp that 'this.node' is null (destroy was called on unregister).

#10536 [test case] dojox.json.ref: resolveJson should merge attributes from $ref objects to index instances Dojox 1.15 enhancement normal Dec 18, 2009

Suppose we have a partially loaded object in the index, e.g.

index["1"] = {a: 2, _loadObject: ...}

Now, in a subsequent JSON message, the same id is used in another reference, but with different eagerly-provided attributes, e.g.

{$ref: "1", b: 3}

Currently, resolveJson will not add attribute "b" to the instance already in the index, so the information about attribute "b" is essentially lost. I believe it is a common use case to supply references to the same object with different eagerly-provided attributes in each reference.

Attached is a patch to dojox/json/tests/ref.js that includes a small test case for this issue.

#18627 Editor/SafePastePlugin: Paste to wrong position onIE11, Edge Editor 1.14 defect Jul 6, 2015
  1. open https://dojotoolkit.org/reference-guide/1.10/dojox/editor/plugins/SafePaste.html#examples in IE11
  1. open Basic Usage Example
  2. clear editor content
  3. type "a 1 b"
  4. mark "b", copy with CTRL+C

6.1 CTRL+V to open SafePasteDialog? 6.2 CTRL+V again to paste "b" into SafePaste? Dialog 6.3 Click Paste button

  1. set cursor to the end

8.1 Press CTRL+V => SafePaste? Dialog opens 8.2 Press CTRL+V to Paste "b" in SafePaste? Dialog 8.3 Click Paste button

=> expected result "a 1 bbb" Current Result is "ab 1 bb"

#14734 a11yclick event for DOM elements Events 1.15 feature Feb 5, 2012

Description So as to faciliate the rapid development of accesible rich internet applications, providing an "a11yclick" event like

on(node, "a11yclick", handle);

for native DOM elements should expand in the background to

on(node, "click", handle);

on(node, "keypress", function(e){
  if(e.keyCode == keys.ENTER) {

Discussion From the point of view of accessibility, simple click events are not of much use. There must be ways to trigger an action by mouse and keyboard. Rarely are there cases in which only a "click" event is used (although the use of click-events only is a widespread phenomena in the internet). In most cases you have to set up both handlers, for click and keypress (if you want to do it correctly, as the webstandards say). The Dojo toolkit should support the programmer in this task. a11yclick should expand in the background always to a click and keypress handler.

#16944 portable gesture events Events 2.0 feature Mar 30, 2013

dojox/gesture only works on webkit browsers. It depends on evt.touches[] being defined, which is not defined for Microsoft Surface events. We should have a module with synthetic gesture events that works on all touch devices.

On Microsoft, you should use MSGesture* events for tracking zoom, rotation, etc. See http://blogs.msdn.com/b/ie/archive/2011/09/20/touch-input-for-ie10-and-metro-style-apps.aspx for details.

If you need to define some non-standard gesture behavior, then you would have to monitor MSPointerMove events, but that's quite different from touchmove events because IIUC each finger on the screen generates independent MSPointerMove events, rather than having a single touchmove event with information about each finger. Thus, the code and API of dojox/gesture/Base likely needs to be redesigned.

#17175 dom-geometry.normalizeEvent does not normalize offsetX/Y HTML 1.15 defect May 20, 2013

The reference guide and code comments claim that normalizeEvent normalizes offsetX and offsetY. These properties are not provided in Firefox, and they are not normalized by normalizeEvent.

#10724 dojo.position return different values on WebKit based platforms HTML 1.15 defect normal Feb 5, 2010


  • Create a group shape -> shape = owner.createGroup();
  • transform the shape (x, y) ->

shape.setTransform(null); var matrix = { xx: 1.0, yy: 1.0, dx: 100, dy: 100 }; shape.setTransform(matrix);

  • Query for it's position -> dojo.position(shape.rawNode, true);

In FireFox? it returns the translated value relative to it's parent. In WebKit? browsers (Safari / Chrome) it is unchanged.

#17538 [patch] Locale not being set in Windows 8.1 Internationalization 1.15 defect Oct 30, 2013

Dojo is not detecting the locale at startup under Windows 8.1. It is likely due to the OS being responsible for the locale (rather than the browser) although we are unsure as to how to get around it. It is throwing an error:

0x800a138f - JavaScript? runtime error: Unable to set property '$locale' of undefined or null reference

When we run the non minified codebase it seems to be being thrown from:

current.$locale = availableLocales.specificity;

#9411 Remove dojo.indexOf() call in dojo.NodeList-traverse's _getUniqueAsNodeList Query 1.15 enhancement normal Jun 15, 2009

The for loop in the code fragment below could be further optimized. According to this article loop #3 is faster compared to loop #2. There are other places in dojo where loop #3 could be used instead of loop #2.

	_getUniqueAsNodeList: function(nodes){
		// summary:
		// 		given a list of nodes, make sure only unique
		// 		elements are returned as our NodeList object.
		// 		Does not call _stash().
		var ary = [];
		//Using for loop for better speed.
		for(var i = 0, node; node = nodes[i]; i++){
			//Should be a faster way to do this. dojo.query has a private
			//_zip function that may be inspirational, but there are pathways
			//in query that force nozip?
			if(node.nodeType == 1 && dojo.indexOf(ary, node) == -1){
		return dojo._NodeListCtor._wrap(ary);	 //dojo.NodeList

#10075 Stale dojox.fx.slideBy Parameters fx 1.15 defect normal Oct 10, 2009

It seems that if dojox.fx.slideBy calculates where the node should end up during animation construction.

I attached two tests (A and B). In test A both animations are cached on an instance of the Animation class. CLicking on the blue box slides the node up (Expands it upward). Clicking the orange box slides it down (Actually collapses it downward).

In test B the result is as expected. The node just collapses back down to 0 height.

In test A the node collapses, but moves further than originally expected. It slides 200 units, instead of 100 units.

SIDE NOTE: Should it be possible to do this: var animation = dojox.fx.wipeTo();

And then just set the parameters later, prior to playing the animation?

#10077 dojox.fx.wipeTo Cannot Wipe to 0 width fx 1.15 defect normal Oct 10, 2009

This does not work:

var currentNodeWipeOutParameters =

{ node: "currentNode", height: 100, width: 0, duration: 300


var currentNodeWipeOutAnimation =



But this does:

var currentNodeWipeOutParameters =

{ node: "currentNode", height: 100, width: 1, duration: 300


var currentNodeWipeOutAnimation =



Applied to this node:

<div id="currentNode"

style=" background-color: black;

top: 200px; left: 100px; width: 100px; height: 100px; position: absolute;">


Adrian Vasiliu (2 matches)

Ticket Summary Component Milestone Type Severity Created
#18814 dojox/mobile/RadioButton: dot-circle misalignment for selected radio buttons on some browsers DojoX Mobile 1.14 defect Mar 16, 2016

The rendering of dojox/mobile/RadioButton shows in some browsers a misalignment between the internal dot marking that a radio button is selected and the external circle. See attached screenshot.

Reproduced with current 1.10 branch (future 1.10.5) on :

  • FF 38.5 ESR / Win7 (also hurts with Dojo 1.10.1).
  • Safari / iOS 9.2.1 (iPhone 6) (also hurts with Dojo 1.10.1).
  • Chrome / Nexus 5 / Android 6.0.1 (does NOT hurt with Dojo 1.10.1 where selected radios show a checkmark, not a blue dot...)

Does not hurt on Chrome / Win7 and IE11 / Win7.

Note that version field of this ticket is set to 1.10.4 because there's no available option for current 1.10 branch or future 1.10.5.

#18815 dojox/mobile/RadioButton: circle misaligned with label on some browsers DojoX Mobile 1.14 defect Mar 16, 2016

The rendering of dojox/mobile/RadioButton shows in some browsers a vertical misalignment between the circle of each radio and the label near it. This holds regardless the selection state of the radio button. See attached screenshot.

How to reproduce: open for instance dojox/mobile/tests/testFormLayout.html and check the rendering of the RadioButton?.

Reproduced with current 1.10 branch (future 1.10.5) but also with Dojo 1.10.1 on :

  • IE11 / Win7
  • FF 38.5 / Win7
  • FF 45.0.2 / Mac OS X 10.11.4

For comparison, the issue does NOT hurt Chrome 48 / Win7, Chrome 49 / Mac OS X 10.11.4, Safari / Mac OS X 10.11.4.

Bryan Forbes (2 matches)

Ticket Summary Component Milestone Type Severity Created
#18385 "dojo/text" not work on Windows Phone 8 platform. Core 1.15 defect Nov 25, 2014

On Windows Phone 8 platform when using "dojo/text" to load local resource, dojo will automatically choose normal XMLHttpRequest object(through new XMLHttpRequest()) to perform the AJAX call. While for some reason this seems not worked by default and we need change to Microsoft specific object instead(ActiveXObject("Microfost.XMLHTTP"))

I managed to make dojo/text works as expected on WP8 by replacing the XHR object to "Microfost.XMLHTTP", but I don't think this is a good workaround since it's not official fix and may bring unexpected behaviors.

Test sample code (with other devices it works):

require(dojo/text!something.html?, function(something){

something = contents of something.html


Note: this issue only happends within WP8 app(through Cordova for example), the "dojo/text" feature works normally if you use system embeded IE directly.

#16483 dojox.io.windowName broken in IE10 Dojox 1.15 defect Dec 18, 2012


When I make a cross domain GET (From Http -> To Https) call using windowName in IE10 I don't get any results back. The frame.contentWindow.name upon onload is the blank page url: https://mydomain/dojo18/dojo/resources/blank.html#0 and not the returned string from the request page. I tested my example in FF, IE9, and Chrome all are ok.

sample code:

var dfd = windowName.send("GET", {

url: "https://mydomain/dojo18/datatest.jsp", handleAs:"text"

}); dfd.addBoth(function(result){




Evan (1 match)

Ticket Summary Component Milestone Type Severity Created
#16676 dojox/gesture/tap causes later events to fail on Android < 4.1 and IOS Dojox 1.14 defect Feb 5, 2013

When an application listens to tap events, for example:

 on(node, tap.hold, handler);

no "click" events are fired after that on the node.

This can be reproduced with the attached test case (modified version of dojox\gesture\tests\test_gesture.html): on a mobile browser (for example an iphone/ipad), press and release over the inner/outer node, no "click" log is displayed, whereas it is correctly displayed on a desktop browser, or an Android 4.1+ device.

What causes this is the preventDefault() call in dojox/gesture/Base::_process. On most mobile OS's, this has the effect that the browser will not perform its default action of (among others) firing a "click" after a "touchstart"/"touchend" sequence. Android 4.1, on the other hand, still fires a click even if preventDefault() was called.

Feneric (2 matches)

Ticket Summary Component Milestone Type Severity Created
#14640 svg2gfx.xsl fails to detect exsl:node-set capability DojoX GFX 1.15 defect normal Jan 18, 2012


while debugging svg2gfx in Eclipse Indigo using Xalan 2.7.1 as processor, gradient stop colors weren't processed correctly, but a message "exslt:node-set is required for processing the style attribute." is thrown in line 698 (within <xsl:template match="@style">). Xalan, however, does support this extension; at least, the stop colors do get processed fine when changing the test condition in line 681 from

<xsl:when test="function-available('exsl:node-set')">


<xsl:when test="function-available('exsl:nodeSet')">.

Please find attached the file I was working on when stepping into this issue.

#11427 Incremental Improvements to svg2gfx.xsl DojoX GFX 1.15 enhancement minor Jul 7, 2010

I have attached a patch to svg2gfx.xsl that removes some of the unnecessary trailing commas left by the conversion. It does not (yet) remove all of them, just the simple cases with elements.

bill (14 matches)

Ticket Summary Component Milestone Type Severity Created
#18101 popup.js miscalculates height unless position == "above", "below" Dijit 1.15 defect Jun 20, 2014

dijit/popup#open() has code to limit the height of a popup so it fits within the viewport. It works well in the common case where the positions to try are the default ["below", "below-alt", "above", "above-alt"].

However, if the positions are just ["below"], then it may make the dropdown too tall. See the popup.html test case, the "show tall drop down" button, after making your browser window small enough so that the button is near the bottom.

That button is configured to always put the drop down below the button, even when there's more room above the button than below it. However, this code in popup.js calculates the maximum height for the dropdown under the assumption that position == above *or* below:

maxHeight = Math.floor(Math.max(aroundPos.y, viewport.h - (aroundPos.y + aroundPos.h)));

Looks like it's also wrong when the position is "left" or "right" because in that case, it will make the height smaller than necessary.

#18145 _HasDropDown: provide a maxWidth property Dijit 1.15 enhancement Jul 1, 2014

The forceWidth and autoWidth properties do not cover all usability cases. In some of this cases it has been necessary to limit, with autoWidth property enabled, the drop-down horizontal extent inside a viewport and avoid going beyond the right edge.

#18238 TooltipDialog + dojox/layout/ContentPane loads drop-down content twice on first show Dijit 1.15 defect Aug 23, 2014

When clicking on the button to display the drop-down, the dijit/form/DropDownButton#isLoaded method is called by dijit/_HasDropDown to determine how to interact with the drop-down component. When this method returns true, the drop-down is simply shown and its _onShow method is called. When this method returns false, DropDownButton#loadDropDown is called instead, which calls the refresh method of the drop-down component, which in the case of ContentPane? causes it to load its content.

Once the content is loaded, ContentPane#_onShow is called. When refreshOnShow is false, this is fine, because _onShow doesn’t do anything extra. However, when refreshOnShow is true, TooltipDialog#refresh gets called again, triggering the duplicate request. This only happens the first request because the DropDownButton#isLoaded method returns true for subsequent clicks on the drop-down button. It also only occurs with the dojox ContentPane? because it introduces an asynchronous rendering codepath. Whereas the default content setter operates synchronously from the time the XHR completes and the time the content is actually rendered, and therefore ContentPane#_xhrDfd exists to prevent the duplicate call to refresh, dojox ContentPane?’s content setter performs additional asynchronous operations (parsing and loading modules), and so the XHR object is deleted (because the XHR is done) before the content is “shown”.

PR forthcoming, since there are zero non-robot tests for this component, and I don’t have time to write something from scratch.

#18325 FilteringSelect shows a validation error for async stores when pressing enter in IE Dijit 1.15 defect Oct 21, 2014

When using an asynchronous store in Internet Explorer, when you enter a valid value in a FilteringSelect?, and press enter before the async store has completed its query, the FilteringSelect? shows a validation error. This is readily reproducible in all versions of Internet Explorer (that I have tested) with the test_FilteringSelect.html, by entering a valid state in the "Artificially slowed-down data store" FilteringSelect?, and quickly pressing enter.

The problem is due to the fact that when you press enter in a textbox in IE, it will immediately move focus to the submit button of the form. Normally, the enter key will end up triggering a _AutoCompleteMixin#_setBlurValue call from _onKey. However, when the enter causes a change in focus, a blur event also triggers the _setBlurValue method call a second time. The _setBlurValue method is not prepared to handle two rapid sequential calls. The this.item value is expected to be undefined if the fetch for the item is in process, but the line https://github.com/dojo/dijit/blob/master/form/_AutoCompleterMixin.js#L335 sets item to null, so the second time through, item is null and this is understood to mean that the fetch has completed and not found any matching item, and triggers the _refreshState method which then performs validation while the fetch is actually still in flight.

As far as I can tell, the correct solution here is simply to remove line 335 (this.item = null) from _AutoCompleterMixin.js, so that the item is still undefined, denoting that it is still in flight. With this line removed, the issues seems to be resolved and all the other tests seem to work properly.

#18559 Dijit/Dialog sticks to mouse after right click on header in Chrome Dijit 1.14 defect Apr 14, 2015

If you do a right click on a dialog in Chrome, the Dialog sticks to the mouse (like when you're dragging it). This can be tested in http://livedocs.dojotoolkit.org/dijit/Dialog, and just run the first sample. Then right click on the head of the dialog, and then outside of the (browser) context menu.

I cannot reproduce this in Firefox or Internet Explorer.

Dojo version 1.10.4 Chrome Version 41.0.2272.118 (64-bit) OS: Ubuntu 14

#16791 [Patch CLA] dijit/form/Select: Support placeHolder for empty selects Dijit - Form 1.14 enhancement Mar 4, 2013


There is currently no way to specify some kind of placeholder text for empty selects (as it is easily possible for FilteringSelects by textbox's placeHolder attribute). The added patch adds such capabilities.


My problem was, that _setDisplay is not called for initially empty selects. So I added some code to startup(). Or should rather _FormSelectWidget's _setValue be changed?

#17659 ValidationTextBox: don't fire onchange when trimmed value hasn't changed Dijit - Form 1.15 defect Jan 6, 2014

Don't fire the onchange event when only pasting \t to ValidationTextBox?.

#17803 Select set("options", ...) doesn't work Dijit - Form 1.14 defect Mar 22, 2014

If I set data manually, selected value is not displayed. I must call startup() method after setting.

<select id="select" data-dojo-type="dijit/form/Select" name="values"></select>

var data = [{label: "Label 1", value: 1}, {label: "Label 2", value: 2, selected : true}]; var select = registry.byId("select"); select.set("options", data);

#18303 Regression : onkeypress not triggered on Firefox if focus is on an input Field Dijit - Form 1.15 defect Oct 7, 2014

I noticed a regression since V1.10.0, on Firefox only. The onkeypress connected on document (or on window) does not trigger when the focus is in an input field. If focus is outside an inout field, it works fine. Works fine with IE and Chrome. Also worked fine on V1.9.3. (I tested with V1.10.1 : issue still exists)

Here is a js exemple. Try and add a validationTextBox :

if focus in the textbox, then onkeypress is not triggered if focus outside the textbox, then onkeypress is not triggered

      var onKeyPressFunc = function(event) {
console.log("onKeyPressFunc Window for key '"+event.keyChar+"'");
        if(event.ctrlKey && event.keyChar == 's'){
        } else if (event.keyCode==dojo.keys.F1 && ! event.keyChar) {
      dojo.connect(document, "onkeypress", null, onKeyPressFunc);

#10819 [patch][cla][needs update to AMD] add function to return selected value in a checkbox/radio Dijit - Form 1.14 enhancement normal Mar 5, 2010

Currently there is no API method that allows to return the selected value of a radio button or of a checkbox easily. One must use dojo.query/filter/map. While it seems I was able to obtain one recipe to obtain the said information or another, a built in method that allowed to do that would be very convenient and more straight forward to use to the average user. I believe Karl Tiedt/tk/Tekky has a patch handy that would allow to return the selected value in a radio/checkbox. JR

#11145 TextArea: placeHolder parameter does not work for dijit.form.SimpleTextarea widgets Dijit - Form 2.0 defect normal May 14, 2010

Hi, in the release notes it says that the placeholder HTML5 parameter has been implemented for all textbox widgets. dijit.form.SimpleTextarea is a textbox widgets but the placeholder parameter doesn't seem to be working for it. See attached test file. This ticket should be assigned to LiuCougar.

#18150 dojo/touch still emits synthetic click after touchstart/touchend.preventDefault() Events 1.15 defect Jul 7, 2014

Calling evt.preventDefault() on a touchstart, touchmove, or touchend event generally cancels the click event from occurring. Albeit, as documented in #15878, that didn't happen on Android 4.1.

However, dojo/touch still fires a synthetic click when the touchstart, touchmove, or touchend were prevented.

Seems like a bug, but it's hard to change because judging from #15878, dojox/mobile is depending on this behavior. Likewise, the code added in #17816 depends on it too.

#15104 auto-detect border-box box model HTML 1.15 enhancement Mar 29, 2012

setMarginBox has incorrect results on an element with box-sizing: border-box,

in firefox 10, shrinks the box by the size of padding + border in chrome 19, it also moves the box.

open the attached file in a browser and call box("a") through box("c") in the console.

#13769 [patch][cla]Circular dependency in dojo/dom-attr HTML 1.15 defect major Aug 29, 2011

I'm seeing a circular dependency in dojo/dom-attr. Here is the dependency chain :


bpayton (1 match)

Ticket Summary Component Milestone Type Severity Created
#17801 [patch][cla] Convert dojox/image/* and dojox/widget/RollingList to AMD DojoX Widgets 1.15 defect Mar 21, 2014


cjolif (3 matches)

Ticket Summary Component Milestone Type Severity Created
#17381 [cla][partial pr] Incorrect (asymmetric) margins with rotation option set for labels Charting 1.15 enhancement Aug 14, 2013

The chart's margins are calculated incorrectly if tick labels are rotated. Sample code demonstrating the issue is attached.


#12548 [patch][ccla]Chart: Legend is not ordered correctly with Clustered Horizontal Bar chart Charting 1.15 defect normal Mar 28, 2011

(1) Use dojox.charting.widget.Legend to add legend to Clustered Horizontal Bar Chart.

(2) The visually order of legend is not correct, the legend show with a reversed order of the bars.

Please look at the attached charting image.

#14648 Enhance dojox.charting widget markup to respect latest standards (AMD MID, data-* attributes) Charting 1.15 enhancement normal Jan 20, 2012

Currently the dojox.charting.widget.Chart does itself the "parsing" of its sub elements and does not support:

1/ data-dojo-type, data-dojo-props attributes

2/ mid when a class is expected in an attribute (includes theme attribute at Chart level, see also: http://bugs.dojotoolkit.org/ticket/13778#comment:30)

Also maybe the widget should leverage parser markupFactory feature instead of doing the parsing in buildRenderering.

Colin Snover (1 match)

Ticket Summary Component Milestone Type Severity Created
#17155 The content of a flattened _ROOT nls bundle is not taken into account Loader 1.15 defect May 15, 2013

We found something very strange regarding how dojo treat nls modules included in a _Root flattened bundle compare to the case of _<locale> flattened bundles. For example, my dojo build does not have "en" or "en_us" included in the generated locales. So, when the page loads up with "en" or "en_us" locale, dojo will fallback to load the _Root flattened bundle for the nls. Compare to other locale, e.g., fr, which is one of the generated locales, when page loads up with "fr" locale, dojo will load the _fr flattened bundle, and not the individual files. However, whenever dojo falls back to use the _Root nls flattened bundle, it does not seem to recognize the nls modules inside the layer _ROOT, in fact, it tries to load individual nls file again.

From what I see in the dojo/i18n code, the problem seems to be due to the fact that, in the case the current locale is not in the list of the preloaded locales, the i18n plugin will load the _ROOT bundle, and a root bundle contained in a flattened bundle is cached in the loader cache with a mid like "myapp/nls/mybundle/ROOT" (done in the i18n.preload() function). But then, when a require for this bundle is done, (e.g requiredojo/i18n!myapp/nls/mybundle?), the i18n plugin will falls back to its "new 1.7 default" behavior implemented in doLoad(). Which means, it first requires the root bundle before iterating over the possible locales:

doLoad = function(require, bundlePathAndName, bundlePath, bundleName, locale, load){
  require([bundlePathAndName], function(root){
    var current = lang.clone(root.root),
	availableLocales = getAvailableLocales(!root._v1x && root, locale, bundlePath, bundleName);
    require(availableLocales, function(){

The problem here is that the root bundle is loaded using its "original" mid (aka "myapp/nls/mybundle") instead of the one used during the preload phase (aka "myapp/nls/bundle/ROOT").

To summarize, it seems to me there's an inconsistency in the ways a root bundle is identified when it is loaded via a preloaded flattened bundle (cached using the "myapp/nls/bundle/ROOT" id) and when it is loaded during the fallback path in doLoad().

Dasa Paddock (1 match)

Ticket Summary Component Milestone Type Severity Created
#18129 [patch][cla] multiple dojo instance does not work as expected when using layers Loader 1.14 defect Jun 26, 2014

Let's consider the following config:

map: {
    'application1': {
        'dojo': 'dojo1.9'
    'application2': {
        'dojo': 'dojo1.10'
packages: [
        name: 'application1',
        location '/apps/1'
        name: 'dojo1.9',
        location '/apps/1/dojo'
        name: 'application2',
        location '/apps/2'
        name: 'dojo1.10',
        location '/apps/2/dojo'

Consider now that application1 is loaded first. In this application you have a button that load application2.

When I use non-builded code, requiring dojo/string from application2/myWidget load the file '/apps/2/dojo/string.js' as expected.

However, if application1 is a layer and application2 is also a layer, then requiring dojo/string from application2/myWidget resolve as '/apps/1/dojo/string.js'

This is due to the exclusion of mapProg in getModuleInfo: the change: https://github.com/dojo/dojo/commit/1d414f3b24fe22cc8f3ae8c3326d9693d3e70d47 the bug: #17475 the reason of that choice is described here : https://bugs.dojotoolkit.org/ticket/17475#comment:6

As a result: if the application1's layer does not contains the module required by application2, then it will be loaded from the separate file (it resolve to the right URL, but the layer become useless). Even worse if application1's layer contains the module it loads it from here, but the version might be totally different!

I think the maps should always be passed.

Note: it affect dojo 1.8+

dg (13 matches)

Ticket Summary Component Milestone Type Severity Created
#18330 Chrome Timezone and daylight saving time change day Core 1.15 defect Oct 24, 2014

From what i've seen this is happening only in chrome. My situation is the one related on #8521. I'm opening this for another thing but i think it's related. To reproduce: Broser: Chrome

  1. Set your time zone to Brasilia.
  2. Go to http://demos.dojotoolkit.org/demos/calendar/demo.html

And if we try to select the days where the daylight saving time starts we will problems. Some days: 2014-10-19 2015-10-18 2015-10-16

#16987 dojox.calendar.Calendar, cannot declare a '1-col' columnView from 'endDate' and 'startDate' data-dojo-props DojoX Widgets 1.15 defect Apr 9, 2013


Currently the dojox.calendar.Calendar cannot be configured with startDate and endDate properties such that it results in one-column columnView.

In the following code, endDate == startDate. We can reasonably expect that the columnView displays only one column.

<div data-dojo-id="calendar"

data-dojo-type="dojox.calendar.Calendar" data-dojo-props="startDate: new Date(2013,0,1), endDate: new Date(2013,0,1)"></div>

But the columnView displays 2 columns.

I found that dojox.calendar.CalendarBase? increments the "endDate" property twice (instead of once): [1] at line 379 _validateProperties(), [2] at line 499 computeTimeInterval()

Hope that it will help.


Claude Guyomard

#17009 dojox.calendar class files vs. common conventions Classes implement DojoX Widgets 1.15 enhancement Apr 11, 2013

Many class/mixin definition files in dojox.calendar do not conform the following (http://livedocs.dojotoolkit.org/dojo/_base/declare#common-conventions) :

The class name (first argument of declare()) is omitted in new development. This ensures that the global namespace does not become polluted with classes and reduces the chances of name collisions. Classes in Dojo Toolkit introduced prior to Dojo 1.7 will include the class name for backwards compatability reasons.

#17010 Should dojox.calendar class declarations specify the class name ? Dojox 2.0 enhancement Apr 11, 2013

Many class/mixin definition files in dojox.calendar do not conform the following (http://livedocs.dojotoolkit.org/dojo/_base/declare#common-conventions) :

The class name (first argument of declare()) is omitted in new development. This ensures that the global namespace does not become polluted with classes and reduces the chances of name collisions. Classes in Dojo Toolkit introduced prior to Dojo 1.7 will include the class name for backwards compatability reasons.

#17289 dijit.layout.ContentPane breaks render of dojox.calendar.MatrixView Dojox 1.15 defect Jun 30, 2013

I am inserting a dojox.calendar.MatrixView? within a TabContainer/ContentPane?. When the page loads, the first Tab container displays a dojox.calendar/SimpleColumnView, but when I click on the second tab (containing a dojox.calendar.MatrxView?), dojo becomes unresponsive with the following alerts:

Script: https://parkes-ops.atnf.csiro.au/PORTAL/dev/jslib/dojo/dojo/dojo.js:58

Also seen at lines 126, 423, ...

A bare-bones example of the issue is attached.

Thanks for your time. Cheers, Stacy.

#17479 dojox.Calendar doesn't deal with possible failure while puting an item in a store Dojox 1.15 defect Sep 30, 2013

To be more specific: in order to perform some validation while modifying(dragging, resizing) an event(item) in a dojox.Calendar, I tried to override Store's "put" function and add the validating code there. However, I see no possibility to notify the Calendar that data has not been correctly updated in the store. Moreover, in


I spotted something as simple as: store.put(storeItem),

which, at first glance, have no concern about whether the data has been updated or not. Consequently, if "put" call fails (for example returns null), the visual item in the calendar remains modified, but will be "decoupled" from the store (no more drag and drop for it).

Is this an impossible scenario or a wrong approach on my side?

Kind Regards, Razvan.

#18087 dojox.calendar.Calendar event columnHeaderClick wont't work on iPad Dojox 1.15 defect Jun 12, 2014


the event of the columnView from dojox.calendar.Calendar won't work with safari on iPad. tested with iPad 1 iOS 5. testable with current 1.10 release http://archive.dojotoolkit.org/nightly/dojotoolkit/dojox/calendar/tests/calendar.html with a click on a day-column

best, wuhi

#18458 dojox.calendar.calendar startTimeAttr not work Dojox 1.14 defect Jan 16, 2015

it works perfect in the following case.

var store = new Observable(new Memory({data: [

new Calendar({
	decodeDate: function(s){return stamp.fromISOString(s);},
	encodeDate: function(d){return stamp.toISOString(d);},

but it fail once I change the startTimeAttr and endTimeAttr like this.

var store = new Observable(new Memory({data: [

new Calendar({
	startTimeAttr: "begin",
	endTimeAttr: "end",
	decodeDate: function(s){return stamp.fromISOString(s);},
	encodeDate: function(d){return stamp.toISOString(d);}

#18596 dojox/Calendar next/previous buttons break when used with minDate/maxDate Dojox 1.14 defect May 28, 2015

There's some strange behavior with the next/previous buttons on the Month view when you use minDate/maxDate.

If you click Next, the view stops changing (which is desirable). If you click Next again, however, you'll notice it now takes you 2 clicks of the Previous button to be able to change months again.

For example:

Let's say December is the last viewable month, and you're currently on NOV.

NEXT DEC  <-- You hit the max, and can't continue. This is desired.
PREV DEC  <-- PREV at this point should send you back to NOV
PREV NOV  <-- After a second PREV you go to NOV

     NOV  <-- Another example to show it gets progressively worse as you click.
NEXT DEC  <-- Must click PREV 4 times to get to NOV. Should be 1.

I have an example of the behavior here:


There's also a proposed solution there (uncomment line 31).

#18662 dojox/calendar/SimpleColumnView creates wrong Date-objects Dojox 1.14 defect Aug 11, 2015

when constructing the column labels (line 1231), a new Date() is constructed - instead the newDate() function from ViewBase? or the dateClassObj (as in _layoutTimeIndicator-function) should be used to allow custom date-object-types

var d = this.newDate(new Date());

we are using the calender in a timezone-aware environment (we are not using the client timezone). therefore we are using a custom date implementation (via datePackage) which correctly handles setHours() etc.

#18663 dojox/calendar/Calendar should propagate datePackage to views Dojox 1.14 enhancement Aug 12, 2015

If a custom datePackage has been set, it's value should be automatically propagated to the nested Views.

#18688 dojox/calendar/CalendarBase constructor handles properties oddly Dojox 1.14 defect Aug 31, 2015

The constructor function for dojox/calendar/CalendarBase reads some values from args (for example, look in dojox/calendar/CalendarBase.js.uncompressed.js around line 295 and following, and see that we're reading DatePackage? from args. But what if we wanted to sublcass Calendar, and the subclass declaration provided a value for DatePackage? -- it wouldn't be picked up here.

On IRC, kgf suggested doing this in "postMixInProperties".

#18764 dojox/calendar/MatrixView Error after inserting new Item in store Dojox 1.14 defect Dec 6, 2015

After inserting a new item in the observable memorystore while the calendar is open on a hidden tab in my tabContainer I click on the calendartab and while its coming into view my browser console shows an error in line 680 of src-version of MatrixView?:

var d = renderData.dates[i][0];

I fixed this by switching the array indices into what I think is the correct order:

var d = renderData.dates[0][i];

I didn't dig into this deeper, so I would appreciate if this bugfix could be confirmed by someone more experienced in troubleshooting dojox/calendar.


dylan (38 matches)

Ticket Summary Component Milestone Type Severity Created
#15477 [patch][cla] Chart: Bars/Columns width Charting 1.15 enhancement Jun 7, 2012

Now, bar/columns accept x,y value for series. But bar width is compute depending on scale. In some case, specially on periodic values (eg: a point every 5 "x") bar are small even if it could take around 5 x larger

I add a test case.

I will submit patch later. My code need cleaning. And it also include other submitted patch. If you interested to put in 1.8 I will do quicker.

#15549 [patch][cla] Chart - Action: Allow multiple Indicators Charting 1.15 enhancement Jun 22, 2012

Actually you could add only one indicator on one series. Even if there is multiple plots or stacked plot.

This patch allow to draw more than one indicator. You only need to remove series indicator options. If you let it it keep backward compat. It draws only one indicator

#16800 Tooltip position configuration Charting 1.15 enhancement Mar 5, 2013

Position of chart tooltips is hardcoded. It would be nice to have it configurable, especially for line/area charts. Attached is prototype of path.

#16803 Support for donut charts Charting 1.15 enhancement Mar 5, 2013

Extending charting module by adding support for donut (doughnut) type of charts, special type of pie chart. Examples:

#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.

#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.

#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.

#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.

#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

#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.

#15718 has("dojo-debug-messages") instead of config.isDebug Core 1.15 enhancement Jul 19, 2012

There are several parts of the code that are not using has("dojo-debug-messages") for detecting if Dojo is in debug mode or not and instead are using config.isDebug. These should be refactored.

The modules affected are:

  • dijit/_Widget
  • dojo/main
  • dojo/_base/configFirefoxExtension
  • dojo/_base/declare
  • dojo/_firebug/firebug
  • dojo/gfx/renderer

#16537 json.parse and reviver vs. strict Core 1.15 enhancement Jan 3, 2013

behavior of second parameter is inconsistent:

MDC: JSON.parse(text[, reviver]) dojo: parse: function(str, strict)

now it is not very clear from API docs, that second param is used as reviver.

  1. with native-parser and ommited it parses with "unknown strictness", depending on browser implementation.
  2. with native-parser set to true it is ignored (not a function)
  3. with non-native when true supplied parses in "strict"
  4. with non-native and function, parsing in strict and ingoring the reviver function

little bit less confusing is this documentation: dojo: http://dojotoolkit.org/reference-guide/1.8/dojo/json.html#dojo-json

it is more clear that strict is used only with non-native.

Suggestion 0: please update API docs to clearly explain this. maybe rename the parameter and name it reviverOrString and explain usage in both modes

Suggestion 1: extract regexp literal out of function for better performance. (see http://jsperf.com/regexp-test-search-vs-indexof/14)

Suggestion 2: please fix the test case with few more mustThrow, and test for NaN, Infinities and other Border values, in both native and non-native.

#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

#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

#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().

#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:


#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:


#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.

#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.

#15177 DataStore, Observable combo doesn't report item updates Data 1.15 defect Apr 14, 2012

Given new dojo.store.Observable(new dojo.store.DataStore(new dojo.dataItemFileWriteStore)), direct updates to the ItemFileWriteStore will not be reported.

If app code calls (for example):

myItemFileWriteStore.setValue(item, "label", "North Pole");

That will trigger a call to dojo.data.store.onSet(). However, there's no call to put(), and thus Observable does not report anything.

#16876 JsonRest store fails to encodeURIComponent() sort direction in URL Data 1.15 defect Mar 18, 2013

The sort direction, by default, is indicated with '-' or '+'.

+ is a sign that needs to be encodeURIComponent()'d.

Patch attached.

#17473 dojo.store.Cache not handling 304 with dojo.store.Memory Data 1.15 defect Sep 26, 2013


When wrapping a Jsonrest, along with Memory store, into a Cache store, 304 returns from server are not handled properly upon updating entity. One gets : "TypeError?: Cannot use 'in' operator to search for 'key' in null" line 70 of uncompressed Memory.js file :

var id = object[idProperty] = (options && "id" in options) ? options.id : idProperty in object ? object[idProperty] : Math.random();

Thanks in advance for your help

Here is the code :

<script src="ajax.googleapis.com/ajax/libs/dojo/1.9.1/dojo/dojo.js"></script>


require( [ 'dojo/parser', 'dojo/store/JsonRest', 'dojo/store/Memory', 'dojo/store/Cache' ], function(parser, JsonRest?, Memory, Cache) {


var cachedStore = new Cache(

new JsonRest?({

target: "/mypath", idProperty: "key"


new Memory({idProperty:"key"})








#17783 dojo/store/JsonRest + Observable: add/put new item not observed Data 1.15 defect Mar 11, 2014

Both removedFrom and insertedInto are -1 in Observable line 120, callback is ignored.

Simple test added (adapted from dijit/tree/ObjectStoreModel).

#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;

#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);

#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

#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.

#17315 stamp.fromISOString returns a time that is 10 minutes earlier than the supplied string Date 1.15 defect Jul 10, 2013

I will supply a string to the function and the resulting date will be 10 minutes earlier. For example, I will submit ISO formatted string with the time of 10:30 and the resulting time will be at 10:20

#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.

#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

#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.

#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.

#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.

#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.


#16157 dnd: replace evt.stop with evt.preventDefault in Selector.onMouseDown DnD 1.15 defect Oct 12, 2012

dnd.Selector.onMouseDown() calls event.stop(e) on line 268/196 (to prevent the browser from selecting text when the user drags?).

But this prevents using the event mousedown higher up in the DOM hierarchy (e.g. event delegation) and should therefore be replaced with event.preventDefault() instead, which does not cancel the bubbling up. Also see fixed ticket #13994.

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