Changelog
- beta 1.0.15:
- Build file changes:
- dojo/dojo.js: this is a dojo build including portions of Dojo necessary for turbowidgets
- turbo/turbo.js: this is no longer a combination of dojo and turbo but is now only the core turbo library
- turbo/turbo.widgets.js: this is a build of all TurboWidgets
- All examples should now use three script tags to load the above files.
- New: TurboSplitter: supports markup specifiable minimum and maximum properties to control splitter size.
- Removed TurboGridClassic: The new version of TurboGrid is now separately available. TurboGridClassic has been deprecated.
beta 1.0.14:
- TurboWidgets: compatible with Dojo 0.4
- New: TurboLayout: alternative to turboalign system.
- New: TurboTooltip
- New: TurboDropButton: positions a given TurboFloater under a TurboButton on click or mouseover.
- Improved: TurboFloater: supports dragging and sizing with dragable and sizeable ('trbl') properties
- beta 1.0.13:
- TurboWidgets: converted widgets to use dojo.defineWidget. TurboWidgets now requires Dojo 0.3.1 or later.
- TurboButton:
- Changed: TurboCheckbox and TurboRadio now manage their state when clicked on by default
- Changed: TurboCheckbox and TurboRadio rendering updated.
- Added: turbo.button.getGroupButton(inGroup, inState) returns the button in a given group with the given state inState == turbo.button.states.down by default.
- TurboModule: Dynamically created modules now properly execute scripts that reference widgets and dom elements.
- TurboTree:
- Changed: TurboTree2 is now TurboTree and the old TurboTree is now TurboTreeClassic. TurboTree now supports the original TurboTree node specification as well as dynamic loading from TurboTree2.
- Improved: Only visible nodes are rendered.
- Improved: Enhanced adding and removing nodes.
- Added: node properties: canOpen and initOpen and tree property hasRootConnectors (defaults to true).
- Added: Can now customize images used in turbotree but altering treeImages.
- Added: Nodes can also have self inizialization onInitNode and onInitChildren functions that ease the use of server callbacks.
- Added: New examples provided.
- turbo.grid.classic.controller: Corrected failure to fire commitRow when row data altered in certain situations.
- beta 1.0.12:
- turbo.data.stores:
- Changed module location to turbo.data.classic.stores. Object names unchanged (e.g. turbo.data.stores). (Dojo.require statements with turbo.data.stores should be updated to turbo.data.classic.stores).
- fixed: sorting facility broken in 1.0.11
- turbo.app: fixed document scrolling problem related to document overflow being improperly set that was introduced in 1.0.11
- beta 1.0.11:
- TurboWidgets: compatible with release 0.3 of Dojo
- TurboGrid:
- Changed TurboGrid name to TurboGridClassic (markup / code references to TurboGrid should be updated to TurboGridClassic)
- Changed module location for grid controller and columns. Objects and contructors should be referenced by their current names (e.g. turbo.grid.controller), but must be included via the new module locations turbo.grid.classic.controller and turbo.grid.classic.columns. (dojo.require statements with turbo.grid.controller and turbo.grid.columns should be updated to turbo.grid.classic.controller and turbo.grid.classic.columns.)
- turbo: added turbo_disable_curtain property (settable via djConfig) to disable turbo.app automatically hiding the displaying during initialization.
- Changed TurboModal:
- modalHeight, modalWidth may optionally be set via the height and width of the css class of the TurboModal instead of in the widget properties (note: custom classes set independent of themes require !important selector).
- added: traps focus so that controls outside the modal are not in the focus chain. Also automatically focuses the first focusable control when displayed.
- Fixed TurboGrid: onkeydown should work in situations when the grid has focus (previously only worked when cell was being edtied)
- Added TurboWidget: turboCreate and turboDestroy methods that are called when a TurboWidget is created and destroyed.
- Changed TurboTree2:
- Added getRootNodeByIndex(inIndex), returns the tree root node referenced by inIndex.
- Added getNodeByIndex(inIndex, [inIndex, ..., inIndex]), returns the node indexed by arguments as per this example getNodeByIndex(1, 2, 4) returns the 2nd root node's 3rd child's 5th child (or node 2.3.5).
- Added removeNode(inNode), removes the tree node specified by inNode.
- beta 1.0.10:
- Changed TurboWidget: optimized markup parsing. Overall load times should improve (sometimes dramatically).
- Changed TurboButton:
- more stable rendering for TurboButtons/TurboTabs
- added onDown(inEvent) and onUp(inEvent) events (note: event can be null for code generated events).
- setCaption/set methods merged to new method: setContent(inCaption, inGlyph)
- improved image/glyph support
- Changed TurboTab:
- improved image/glyph support
- new onGlyphClick event for trapping clicks on (optional) tab glyphs.
- Changed TurboModal:
- removed modalParent property. Parent is now managed automatically (either the document or the active TurboModal).
- added hideAll method to hide all open modals
- changed hide method so that any child modals are also hidden.
- added bgColor property to specify a background color
- Changed TurboNotebook: added support for adding (addPage, addPageContent) / remove pages (removePage) at runtime.
- Changed TurboTabbar: added support for adding (addTab) / removing tabs (removeTab) at runtime.
- Changed TurboModule:
- added hasWidgets property, true by default. Set to false for faster loading of modules which do not contain widgets.
- a module can specify a set of nodes to search for widgets using the djConfig.searchIds array.
- changed method used for executing linked JavaScript modules to improve load order.
- Changed TurboTree:
- better support for saving and retrieving per-node user data
- restored name property for nodes.
- beta 1.0.9:
- Changed TurboButton: removed "images/" prefix that was previously added to button images.
- Changed turbo.grid.controller:
- addRow now operates like newRow used to. Can be called with no arguments, in which case an empty row is added at the insertion point.
- newRow is now an alias of addRow
- appendRow added: creates a (possibly empty) row at the end of the table
- getClientRowClass: function(inRow) added: stub function can be replaced to allow custom row classes. Any returned getClientRowClass takes precendence over any system styles except multi-select.
- Fixed TurboWidget: setStyle makes sure 'default' style is converted to '' for internal processing.
- Added TurboGrid: multiSelect property added, true by default. Set false to disallow multiple row selections.
- Changed turbo.grid.columns:
- Fixed: using literal minus ("-") in money formatter caused duplicate-text rendering on IE. Replaced literal minus with - entity which resolves the problem.
- Fixed turbo.grid.edit.integer to accept numbers only.
- Fixed: getEditor now returns the null editor if column.readonly is true
- Changed TurboModule:
- Added manageIds property. If true, literal element id's in the loaded module code are made unique. The modified id is a combination of a tag, a load counter, and the original id. For example, for module myMod an element with id="foo" becomes something like id="myMod_1.foo". If the module is reloaded, then the id would become id="myMod_2.foo".
- Added prefix property which can be used to specify an id tag to use when generating prefixes. If empty, the widgetId is used.
- Added getIdPrefix method to return the prefix that was prepended to id's at the last load. If manageIds is false, getIdPrefix returns ''.
- Added byId (and it's alias $) to access dom nodes in the module by original id. So myMod.$('foo') will prepend the getIdPrefix() value to foo and then peform an id search.
- Added: literal scripts in module source can use the macro %%module%% to refer to the owning TurboModule. In particular, this is useful if your module has manageIds enabled and script refers to an object by id. For example, script in a module might refer to %%module%%.$('foo') to locate a node with original id='foo'.
- Added form property so URL parameters for retrieving source can be generated from a <form> object. Set form to the id of a form or a reference to a form node and dojo will automatically package the form inputs as GET parameters when retrieving module source.
- Added clear method which (properly) destroys the module contents
- Fixed TurboButton: TurboCheckbox/TurboRadio updated to honor type[=button|submit|reset] property. Styles tweaked for better display on IE.
- Fixed turbo.data.stores: repaired getFieldNameArray
- Changed TurboModal:
- Added autoHeight property. If true then modal height is determined automatically based on content size.
- Added modalParent property to specifiy the modal's parent node.
- Fixed: nested modals should now display properly. All modals with same parent share the same background scrim.
- Fixed: style classes in widget markup are now used correctly.
- Added H2O theme.
- beta 1.0.8:
- Fixed: turbo.aligner: corrected changes made in 1.07
- Changed: turbo.grid.columns
- standard column types given explicit align hints so headers/content have matching align by default
- Added: integer and decimal column types, simplified corresponding editors, added units option to formatters
- Fixed: TurboGrid header cells no longer leave a space for the sort indicator when there is no sort indicator.
- Fixed: TurboModal onShow and onHide events now fire after modal is shown or hidden.
- Improved: TurboGrid in XHTML/XML context
- beta 1.07:
- Fixed: Added code to require either dojo.strings.extra or dojo.strings and hide dojo version dependency.
- Fixed: TurboModule now calls alignFrom module parent node at load time, if the module as alignment
- Fixed: TurboGrid: if autobuild is off, at least perform a resize at build time for better initialization
- Fixed: turbo.aligner: for...in loop changed to for loop in alignTargets to avoid failing when Array.prototype has been altered.
- Changed turbo.grid.columns
- turbo.grid.format.autoInc/boolean/integer now honors column align property
- turbo.grid.edit.enumerated now captures correct value from the input object
- Changed TurboModal
- Fixed: TurboModal now aligns its contents when shown
- Fixed: TurboModal now displays correctly regardless of where the widget markup appears
- Added: onShow, onHide, onBeforeShow, and onBeforeHide handlers
- beta 1.06:
- Added: grid example (/documentation/gridclassic/examples/more/grid_mysql.html) to show paging, row manipulation, and read / write to MySql server via PHP
- Fixed: TurboGrid build now clears selected rows
- Fixed: added needed cleanup to TurboGrid destructor
- Fixed: bug in TurboGrid resize code
- Added: TurboGrid column alignment: align: 'left|center|right' in column object sets header alignment and provides a hint for column formatters
- Changed: TurboGrid method getSelectedRows now returns a simple array of indices of selected rows (documentation is now correct)
- Changed: turbo.data.stores
- Added turbo.data.index, a class to manage indexed metadata
- turbo.data.fields is now a subclass of turbo.data.index
- turbo.data.fields.getField, setField are now get, set. setFields functionality is now wrapped into set
- turbo.data.table owns turbo.data.fields object field now instead of inheriting from turbo.data.fields (was is-a, now has-a)
- turbo.data.table property metarows is renamed rowinfo and is now an instance of turbo.data.index
- commitRowChanges is renamed commitRow
- Changed: turbo.grid.controller:
- new turbo.data.fields implementation has made getColumn, setColumn, setColumns obsolete. Instead use columns.get, columns.set
- refactored edit transaction handling out of controller and into turbo.data.table
- beta 1.05:
- Fixed: minor problems with examples
- Fixed: problem with TurboModule failing to load linked scripts in some instances
- beta 1.04:
- Fixed: TurboButton honors type="button|submit|reset" inside a <form> element. type="button" is default
- Fixed: Documentation corrections
- Fixed: TurboGrid multiline rows display correctly after sorting in Firefox
- Fixed: TurboGrid doubleclick handler
- Fixed: TurboGrid better handling for Ctrl / Alt key-combos
- Added: TurboGrid Shift-Enter to insert a newline while editing
- Fixed: TurboGrid formatter correctly escaping XML content
- Added: TurboModule can load scripts from linked files
- Fixed: TurboModule executes scripts after module html has been processed
- Improved: TurboWidgets in XHTML/XML context
- Fixed: deleteRows method added to turbo.data.table
- Added: TurboModule support for reloading module
- Fixed: various bugs
- Added: various enhancements
- beta 1.01 - 1.03:
- documentation and license clarifications
- beta 1.0: