View Full Version : Ext JS 4 Releases and Notes (4.0B2)

24 Feb 2011, 8:42 PM
Release Notes for Ext JS 4 Beta 2
Release Notes: April 6, 2011
Version Number: 4.0.0beta2
Download: here (http://www.sencha.com/products/extjs4-beta/download/)
Release Notes (http://dev.sencha.com/deploy/ext-4.0-beta2/release-notes.html)

New In This Release

New Examples

Gauge Chart example (http://dev.sencha.com/deploy/ext-4.0-beta2/examples/charts/Gauge.html)
Buffered Grid example (http://dev.sencha.com/deploy/ext-4.0-beta2/examples/grid/buffer-grid.html)
Theme example (http://dev.sencha.com/deploy/ext-4.0-beta2/examples/themes/index.html)

Bug Fixes

Fix tabs mouseover in GroupTabPanel examples
Fix double rendering when quickly expanding / collapsing tree nodes
[EXTJSIV-466] Ensure cls config is applied to MessageBoxWindow
Fix issue where box layout margins could be improperly calculated
[EXTJSIV-470] Remove the permanent CheckHeader editor and place it only on the row editing example
Fix Tree keyboard navigation
Don't show loading indicator when trying to expand an already expanded tree node
[EXTJSIV-504] Fix alignment of fieldset legend checkbox
[EXTJSIV-502] Remove persistent scrollbar from Ext.form.Textarea and Ext.form.HtmlEditor source editor
[EXTJSIV-213] Fix BoxReorderer issues
[EXTJSIV-537] Fix an issue that allows multiple selection on the chart
[EXTJSIV-529] Element.highlight() fx function will now function properly, and can handle Anim callbacks
[EXTJSIV-539] We no longer allow the tb text field to be orderable in the multisort example
[EXTJSIV-540] Buttons will no longer show mouseover effects when disabled
[EXTJSIV-545] Fix duplicate id bug in grid -> grid DD example
[EXTJSIV-417] Fixed issue with field heights
[EXTJSIV-492] Fix application of overCls when the delegate option is used
[EXTJSIV-513] Ensure that mouseup when dragging the drag selector, and the subsequent click event does not clear selections in the DataView
[EXTJSIV-474] Fix ghosting of Windows during drag on IE < 9
[EXTJSIV-213] Fix multiple-sorting issue with BoxReorderer, ensure smooth component reordering, Improve reorderable-tabs examples
[EXTJSIV-501] Fix the ability to update floating Components while hidden, and have them run their ComponentLayout upon show
[EXTJSIV-530] Fixed bootstrap-release.js to test window.location.hostname instead of window.location.host
[EXTJSIV-540] Always attempt to remove the overCls when the mouse leaves the component. If a component is disabled while the mouse is still over it, then the overCls will be stuck on until the component is re-enabled
Grid DD Example update so columns aren't crammed together
[EXTJSIV-531] Fix MessageBox progress bar display
[EXTJSIV-434] Prevent IE6-7 from giving focus to the HtmlEditor iframe when setting its contentEditable=true
[EXTJSIV-464] Menu should pass its minWidth down to its child components so it is accounted for in the Box layout. This visually affects all examples that use menus which were only as wide as they needed to be
[EXTJSIV-138] Fix no borders on forum search example
Fixed column headers in IE
[EXTJSIV-561] Fix an issue when creating a tab panel with no items
Fix Loader's path resolution
[EXTJSIV-557] Locking grid resize indicator shows up regardless of which section you drag from
[EXTJSIV-507] Fix gecko3 issue with the first tab in a tabbar
[EXTJSIV-356] Prevent selection from scrolling into view when the selection model is refreshed
[EXTJSIV-568] RowEditor disables the view's keynav so that editors will get full default key events
[EXTJSIV-339] Fixed problematic curly braces in nestedIdRe in AbstractSummaryFeature
[EXTJSIV-375] Complete syncing of row heights, after sorting make sure that the scrollTop is synchronized
Correct syncRowHeight default config
[EXTJSIV-568] Don't allow RowEditor to hijack space
[EXTJSIV-409] Add extra path parameter to ensure cookie clearing works
[EXTJSIV-7] Fixed shift that appears in IE with large number scaling when you specify viewPort in a Draw Component
[EXTJSIV-558] Fixed an issue where setting a date in a model caused the record to become dirty
[EXTJSIV-575] Fix Uncaught TypeError: Cannot call method 'apply' of undefined, due to previous onDisable/onEnable changes
[EXTJSIV-449] TableView should not steal the focus when a header is resized. The header layouts occurred when a scrollbar was being added and removed by the TablePanel, causing any previously focused item to lose focus, with focusing going to the TableView. So, a "search filter text box", for example, would lose focus at random points
[EXTJSIV-167] Fix IE9 Center Layout
Fix Ext.form.Combobox select event firing
[EXTJSIV-546] Dont allow a parent folder to be dropped on a folder inside itself
[EXTJSIV-524] Make sure you can extend Ext.TreePanel and create an instance without passing a configuration
Properly relay View events on the TreePanel
[EXTJSIV-190] Fix Ext.ux.TabCloseMenu event monitoring
[EXTJSIV-535] Fix Multi sorting grid column reorder indicator
[EXTJSIV-537] Fix issue where FormDashboard allows multiple chart selection
[EXTJSIV-162] Fix TableView/Features collectData implementation
[EXTJSIV-544] Fix Bar display when data is of the same value for more than one record
[EXTJSIV-515] Clear groupers when disabling the Grouping Feature
[EXTJSIV-565] Fix radial axis labels problem
[EXTJSIV-469] Correct layout recursion back into an already-running ComponentLayout
[EXTJSIV-565] Fix maxValue in drawSeries
[EXTJSIV-590] The PagingScroller now calculates rowHeight based off of markup
[EXTJSIV-241] Fix bug in event wrapper ordering which meant that delayed or buffered single:true events threw errors
[EXTJSIV-583] Fix sorting padding issue with grid headers
[EXTJSIV-510] Added grid headers and special cell backgrounds
[EXTJSIV-597] Fix issue where Ext.tab.TabPanel wouldn't enable tabs
[EXTJSIV-588] Fix an issue when using scripts: true when loading a component
[EXTJSIV-321] Record associated data now also handles parent models
[EXTJSIV-566] Fix issues with returning exceptions from DirectProxy
[EXTJSIV-585] Fix an issue where Ext.MessgaeBox was dependent on having a title
[EXTJSIV-586] Fix an issue when using reset and formBind, the bound item will now be updated correctly
[EXTJSIV-591] Fix warning when destroying border layout
Fix detection of changes to form fields in IE9 standards mode by making it use the modern events set
Fix vertical alignment of checkbox/radio buttons in IE9 standards mode
Fix errors when expand/collapse methods are called after a Picker component is destroyed
[EXTJSIV-605] Fix an issue where undefined will be set on the editor when resetting
[EXTJSIV-569] Fix bug with nodes being inserted in the wrong location in the NodeStore
[EXTJSIV-607] Fix z-index of border floated region
[EXTJSIV-372] Fix an issue with flickering when using cell editing in FF on Linux
[EXTJSIV-608] Fix issue when creating records at a remote source
[EXTJSIV-450] FocusManager will only add tabIndex to DOM nodes that really need them for programmatic focusing. This will ensure default tabIndicies will remain in tact
[EXTJSIV-589] CellEditing now fires beforeedit, validateedit and afteredit appropriately
[EXTJSIV-610] CellModel will now call its base Model's doSelect and doDeselect functions so it is maintaining the selected record along with the selected position (row/column)
[EXTJSIV-418] CheckColumn now will handle the Enter/Space keys for toggling its select state
[EXTJSIV-609] CellModel fires its select/deselect events now
[EXTJSIV-560] Remove focused cls on items in a TableView when deselecting them
[EXTJSIV-614] Prevent combobox dropdown from getting closed before the selectOnTab handler has a chance to fire in WebKit
[EXTJSIV-622] When IE9 positions an element offscreen via offsets, the offsetWidth is inaccurately reported. For IE9 only, we render on screen before removing. Fixes an issue with Ext.getScrollBarWidth
[EXTJSIV-439] Changed images for the DataView examples to gif for IE6
[EXTJSIV-615] Fix an issue when using an idProperty other than "id"
RowEditor will handle resize, move, show, and hide of columns properly before the editor is brought up for the first time
[EXTJSIV-480] Table layout: added work around for a bug in Opera 10.5 where it makes table cells wider than they should be if their child element has border-box sizing and horizontal padding
[EXTJSIV-641] Fix an issue with creating items into a local storage object
[EXTJSIV-440][EXTJSIV-633] Fix Ext.ux.AnimatedDataView cross-browser issue
CellEditing will complete an edit before grabbing critical information about the next edit, since the view is refreshed upon edit completion
[EXTJSIV-371] CellEditing and CellModel will continue cell editing on tabs even across cells with no editor, and stop when the editing ends via a non-tab exit point such as blurring the field
[EXTJSIV-606] Constrained Windows no longer lose their center positioning
[EXTJSIV-508] Give a visual indication of a selected/focused tree node in the check-tree example
[EXTJSIV-508] Tree selection model handles enter/space to check any checkbox tree nodes
[EXTJSIV-663] Ensure ServerProxy checks if the value is defined as opposed to just truthy
[EXTJSIV-593] Numeric axis is now aware of chart substores, that way it can update when grouping/ungrouping time axis
[EXTJSIV-401][EXTJSIV-496] Rework active/inactive tab styling to be consistent across all browsers and avoid the floating border strip


[EXTJSIV-73] Optimized class system performance - round 1
Added a simple Gauge Chart
Add Ext.Array.sort which is a guaranteed stable sort
[EXTJSIV-556] Implement a buffered grid example loading thousands records and buffering the rendering. Required minor changes to PagingScroller, BufferStore and related classes
[EXTJSIV-193] Put iconCls and tools into ghosted windows
[EXTJSIV-471] RowEditing will now scroll the buttons into view when they are out of sight due to being near the bottom. Also will enforce row selection and keeping a row in view when starting an edit for smoother animations
[EXTJSIV-426] Remove redundant validation for allowBlank in Ext.form.Text
[EXTJSIV-427] Date and Time would always return null from getValue if the raw value could not be parsed as a date; this was resulting in such values being treated as valid during validation and not being seen as dirty. Changed so that getValue will return the raw value if it cannot be parsed. Also added logic to attempt parsing of the 'value' config during init so that originalValue is a valid Date object for dirty comparison
[EXTJSIV-448] Implement readOnly and setReadOnly for Checkbox and Radio fields
[EXTJSIV-416] Give fields within fieldset an anchor so they get a width in IE6
[EXTJSIV-530] Added port number support to localhost detection
Add required classes to Chart LiveUpdate example
Increase LiveSearchGridPanel reactiveness
[EXTJSIV-529] Element.getColor() will properly accept an empty string as a prefix, which is needed for color animations
[EXTJSIV-529] Enable afterRepair fx on dd.DragZone and TreeViewDragZone
[EXTJSIV-38] TreeViewDropZone will now highlight successfully dropped nodes
[EXTJSIV-38] Use the selectedItemCls setting on TableView prototype to handle the quick remove/add of that cls when highlighting a repair
[EXTJSIV-38] TreeViewDragZone will highlight all records that were dragged, for the case of multiselect tree sel model
[EXTJSIV-185] Removed .png slicer images + changing to gif (we <3 IE6)
[EXTJSIV-346] adding gif versions of icons for treegrid example
[EXTJSIV-475] LoadMask may now be configured with a Component to mask as an alternative to just an element. If configured with a Component, it masks the Component's contentTarget. If the Component changes size during loading, the mask's message is recentered. DataView configures its LoadMask by passing itself if it is standalone, or its owning Container if it is inside a Container
[EXTJSIV-478] Added the empty cls to all browsers, not just browsers that do not support `placeholder`. this is because of a styling issue in webkit
[EXTJSIV-540] Button over when disabled will not apply the hover background linear gradient anymore. disabled classes now get cascaded priority over background-image
[EXTJSIV-457] The DragZone was triggering a selection change on mousedown, which was resulting in duplicate selection calls when the DataView was configured to select on click. Moved the former from the mousedown handler to the start of the drag to avoid duplicate selection
Improved some Loader's alias functions for performance
[EXTJSIV-258][EXTJSIV-259]Refactor Shadow for floating Components
[EXTJSIV-551] Menu should not fire click, mouseover, or mouseleave events when its disabled. Menu items will not get any interaction when the menu is disabled
Menu will only activate items that can be activated, however, always deactivate the active item when applicable
[EXTJSIV-502] Add comment in HtmlEditor explaining how forcing documentMode in the Web Developer Tools will override the mode used by the iframe, causing scrollbars in IE8
[EXTJSIV-543] Horizontal scrolling does not rely on having records within the body of the grid. It is calculated off of the headercontainer instead
[EXTJSIV-547] Added in browser check for Opera for Mousewheel. Found additional information about Opera and its' mousewheel implementation here: http://www.switchonthecode.com/tutorials/javascript-tutorial-the-scroll-wheel To quote the important parts... "The weirdness comes in because IE and Firefox have very different names for the scroll event. In Internet Explorer, the event is called onmousewheel, while in Firefox the event is called DOMMouseScroll. To make it even worse, Opera uses the Internet Explorer event name (without the 'on' part, so just mousewheel), but Opera needs to use the Firefox way of attaching event listeners."
[EXTJSIV-564] Implement index support in selectRange rather than requiring the developer to pass a record instance
Updated grid row selection stuff to support IE better
[EXTJSIV-447] Add fieldStyle config and setFieldStyle method to Ext.form.BaseField, to allow direct manipulation of the inputEl CSS style
Legacy code in the widgets directory removed
RowEditor offsets itself by using bottom instead of top, in case of tall rows
[EXTJSIV-567] Table State implementation now restores width and visibility
[EXTJSIV-532] Add tooltip support on Radar series
[EXTJSIV-559][EXTJSIV-373]Provide accurate repair position for Header Drag Zones
[EXTJSIV-358] HeaderContainer will disable checkbox in column menu when there is only a single header
[EXTJSIV-582] Add Ext.Error custom error reporting class
[EXTJSIV-574] Add an alias for all series and handle custom series creation and adding them in an imperative way
[EXTJSIV-514] Reimplement rendering of Checkbox and Radio to use a custom image rather than native controls, for greater styling control and consistency across browsers
[EXTJSIV-241] Lots of cleanup on Component destroy method
[EXTJSIV-599] Make node loaded a field in NodeInterface. When appending a child to a node, mark it as loaded
Add the ability to pass a url to the load method on a Store with a ServerProxy defined on it
[EXTJSIV-394] Added itemTpl support for DataView
Add method to allow destroying the field layout's singleton QuickTip instance
[EXTJSIV-604] Allow height to be set on text fields
The footer toolbar's (fbar/buttons cfg) spacer shouldn't be focusable anymore
Button now has a visual state when focused, which currently mirrors the mouseover state. Also removed a focus/blur method in Button that was unnecessary
[EXTJSIV-450] FormPanel will provide default tab stops for its fields and buttons, so that all fields are tabbed through first, and then buttons second
[EXTJSIV-450] AbstractPanel and AbstractDock will return/render docked items in their visual representative order, respectively. Docked items have a default weighting, so that they are returned/rendered in (t,l,r,b) order. In the case of a Dock layout, the top/left items are rendered before any existing DOM nodes in the render target (body el, in the case of a Panel), and right/bottom items are rendered after the existing DOM nodes. This keeps our DOM nodes in order of their visual representation to support tab stops, ARIA readers, etc. Also, getDockedItems/getRefItems of AbstractPanel will return the same type of ordering by default to support logical ordering of ComponentQuery's and FocusManager navigation
Move FocusManager's tabIndex whitelist to the prototype so it's not defined over and over again for each call to setFocus
[EXTJSIV-418] Added keydown event handling to DataView
[EXTJSIV-600] Allow form fields to display all errors returned from getErrors at once, rather than only displaying the first
[EXTJSIV-304] Grid reconfigure method implemented
[EXTJSIV-498] Changed DataView to store the internal record IDs on the view DOM nodes for lookup by record and vice versa. This matters since blockRefresh's can happen and the store becomes out of sync with the DOM nodes, such as was the case with the Animated DataView plugin
[EXTJSIV-483] Implement expanded cls for rows inside collectData instead of getRowClass. This allows the user to override getRowClass without them having to worry about expanded state
[EXTJSIV-628] Added remove and destroy methods in Sprite.
[EXTJSIV-55] Add boxLabelAlign config to allow the user to place the boxLabel before or after the checkbox/radio
[EXTJSIV-517] Optimized buffering of requests in PagingScroller
[EXTJSIV-596] border:false on a Window removes borders from the body. The Window itself remains framed
[EXTJSIV-523] Use the verticalScrollers calculated height when available rather than the raw dom
[EXTJSIV-315] Updated access theme to have better styling across all components
[EXTJSIV-613] Move extraParams onto the object instead of being per request
RowEditor now transitions the error summary tip properly on back-to-back invalid records
Remove the inline unselectable cls, and instead call unselectable() on the table view's el after it's been rendered. This fixes a selection problem in Chrome when double clicking in a grid
[EXTJSIV-527] Add a workaround for the WebKit MarginRight bug with Anchor Layouts to make them much faster
[EXTJSIV-527] Componentlayout.afterLayout will now only be called when a ComponentLayout occurs
[EXTJSIV-527] Ensure Card.setActiveItem calls onLayout properly
Moved all locking behavior out of the LockingGridPanel subclass
[EXTJSIV-660] Add startDay to Date Field
[EXTJSIV-653] Added DirectStore shortcut

API Changes

[EXTJSIV-276] The "headers" config in GridPanel has been renamed to the 3.x compatible "columns". All supporting classes are now named XxxxxColumn and are in the Ext.grid.column package. Column xtypes are the same as they were in 3.x
[EXTJSIV-562] Added hideEmptyLabel config which automatically collapses the label space when fieldLabel is empty. Made this the default behavior everywhere; this is a slight change from the old form layout which defaulted to maintaining the space unless hideLabel=false
[EXTJSIV-59] Rename some methods in Menu to be consistent with framework standards
Modified field layout to avoid setting styles when not needed. The fieldLabel element's styles are now applied during render in the template and not in the layout. Fields whose size are not managed by a container no longer set their internal element sizes during layout this can result in wrapping since fields are floated
Add inverse iteration support to Ext.Array.each
Rename hlColor to repairHighlightColor for Tree DragSource
[EXTJSIV-38] TreeViewDDPlugin now has "nodeHighlightColor" which is used on repairs and drops, if applicable. Passing it as the "repairHighlightColor" to the drag zone in this commit. Will be passed to drop zone as "dropHighlightColor"
[EXTJSIV-38] Renamed hlDrop to nodeHighlightOnDrop and nodeHighlightOnRepair on the TreeViewDDPlugin class. They are routed to the TreeViewDragZone and TreeViewDropZone as repairHighlight and dropHighlight respectively
[EXTJSIV-552] Rename MessageBoxWindow to MessageBox
Move all locales package from core to extjs
[EXTJSIV-548] Add allowDrag config option on NodeInterface. Set it to false by default for root nodes
[EXTJSIV-549] Change the names for the relayed events from TreeStore to TreePanel so that they don't collide with Panel's events
[EXTJSIV-602] Put GridViewDDPlugin and TreeViewDDPlugin into proper namespaces (Ext.grid.plugin)
[EXTJSIV-269] Renamed enableCacheBuster to disableCaching, added disableCachingParam config
[EXTJSIV-581] Fixed up the API for TreeStore, TreeView and TreePanel. Also fixed some bugs related to changing the root node dynamically, loading data after TreePanel has already been created and expanding a node while its loading
[EXTJSIV-598] We no longer use the global QuickTips singleton for form error tips. We now create a QuickTip singleton just for the field layout, with the proper baseCls for framing, and register it to respond to an 'errorqtip' property
[EXTJSIV-534] Refactor Lockable into mixin
AbstractSummaryFeature, ChunkingFeature, GroupingFeature, RowSummaryFeature, RowBodyFeature, RowWrapFeature, and SummaryFeature moved to the Ext.grid.feature namespace
Rename locked from Header/Column to ddLock so that it doesnt conflict with the new locking functionality

Compatibility Changes

Removed compat reversing of El.down/El.child - There are too many places in Ext itself that use these calls, and reversing them in the compat layer to match 3.x behavior breaks some Ext 4 code. This will have to remain a documented breaking change in the migration guide
Set up compat code for TreePanel, AsyncTreeNode, TreeLoader and TreeSorter
Moved deprecated TreePanel members to the compat file

Documentation Changes

Guide section added to documentation. Class System and Drawing/Charting Guides added
File field updated
Model.fields updated
Component updated
FocusManager updated
Viewport updated
FormPanel updated
ActionHeader updated
GridViewDDPlugin updated
ColumnLayout updated
DateMenu updated
Panel updated
TabPanel updated
TreeViewDDPlugin updated
Animate updated
ClassLoader updated
Animator updated
BsicForm updated
Label field updated
Labelable updated
Text field updated
ElementLoader updated
Sortable updated
AbstractComponent updated
Locales updated
Ext.Number updated
Tab updated
TabPanel updated
StateProvider updated
Editing updated
Panel updated
CheckboxModel (selection) updated
TreePanel updated
Ext updated
Class updated
ClassManager updated
Array updated
Anim updated
FieldSet updated
Grid Column updated
Application updated
Controller updated
ControllerManager updated
ModelMgr updated
Router updated
BufferStore updated
JSON Writer updated
Charts updated
DrawComponent updated
Toolbar updated
DataView updated
Floating updated
Resizer updated
Store updated
ComponentDragger updated

Known Issues / Upcoming Changes

MVC Example applications and guide
Collapsed vertical headers need to be restyled in IE
Toolips in IE8 have too much padding on the header which can cause it to clip text
Tab Scroller is not working properly in FF < 4
GridFilter example is not laying out properly on first render
Deprecated (methods slated for deprecation) and Since (what version methods were introduced) implemented within the documentation
Column Layout has some performance issues which will be addressed in the next release
API naming consistency implementation
Field Layout performance has improved, but is not where it should be for IE
IE9 Strict mode subpixel rounding can cause wrapping issues (similar to https://bugzilla.mozilla.org/show_bug.cgi?id=458617)

Jamie Avins
3 Mar 2011, 5:04 PM
Updated March 3, 2011

15 Mar 2011, 2:04 PM
Updated March 15, 2011 (PR4)

18 Mar 2011, 5:31 PM
Updated March 18, 2011 (PR5)

6 Apr 2011, 3:58 PM
Updated April 6, 2011 (B2)

20 May 2011, 11:50 AM
This thread should probably be unstickied since it has not been updated in a long while :)