Fix data ordering bug from issue 278, and clean up datasets handling
authorKlaus Weidner <klausw@google.com>
Tue, 7 Feb 2012 02:42:45 +0000 (18:42 -0800)
committerKlaus Weidner <klausw@google.com>
Tue, 7 Feb 2012 02:42:45 +0000 (18:42 -0800)
commit82c6fe4d4a5e55a9d5f7696b23a203905006d1ab
treef2cc5675d50a9133c7fdac419700e4649d0c9d48
parent79253bd07d1fd37d53e0793c08030df4aaf871be
Fix data ordering bug from issue 278, and clean up datasets handling

The code was declaring this.layout_.datasets as an array, assuming
numerical indices, but accessing them as an object using string labels
as keys. This caused problems with Chrome which reorders numeric-looking
string labels, for example sorting "10" before "09".

This changelist redefines datasets to be an array indexed by series
number, and maintains a separate setNames array used in those places
where it's needed.

As part of the refactoring, also change indexFromSetname to use a lookup
instead of looping over all series each time, and provide a getLabels()
convenience function.

Includes a test for this in axis_labels.js that also demonstrates the
bug.
auto_tests/tests/axis_labels.js
dygraph-canvas.js
dygraph-gviz.js
dygraph-layout.js
dygraph.js