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

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

alex (24 matches)

Ticket Summary Component Milestone Type Severity Created
Description
#5289 Editor foreground and background color plugins don't operate correctly Editor 1.2 defect normal 11/30/07

If no text is selected and a background color is chosen, typing does not get colored. It ought to, just as it does with the foreground color. Also the selected color for either plugin should stay selected, that is the button ought to stay depressed (toggle) until it is pressed again. Or at least this should be settable behavior through some argument to the plugin. Also, we suggest, that the selected color might be used to color the button background color and that the icon be transparent to let the color so the user can see what color is selected.


#5707 Improved Editor Plugin Architecture Editor 1.2 defect normal 01/28/08

I don't think this is news to anyone, but wanted to start a ticket to discuss the Editor's plugin architecture. Basically, I am hoping that at some point, plugins will be more standalone in that plugin code from _editor/plugins won't have dependencies on Editor.js, which appears to be the case right now.

While trying to write about plugins, I quickly ran out of creative ideas for how to tell someone to write their own custom plugin without suggesting that they hack on Editor.js (which currently has a bunch of case statements that handle some of this stuff.) Am I wrong, and there is there is a fairly simple and elegant way to create custom plugins w/o doing that?

Also, it might be worth talking about how you should and shouldn't pass in values to plugins. For example, on the EnterKeyHandlingPlugin?, I don't see a better way of specifying blockNodeForEnter than adding a call to

dojo.extend(dijit._editor.plugins.EnterKeyHandling, { 
                 blockNodeForEnter : "div"
});

sometime before the editor is parsed. Is there a better way of doing this? Should there be? (All sincere questions.)


#5226 dijit._Templated does not replace booleans correctly Dijit 1.2 defect critical 11/23/07

If a widget contains e.g:

myBool: false

and your template contains:

<div dojoType="myWidget" value="${myBool}"></div>

value is evaluated to true.

This happened after changeset r10979 when the following was added on line 64 in the buildRendering function:

if(!value){ return ""; }  

The buildRendering function now replaces ${myBool} with "" instead of "false".

After this the str2obj function is called in the dojo parser. In the boolean case the following code is run:

return typeof value == "boolean" ? value : !(value.toLowerCase()=="false"); 

Since value is "" it returns true.

Regards, Thomas


#5734 Intermittent xhrPost failure Core 1.2 defect critical 01/31/08

I'm testing my code under a variety of browsers including Safari 3 (windows). The same xhrPost code seems to work reliably on all but Safari. I occasionally see the xhrPost get an error response and the status is zero. (tk has also seen this but on FF under OSX). The server is not sent anything.

Is this a bug or an expected condition that requires the client to retry again when it occurs? (yikes!)

The relevant code snippet goes something like this:

    <script type="text/javascript"
        src="<?=$docURL?>/dojo.x/dojo/dojo.js"
        djConfig="parseOnLoad: true, usePlainJson: true"></script>
...

dojo.xhrPost( {
    url: _urlAjax,
    content: {'ver' : 1, 'func': 'poll', 'args':jsonStr },
    handleAs: "json", 
    timeout: g_timeout, // Time in milliseconds
    handle: function(response, ioArgs){
        if( response instanceof Error && ioArgs.xhr.status === 0 )
            console.debug( "WTF?");
        else console.debug( "normal");
      }

#2408 Escape key in browser kills cometd connection Events 1.2 defect major 02/05/07

On pressing the escape key in Firefox 2 (may be apparent in other browsers also) the comet connection to the server is lost, and it does not reconnect. The connection type used was the long polling HTTP POST.

Using javascript evt.preventDefault() when escape is pressed does not prevent this action... user must explicitly recall cometd.init() to reinitialize the connection


#2165 Making ShrinkSafe more useful ShrinkSafe 1.2 enhancement normal 12/11/06

Currently, Rhino shortens only truly private variables, making compression 100%-safe.

But most of time, there is a *bunch* of internal code that is never called from outside, e.g dojo DOM-manipulation functions, many internal processing methods, etc etc.

Let Rhino compress all that stuff, making only *few* methods for public calls. In my projects I can list such methods explicitly.

This will make JS shorter and programs run faster, because short names are easier for JavaScript? to interpret.


#3833 [patch][cla] allow Dojo to work in Firefox extensions IO 1.3 enhancement normal 07/22/07

I have included a patch in unified diff format, that allows Dojo to work within a Firefox extension, while keeping normal browser functionality.

This is in relation to forum post:
http://dojotoolkit.org/forum/dojo-core-dojo-0-9/dojo-core-support/dojo-firefox-extension

This patch updates /dojo.js and /src/io/ScriptScrIO.js

The reason for this patch is that within a Firefox extension there is no Head element to attach the script element too.

ScriptScrIO.js goes one step further then dojo.js and implements the same code as dojo.js but then also implements the ability to use AJAX to get the JS file. The reasoning for this extra step is because the code to add the JS file to the Firefox XUL only allows for the loading of local files. This is a problem if the user is using the cometd section of Dojo. This is because cometd needs to talk to the server which in normal cases is not local to the extension user. Therefore it uses AJAX in to get the source of the external JS file (this AJAX is able to go to a different domain because it is being ran as a extension and therefore has higher security levels). Once AJAX can retrieved the source it URI encodes it and passes it in a, data URI to the Firefox JS load function.

This gives the ability for Dojo to be smart enough to know if it is running in a normal browser window or as a Firefox extension, and also smart enough to know if it needs to load the required JS files from the local machine or from a remote server.

The only other possible requirement to have Dojo work as a Firefox extension is to set the variable: baseRelativePath. This value will be dependent on the developer and therefore was not hard coded to allow developers to easily set this variable like the normally would. In my case I set the variable to:

var djConfig = {
baseRelativePath : "chrome://myExtension/content/dojo/",
};

Files Seperate:
http://www.port21.com/Code/Dojo/FirefoxExtensionPatch/Dojo-dojo-js-udiff
http://www.port21.com/Code/Dojo/FirefoxExtensionPatch/Dojo-src-io-ScriptSrcIO-js-udiff

Files Ziped:
http://www.port21.com/Code/Dojo/FirefoxExtensionPatch/Dojo-FirefoxExtensionPatch.zip


#3849 dojo.query does not work on imported nodes Core 1.2 defect normal 07/24/07
  • Version: 0.9beta
  • Browsers: FF 2.0 (probably more)
  • Contact: keithpk at gmail dot com
  • Note: The issue was posted in the forums, and no one has responded, so I'm filing a ticket.
  • Description: In short, if you use import node to import some html from another document dojo.query can not find those nodes. The standard document.getElementById can though, so I'm not sure where the bug is. I have written a simple test case to reproduce this, which uses dojo.parser to show that the parser can not find/query for the inserted node. When you run this test, you will see that the first two buttons parse fine, the 3rd button, however, does not. Note: it will only work on FF, as DOMParser is not supported in IE.
<html>
  <head>
    <title>Dojo: Hello World!</title>
   
    <link rel="stylesheet" type="text/css" href="js/dojo/dijit/themes/tundra/tundra.css"/>
    <script type="text/javascript" src="js/dojo/dojo/dojo.js" djConfig="parseOnLoad: true">
    </script>
    <script type="text/javascript">

       dojo.require("dijit.form.Button");
        dojo.require("dojo.parser");

        function onPageLoad()
        {
            // Create a separate document             var text = "<doc xmlns="http://www.w3.org/1999/xhtml"><button dojoType="dijit.form.Button" id="test3">Test3</button></doc>";
            var parser = new DOMParser();
            var doc = parser.parseFromString(text, "text/xml");

            // Get the button from the document
            var button_element = doc.getElementById("test3");

            // Import the button node into our document
            var import_button = document.importNode(button_element, true);
           
            // Insert it into our document   
            var dom_insert_node = document.getElementById("dominsert");
            dom_insert_node.appendChild(import_button);   
 
            // The parser can not find it    
            dojo.parser.parse();

            // Look it up in the document. Get element by id can find it just fine
            var lookup = document.getElementById("test3");
               
            // Choose your output method
            console.log(lookup);
            //alert(lookup);
        }
    </script>
  </head>

  <body onload="onPageLoad()">

    <button dojoType="dijit.form.Button" id="test1">Test1</button>
    <div>
        <button dojoType="dijit.form.Button" id="test2">Test2</button>
    </div>
    <div id="dominsert">
    </div>
  </body>
</html>


#3866 0.9: dojo.query() support of general XML DOM documents. General 1.2 enhancement normal 07/26/07

0.9: dojo.query support of general XML DOM documents.

According to Alex, dojo.query won't work against a general XML DOM document, but that it shouldn't be too hard to make it work. So, this is a trac request to add that support. It would make some handling of XML much more efficient in terms of code and performance (things like dojox.data.XmlStore? could use it for getting the full node list and such instead of having to tree walk.)

Initially assigning to Alex since he owns the query code, I believe. Please route if not.


#3886 dojo.html and dojo.style migration doc HTML 1.2 task normal 07/28/07

All the old functions in dojo.html (and dojo.dom?) and dojo.style should be listed in http://dojotoolkit.org/book/dojo-porting-guide-0-4-x-0-9/style-html-utility-function-changes with their 0.9 equivalents or at least a message saying "tough luck, we aren't supporting that anymore" :-) but hopefully something better like advice about how to do the same thing in user code.

From Michael Shall's mail here a subset of the missing information:

Functions I'm missing so far in my port...

dojo.html.selectInputText
dojo.html.getAncestors
dojo.html.replaceNode
dojo.string.escapeXml
dojo.string.escapeHtml

dojo.isNumber - I suppose we could use dojo.number.? to find this out, but the other isXXX are there and this one is missing.
dojo.setClass - Add/Remove/Has made the cut, but not set.  I used to set className, but in 0.4 setClass is more complicated, I assume for xbrowser

The following may be able to be done with dojo.query...
dojo.html.firstElement
dojo.html.lastElement
dojo.html.nextElement
dojo.html.prevElement

#4328 djConfig support for dojo.require url versioning General 1.2 enhancement normal 08/29/07

When a new verion of dojo is required, it is wise to force a client to retrieve the new javascript from the server, bypassing the client side cache. To this end, it would useful to have a setting in djConfig (e.g. djConfig.version) such that all dojo.require statements would append this value to each request:

djConfig = { .. version=1.23 .. }

=>

"../dojo/event.js?1.23"


#4409 Safari: dijit.Editor dies while creating an unlabelled Button Editor 1.2 defect normal 09/10/07

Hi all! I'm working towards getting dijit.Editor usable in Safari.

In dijit.form.Button:postCreate, the following call to dojo.trim fails:

dojo.trim(this.containerNode.innerText || this.containerNode.textContent); 

The reason for this is that in Safari this.containerNode.innerText returns an empty string. Safari then proceeds with this.containerNode.textContent and passes the result of this second call (undefined) to dojo.trim, where no typechecking is done and the call to undefined.replace fails. Unfortunately this transcends my javascript-foo. What's the canonical way to work around that kind of problem? (it seems that Safari treats an empty String as a false-value - is this a bug in Safari?) However, if I explicitly cast the argument, I get a step further:

dojo.trim(String('' || undefined)) 

Possible patch is attached.

Thanks in advance for your feedback, Hannes


#4580 [meta] Consistency In API General 1.2 enhancement normal 09/27/07

From ptwobrussell:

As I'm writing this book on Dojo, I'm looking at the totality of the toolkit from an API-centric point of view (especially Base) and am noticing (fairly minor) inconsistencies that we may want to consider "fixing". For example:

  • In html.js, most functions from this family accept either a string id or a dom node as a first param, but a few (like hasClass, addClass, etc.) accept only a dom node and fail if you accidentally (because you're generalizing your knowledge from other functions) pass in an id value. So there's the size (extra dojo.byId call) vs consistency vs performance vs breakage considerations in dealing with fixing something like this.
  • In other places, params to families of functions are named different things, so it would be nice to name params consistently across the board so that the "family" relationship might be even more apparent, so that your doc tools produce a nice consistent API, etc. (things like obj vs thisObject vs o as param names, for example.)

In either of these cases, I'd be happy to generate the patches since I'm _almost_ generating them anyway as I sift through all of these things in my writing efforts. However, in that first issue especially, it seems as though there would need to be a little pow-wow to get to some final decision.


#4651 [patch] [cla] Adding the module dojox.testing.DocTest Dojox 1.2 enhancement normal 10/05/07

This class executes doctests. DocTests? are tests that are normally defined inside the comment, a doctest looks as if it was copied from the shell (which it mostly is). The lines of the test to execute start with ">>>" and the first line following that doesnt start like it is the exptected result. I.e. the following is a simple doctest, that will actually also be run if you run this class against this file here:

>>> 1+1
2
>>> "a"+"b"
"ab"

To run the doctests of the DocTest? class itself, go in the FireBug? console and type:

>>> dojo.require("dojox.testing.DocTest"); 
>>> var doctest = new dojox.testing.DocTest(); 
>>> doctest.run("dojox.testing.DocTest"); 

it will then print out on the firebug console:

Test 1: OK: 1+1 // A simple test case. Terminated by an empty ...
Test 2: OK: 1==2 
Test 3: OK: "a"+"b" // Also without the empty line before, thi...
Test 4: OK: var anything = "anything" // Multiple commands for...
Test 5: OK: true==true // Test a new line terminating the test...
Test 6: OK: true==true // Test a new test terminating the test...
Test 7: OK: true==true // Test a "not a comment"-line, especia...
Test 8: OK: [1,2,3,4] 
Test 9: OK: true==true // Test code on new line terminating th...
Test 10: OK: false 
Test 11: OK: "false"
Test 12: OK: true 
Test 13: OK: 1 
Test 14: OK: "s"
Test 15: OK: dojo.toJson({one:1}) 

for integrating it into your unittests you can simply check the property error, see the firebug output for what how it works:

>>> doctest.errors.length==0
true

Find some more in depth discussion in this article.


#5246 Editor height setting fails and acts inconsistently in FF and IE Editor 1.2 defect normal 11/27/07

An editor in a ContentPane? is set so that height is 100%, but under FF it seems to be about 300px and under IE it's set to 100%. In FF, when text is typed into the text area the text properly scrolls when it hits the bottom, but under IE, the text grows downward and the Toolbar is scrolled away and disappears.

The behavior I'm after is: reliably create a 100% heigh in any browser, and when the bottom is hit, scrollbars appear in the edit area only, the toolbar does not scroll away.


#5385 Allow ability to provide access to a widget variable in string passed refs in templates Parser 1.2 defect normal 12/14/07

nice subject eh? Stop whining.

as an example, store requiring widgets in a template:

<div>
   <div dojoType="dijit.someStoreWidget" store={$myStore:global}></div>
</div>

the store will get a string representing a global variable that points at the parent widgets myStore property.


#5766 [patch][ccla] Proposed extension: XML parser for rendering dojo Dojox 1.2 enhancement normal 02/05/08

The attached patch reads XML and instantiates dojo components. Element names refer to the dojo component to be created, attributes refer to properties or event handlers.

XML can be included directly within <script/> tags or externally referenced via the script tags src attribute.

Some examples:

<ui xmlns:dijit="dijit">
<dijit:form.Button label="Hello, World!"/>
</ui>

Using the namespace more:

<ui xmlns:dijit="dijit.form">
<dijit:Button label="Hello, World!"/>
</ui>

HTML can be included within the XML by specifing html as the namespace uri.

<ui xmlns:dijit="dijit" xmlns="html">
<p>HTML before</p>
<dijit:form.Button label="Hello, World!"/>
</ui>

The patch includes the code, some examples and the mail demo built through xml.

(Thank you to Alex for help and guidance with this)


#5963 Comet - subscribing to a glob channel Dojox 1.2 defect normal 02/24/08

Subscribing to the * channels doesn't seem to work. Let's say we have the channels /foo and /bar. When the user subscribes to /*, the user does a client-side dojo.subscribe to /*, but the actual message will be published to either /foo or /bar on the client side. In other words, the server delivers the messages to the client, but the client is listening on a different Dojo channel.

I wasn't sure what to set the ticket properties to, so I'm hoping somebody else will edit them.

-Geoffrey Lee


#6353 [grid] fix grid code/location issues WRT style guide DojoX Grid 1.2 defect normal 03/28/08

#6526 dojo.io.script support for JSONP with static callback IO 1.2 enhancement normal 04/14/08

With static resources that may be requested by JSONP, it is necessary to use a static callback. This patch adds support to dojo.io.script for requesting resources with a static callback (url is the callback name). See: http://www.json.com/2008/04/01/static-json-with-callback/


#6625 something that takes a JSON-like document and creates the widget structure General 1.2 defect normal 04/28/08

something similar to xtype struture of extjs


#6744 dojo.isSafari doesn't work properly for Safari 2.0.4 Core defect normal 05/13/08

The browser sniffing in the hostenv_browser.js needs to have the parsing for WebKit? 419.3 (Safari 2) changed from

parseFloat(dav.substr(idx+7)) >= 419.3

to

parseFloat(dav.substr(idx+8)) >= 419.3

Otherwise you end up with 3 as the Safari version, even though you're using Safari 2.0.4.



Safari 2.0.4 Strings

AppVersion - 5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/418.8 (KHTML, like Gecko) Safari/419.3

UserAgent - Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/418.8 (KHTML, like Gecko) Safari/419.3


#5574 Dojo should use DOMContentLoaded with WebKit >= 525 General 1.2 enhancement normal 01/13/08

Nightly builds of WebKit support the DOMContentLoaded event in a similar manner to Gecko. Dojo should make use of this for WebKit versions >= 525 to avoid the nasty timer-based hack being used in future versions of WebKit-based browsers.


#6510 Dojo + jabsorb demo file RPC 1.2 enhancement normal 04/11/08

A demo file of how to connect to the jabsorb framework server using the SMD/RPC services.


becky (1 match)

Ticket Summary Component Milestone Type Severity Created
Description
#3813 implement a11y for grid Accessibility 1.2 task normal 07/19/07

Need keyboard and ARIA support for grid component. A11y requirements are included in the table spec: http://www.dojotoolkit.org/book/dijit-functional-spec/other-widgets/table


benschell (2 matches)

Ticket Summary Component Milestone Type Severity Created
Description
#5977 [patch][cla] In IE, with RTL, header node scrolls when hovering over resize handles DojoX Grid 1.2 defect normal 02/25/08

In Internet Explorer, in RTL, hovering over a resize handle makes the header scroll to where the right-most edge is visible (rather than staying aligned).


#6567 [patch][cla] QueryReadStore sends two requests when sorting on grid columns DojoX Grid 1.2 defect normal 04/18/08

If you hook QueryReadStore? to a grid via DojoData? and click a grid column to sort it makes a double request, each with the same data.

See the attached files for a simple demo.


bill (3 matches)

Ticket Summary Component Milestone Type Severity Created
Description
#5676 ContentPane: better detection about which widget to resize (in layout mode) Dijit 1.2 defect normal 01/25/08

This ticket is based on #5169. If a ContentPane has a single child (possibly loaded via an href), it can act like a proxy, and reflect size changes of itself to that single child. However, doesn't work so well if there are extraneous children, such as having a LayoutContainer and a dojo.data.store child too.

[12160] lets the developer specify when ContentPane? should act as a layout container, but that still doesn't solve the problem here. As per the TODO in that checkin it should be more intelligent about finding the widget to resize, probably by looking for a widget with a resize() method.

See also related bug #5638 (which I might close as a duplicate of this one).


#6101 don't force include of everything in dijit/_base Dijit 2.0 defect normal 03/06/08

_Widget.js dojo.require()'s a bunch of code that it doesn't use (focus, wai, etc.) just in case subclasses like Button want to use that code. This is detrimental to making small builds for iPhone, etc. Modify Widget.js and other resources to only require() what they are actually using.

Developers can still get all the code in dijit/base by including dijit.js.

Given that this is sort-of an API change (although it will only impact developers who write custom widgets), won't implement until 2.0, but can implement interim workaround in code providing custom build option to only require() the files that are being used.

//>>excludeStart("dijitBaseExclude", kwArgs.customDijitBase == "true");
dojo.require( "dijit._base" );
//>>excludeEnd("dijitBaseExclude");

#6370 Dialog: onLoad does not check for visibility like layout() Dijit 1.2 defect normal 04/01/08

In version 1.1.0, when you create a dijit.Dialog the css has been changed from display: "none" to visibility: "hidden" when compared to pre-1.1.0.

I noticed that my dialog boxes were being hidden but the div's were centered in the middle of my screen, and the textbox's within the Dialog were editable even though I couldn't see them.

At line 387 in the layout() function of diji\Dialog.js you do a check to make sure that the dialog isn't hidden before calling _position() which places the dialog in the middle of the screen. However, at line 201 of the same file, in the onLoad() function you do not perform the same check which results in a dialog box that is invisible to the user but still editable.

I think the onLoad function should look like this:

onLoad: function(){ // summary: when href is specified we need to reposition the dialog after the data is loaded

if(this.domNode.style.visibility != "hidden"){

this._position();

} this.inherited(arguments);

}


dante (9 matches)

Ticket Summary Component Milestone Type Severity Created
Description
#1162 progress indicator and incremental loading for dojox.presentation Dojox 1.3 defect normal 07/25/06

Need to add incremental loading and progress indicators to dojo.widget.Show


#1512 dojo.gfx inside dojo slide show widget Dojox 1.3 defect normal 09/26/06

When using dojo.gfx with the dojo slide show widget, a gfx surface will not be displayed unless it is on the slide that is displayed at load time. It's a blocker for me personally, but not for dojo 0.4. I would expect this to be a bug more with the slide show than with gfx.


#1996 [patch/cla/dojox] Carousel widget donation Dojox 1.3 enhancement normal 11/23/06

Hi dojo team,

Here's a carousel widget I wrote this week, would be happy to see it get incorporated into dojo.

I think it could be renamed as ScrollingContainer??

Note that the idea is taken from : http://billwscott.com/carousel/updates.html Images as well (BSD license)

My CLA should be on file, Jonathan Bond-Caron

j


#5163 [dojox][patch][no cla] fx.highlight missing functionality that was in 0.4.3 Dojox 1.2 defect normal 11/15/07

dojox.fx.highlight in 1.0 is missing some functionality that was in dojo.lfx.html.highlight in 0.4.3.

1) When using dojox.fx.highlight on a transparent node (a node with no background color) that is contained within a parent that does have a background, the highlight effect fades to white instead of to the "inherited" background color and then becomes transparent again. This can also be seen in the test#3 on page dojox/fx/tests/test_highlight.html, where the node appears over the body's background image. In 0.4.3, dojo.lfx.html.highlight handled this by calling dojo.html.getBackgroundColor(node) to get the endColor for the fade.

2) If you want the startColor highlight to remain for a little while before starting to fade out, in 0.4.3 you were able to specify a delay as the argument to play(). This worked because dojo.lfx.html.highlight set the startColor as part of beforeBegin. But in 1.0 this is missing, so specifying a delay only means there is a pause before you see the startColor and then it begins to fade immediately.

Below is an updated version of dojox.fx.highlight that restores this functionality using code based on the 0.4.3 implementation:

dojox.fx.highlight = function(/*Object*/ args){
	// summary: Highlight a node
	// description:
	//	Returns an animation that sets the node background to args.color
	//	then gradually fades back the original node background color
	//	
	// example:
	//	dojox.fx.highlight({ node:"foo" }).play(); 

	var node = (args.node = dojo.byId(args.node));

	args.duration = args.duration || 400;
	// Assign default color light yellow
	var startColor = args.color || '#ffff99';
	var endColor = dojo.style(node, "backgroundColor").toLowerCase();
  	var bgImage = dojo.style(node, "backgroundImage");
	var wasTransparent = (endColor == "transparent" || endColor == "rgba(0, 0, 0, 0)");

	if ( wasTransparent ) {
		// get inherited background color to use as endColor
		var pNode = node;
		do {
			endColor = dojo.style(pNode , "backgroundColor");
			if (endColor.toLowerCase() == "rgba(0, 0, 0, 0)") {
				endColor = "transparent";
			}
			if (pNode == document.getElementsByTagName("body")[0]) {
				pNode = null;
				break;
			}
			pNode = pNode .parentNode;
		} while (pNode && (endColor == "transparent"));
	}

	var anim = dojo.animateProperty(dojo.mixin({
		properties: {
			backgroundColor: { start: startColor, end: endColor }
		}
	}, args));

	dojo.connect(anim, "beforeBegin", anim, function(){
		if (bgImage) {
			dojo.style( node, "backgroundImage", "none" );
		}
		// set startColor beforeBegin so can set delay on play()
		dojo.style( node, "backgroundColor", startColor );
	});
	dojo.connect(anim, "onEnd", anim, function(){
		if (bgImage) {
			dojo.style( node, "backgroundImage", bgImage );
		}
		if ( wasTransparent ) {
			dojo.style( node, "backgroundColor", "transparent" );
		}
	});

	return anim; // dojo._Animation
};

#6060 dojox.fx.sizeTo caching leads to stale parameter state Dojox 1.2 enhancement normal 03/02/08

Hi,

I just did a little experimentation, and to make a long story short, it seems that dojox.fx.sizeTo is caching parameters it gets from the node argument during the construction of the animation.

Suppose the width of the node is 400px when the node is passed to the dojox.fx.sizeTo(args) factory method. The resulting animation thinks that when this animation is played, the width of the target node should always be 400px before the animation starts. From what I can see, it even sets the width to 400px (If it were changed to say 800px) before the animation starts, and then plays the animation.

To me it seems that since the starting width and height come from the node at first, the animation should always check the width and height before animating, and use the current width and height This would enable the animation to be cached and reused. Right now it seems that the only way to refresh the starting parameters is to create a brand new animation. I'm assuming that's fine in most cases. From a usability point of view though, I think it's more intuitive to have the animation start with the current width and height of the node whenever play is called. This way the animation can be cached, which means less garbage collection for the browser, etc.

Thoughts?

Thanks, - Ole


#6399 dojox.fx.highlight tests fail on Safari Dojox 1.2 defect normal 04/03/08

Instead of fading to the background colour of the object, everything fades to black, then snaps to the correct colour.

This is Safari Version 3.1 (4525.13) on OS X 10.4.11 with Dojo 1.1.0

The test is dojox/fx/tests/test_highlight.html


#6612 [patch/cla] dojox.layout.RotatorContainer DojoX Widgets 1.2 enhancement normal 04/25/08

Extends a StackContainer? to automatically transition between children and display navigation in the form of tabs or a pager. Similar to what is on http://www.sun.com.

Demo: http://www.cb1inc.com/dojo-1.1.0-build/dojox/layout/tests/test_RotatorContainer.html

More info: http://www.cb1inc.com/2008/04/25/meet-the-rotatorcontainer


#6668 destroy() option to not remove dom node Dijit 1.2 enhancement normal 04/30/08

Keep Widget.destroy() working the same as today, where it destroys _Widget.domNode, but add parameter to destroy() such that _Widget.destroy(true) does:

  • for behavioral widgets it leaves the original dom node in place, just removing the behavior
  • eventually (not for milestone 1.2) for templated widgets, it will revert the widget to it's original source dom node. In the case of form widgets, the original dom node is an <input>, and the form widget's value should be written to that input, so that form submit works as if the widget still existed. This will hopefully make the back/forward button not erase or "misalign" the values the user previously input into the form. (Have to be a bit careful w/this one though because currently for performance reasons we destroy the original dom node)

This requires removing the finalize parameter from destroy(), but it's unused anyway so that shouldn't be an issue.


#6671 [patch/cla] Cacheable Animation Framework / API + dojox.fx.WipeLeft Contribution General enhancement normal 05/01/08

This ticket is related to: http://trac.dojotoolkit.org/ticket/6060

This API has the following goals:

(1) Work just like Dojo's current animation framework

(2) Support caching of animations / dom node switching

(3) Support simple unit testing

(4) Enhance reuse through an animation class hierarchy

(5) Simple animation debugging

(1) I think I implemented all the methods and semantics in dojox.fx.Animation that come with the use of dojo.animateProperty().

onEnd, onBegin, and perFrame template methods have been added that can be implemented by subclasses of dojox.fx.Animation.

These are automatically called by dojox.fx.Animation per the template design pattern.

(2) Caching is supported. Just change the animation instances DOM node reference, and the new reference is animated when calling Animation.play() on the Animation instance.

(3) Unit testing of the animation is supported by isolating each frame inside the Animation.frame() method.

This allows animation developers to test node properties before and after each frame.

(4) If you take a look at dojox.fx.AbsoluteDimension? you'll see that this could easily be reused by dojox.fx.sizeTo...however dojox.fx.sizeTo would have to be reimplemented as dojox.fx.SizeTo?, which would be a subclass of dojox.fx.AbsoluteDimension?.

(5) I personally think this is easier to debug, since each class in the hierarchy provides specific services, implemented on framework methods. I'm naturally biased though :-)

Cheers, - Ole


dylan (3 matches)

Ticket Summary Component Milestone Type Severity Created
Description
#429 Form condition registry Dojox 1.3 enhancement normal 02/09/06

I would like to have a framework which can manage a forms state, useful in complex forms management. You provide a name a function or object that provides the condition and then based on the condition add handlers to success and failure. An example which would suite me would be the selection of a radio button hides some form elements and shows others, the more complex situ would be different elements of a drop down box would have a different effect on different parts of the form.

An example of how I was trying to tackle the hide/show was this:

function SetControls?(that){

var ControlArray? = byClass(that.target.id, byId('the_form'));

for(x = 0; x < ControlArray?.length; x++){

var ConrolToChange? = ControlArray?[x];

var ControlClassesArray? = KMI.common.getClassNameArray(ConrolToChange?);

if(!KMI.BasicInformation?.CheckControlInfluences?(ControlClassesArray?, that.target)){

if(ConrolToChange?.style.display == 'inline'){

ConrolToChange?.style.display = 'none';

}else if(ConrolToChange?.style.display == 'none'){

ConrolToChange?.style.display = 'inline';

}

if(ConrolToChange?.style.visible == 'hidden'){

ConrolToChange?.style.display = 'visible';

}else if(ConrolToChange?.style.display == 'visible'){

ConrolToChange?.style.display = 'hidden';

}

}

}

}

KMI.BasicInformation?.CheckControlInfluences? = function(ClassArray?, that){

var isInfluenced = false; KMI.common.Info('Method: KMI.BasicInformation?.CheckControlInfluences?'); try {

for(n = 0; n < ClassArray?.length; n++){

var OtherCBControl = byId(ClassArray?[n]); KMI.common.Info(OtherCBControl.id); if(OtherCBControl.checked && OtherCBControl.id != that.id){

return true;

}

} return false;

} catch(exc) {

KMI.common.Info(exc.message);

}

}

Using this, each of the elements that are hide/shown from the selection of a checkbox have the id of the checkbox in their class name. This only handles one dimensional form structure though and has no way of handling extra logic.

I will check into the IRC regularly if you want to pick my hed, I am on the list too :) I would like to provide input if possible as I have put a lot of thought into the ins and outs of this :)

Cheers

w.//


#4043 web site marketing Website enhancement normal 08/07/07

Some comments and suggestions about how the dojo web site markets the dojo toolkit:

    I really like the support for SVG but the other day I went to the web site 
to see how I could use Dojo, especially with Rails - was totally confused in 
looking for simple examples. To capture users, Dojo needs quick examples like:
    How to use Dojo with PHP, or Rails, or Django in 3 minutes
    How to add a graph component on your web site in 3 minutes
    How to add a popup dialog box in 3 minutes

    Most users don’t have time to experiment or figure out documentation 
to even see if it’s something we want - we need solutions fast and some quick, easy tutorials get us going

    Some thoughts on what would help the marketing of Dojo… I hope the Dojo devs 
seriously consider publishing “sneak preview apps/samples” of Dojo 0.9 live on their 
site (ideally, under the “Demos” link). I had to dig into the 0.9 beta release’s code 
to find some test pages which illustrated some but not all of the new stuff (which 
does look very nice to me, I might note). If you want to convince people of how good 
your candy is, you should really show them the goods and give ‘em a taste, even if it 
is still a bit limited at this point.

    They should also seriously consider creating a page (easily found from the 
top-level page) of “here’s where it’s used” links and screenshots, to really get 
people thinking not just about “well, what can you do”, but “who’s using it?”


#6731 Make DojoUsers page more attractive (with pictures) Website 1.3 enhancement normal 05/11/08

The DojoUsers page just contains a list of folks using Dojo. It'd be much nicer to have a visual representation with company logos in a simple grid, a la Prototype, or similar.


elazutkin (48 matches)

Ticket Summary Component Milestone Type Severity Created
Description
#5051 Safari graphic text and events problems DojoX GFX 1.2 defect major 11/08/07

I have the following piece of code the problem is when scrolling down to look at the text it does not show up.

Also there is a problem with connect, as it does not function properly I'm using the safari windows version 3.0.3 (522.15.5). Not sure if it's a dojo or safari issue.

dojo.require("dojox.gfx");

init = function(){
	var container = dojo.byId("gfx");
	var surface = dojox.gfx.createSurface(container, 500, 500);


        var group1 = surface.createGroup();

        var a = group1.createRect({x:50, y:50, width:20, height:20});
        a.setFill( "gray" );

	var b = group1.createText({x:50, y: 50, text: "123", align: "middle"});
	b.setFont({family: "Verdana", size: 10, weight: "bold"});
	b.setFill("blue");

        var c = surface.createRect({x:400, y:400, width:20, height:20});
        c.setFill( "gray" );


	var d = surface.createText({x:400, y: 400, text: "123", align: "middle"});
	d.setFont({family: "Verdana", size: 10, weight: "bold"});
	d.setFill("blue");

	dojo.connect(a.getNode(), "onmouseover", function(){
          alert("a");
        });

	dojo.connect(b.getNode(), "onmouseover", function(){
          alert("b");
        });

	dojo.connect(c.getNode(), "onmouseover", function(){
          alert("c");
        });

	dojo.connect(d.getNode(), "onmouseover", function(){
          alert("d");
        });
};

dojo.addOnLoad(init);


#5486 Missing DnD API : delete, move programmatically DnD 1.2 enhancement minor 01/02/08

there is no defined API to programmatically delete or move nodes from DnD.


#6058 Creating dojo.dnd.Moveable on divs with scroll bars DnD 1.2 defect minor 03/02/08

If you create a dojo.dnd.Moveable on a div which has a fixed height and overflow set to scroll, when you click and drag on a scrollbar it moves the entire div and scrolls the content extremely badly. The only way to scroll the content is to click on the scroll bar, not click and drag.


#373 async onDrop DnD 1.3 enhancement normal 01/24/06

Currently I can neither do async drops nor indicate waiting state on drop. That's because DragManager? needs return value from onDrop.

I suggest to change it. onDrop may return

  • true => success
  • false => failure
  • null => DragManager? put into lock state (no dnd available) and wait for async request to return a value and unlock it.

#2122 [charting] events to plotter or series Charting 1.2 enhancement normal 12/06/06

From #1637:

Events -- even though it would be possible to attach event attributes to the raw SVG/VML nodes, it would be much less tedious and error-prone if this could be done at a much higher level, perhaps at the Series or Plotter level.


#2123 [charting] Series visibility toggling Charting 1.2 task normal 12/06/06

From #1637:

Visibility toggling -- this is simply a matter of changing the "visibility" style attribute on a particular group node. The one minor issue I see is that using a grouped plotter renders all the data series under the same group node. This would preclude toggling the visibility of one particular data series. I can see the argument that perhaps this is by design since the data series are supposed to be grouped together, but on the other hand it wouldn't be any real effort to group all the data series in a grouped plotter separately.


#2320 Clock.js fix for PM/AM setttings, and handle 0.5 hour (30 minute) offset DojoX GFX 1.3 task normal 01/15/07

Bug entered by: Stacy David Thurston of Sun Microsystems Email address: Stacy.Thurston@…

Below is updates you can use to fix the current version of Clock.js to handle:
1. Proper AM/PM settings. Fix is to add mod 24:
self.topLabelNode.innerHTML=(((self.date.getHours()+self.timeZoneOffset)%24)>11)?"PM":"AM";
2. 1/2 hours, 0.5 hour, 30 minute, offset, example: India's timeZoneOffset from California is 13.5.
var h=(self.date.getHours()+ self.timeZoneOffset - (self.timeZoneOffset % 1)) % 12;
var m=self.date.getMinutes() + ((self.timeZoneOffset % 1)*60);
3. Enhancement: add digital time:

// Digital display
var dH=(h<1)?12:h;
if (m>59) { dH=h+1; }
var dM=m % 60;
if (dM<10) { dM="0"+dM; }
self.topLabelNode.innerHTML=dH+":"+dM+" "+self.topLabelNode.innerHTML

Full code fix:

		this.draw=function(){
			//	summary: Moves the hands of the clock to the proper position based on the current date.
			self.date=new Date();
			var h=(self.date.getHours()+ self.timeZoneOffset - (self.timeZoneOffset % 1)) % 12;  // fix offset for India which is an 1/2 hour offset
			var m=self.date.getMinutes() + ((self.timeZoneOffset % 1)*60); // fix offset for India which is an 1/2 hour offset
			var s=self.date.getSeconds();

			self.placeHour(h, m, s);
			self.placeMinute(m, s);
			self.placeSecond(s);

                    // use mod 24 for PM/AM for world wide time zones.
                    self.topLabelNode.innerHTML=(((self.date.getHours()+self.timeZoneOffset)%24)>11)?"PM":"AM";

                    // Digital display
                    var dH=(h<1)?12:h;
                    if (m>59) { dH=h+1; }
                    var dM=m % 60;
                    if (dM<10) { dM="0"+dM; }
                    self.topLabelNode.innerHTML=dH+":"+dM+" "+self.topLabelNode.innerHTML
		};

#3053 We may need to introduce a DnD item separator object. DnD 1.3 enhancement normal 05/17/07

Currently the point of insertion is modeled using the border CSS attribute of an item, which may reduce the expressiveness. In some cases it maybe beneficial to insert an object to indicate the insertion point. Think about it, maybe you can try to model such objects, and their possible behavior.


#3145 Bounding box calculations are broken for many shapes. DojoX GFX 1.3 enhancement normal 05/24/07

#3614 Implement property animation for gfx DojoX GFX 1.2 enhancement normal 07/03/07

Things to animate: transformations (scaling, translation), colors (strokes, brushes), probably some other "low-hanging" properties.


#3696 Implement Netvibes-like DnD source. DnD 1.3 enhancement normal 07/10/07

This source inserts a ghost node (or nodes) to give a preview of a drop result. The creator function should accept one more type of node: "ghost". In general this enhancement is non-invasive and don't affect other use cases.


#3883 DnD Undraggable Drop Anchor DnD 1.2 enhancement normal 07/27/07

dojo.dnd.Source seems to require that everything specified as a drop anchor is also selectable and draggable.

I have been looking for a way to create a drag and drop list wherein only one item is draggable and can be dropped onto any other item to rearrange the list, but it would seem this is not possible.

This is the forum post associated with this issue: Clicky


#3988 Unify radial gradients in SVG and VML renderers. DojoX GFX 1.3 task normal 08/05/07

SVG expects that the focal point of a radial gradient specified in absolute coordinates. VML expects that the focal point is specified in relative (to the shape) coordinates. It works as soon as nobody applies transformations. Probably we need to recalculate the radial gradient in VML every time we apply the transformation.


#3989 Add fill, stroke propagation to groups. DojoX GFX 1.2 task normal 08/05/07

Presently groups can be used only for transformation propagation. Add the ability to propagate fill, stroke, and font to subordinated objects.


#4222 Verify that all attach() methods work as promised. DojoX GFX 1.3 task normal 08/19/07

The attach() method recreates a dojox.gfx shape from a node. Make sure all of them work as expected.


#4454 Precision loss in VML renderer DojoX GFX 1.2 enhancement normal 09/13/07

VML accepts only integral values as coordinates. As a consequence it can accumulate errors especially for long relative segments. We need to find a way to make it more precise by pre-calculating all values independently and using the closest point to the real value.


#4650 DnD: Allow dndItems that are not a direct descendent of Source DnD 1.2 enhancement normal 10/05/07

Drag and drop only works when the dnd items are direct children of a dnd Source. Here is a slight modification of part of the test_dnd.html file that shows the non working behaviour:

<div dojoType="dojo.dnd.Source" jsId="c2" class="container">

<div>

<div class="dojoDndItem">Item <strong>X</strong></div> <div class="dojoDndItem">Item <strong>Y</strong></div> <div class="dojoDndItem">Item <strong>Z</strong></div>

</div>

</div>


#4891 Prevent control bleeding DnD 1.2 enhancement normal 10/26/07

#4884 mentions the control bleeding problem, which was solved for the dialog widget by using IFRAME. It should be an option for the avatar --- cannot do it the standard because it prevents translucency.


#5010 GFX benchmarking suite DojoX GFX 1.2 task normal 11/04/07

The generous webkit folk are looking for some good benchmarks to stress their SVG implementation. In the spirit of giving everyone a fair shot, ISTM that we should build some benchmarks that cover:

  • object creation for various sorts of drawables
  • animation of individual object properties
  • animation of large numbers of nodes concurrently (lots of spinning 3D cubes/cylinders?)

#5029 Make skipForm="true" by default for DnD operations. DnD 1.2 enhancement normal 11/06/07

I am getting too many invalid bug reports, when people assume that draggable form should be editable by default. It makes sense, and it was not done this way before because I didn't want to break the original behavior. Now I think this change is unlikely to break anybody's code --- who wants draggable but non-editable forms anyway?