Releases: dojo/dojo1-dgrid
Releases · dojo/dojo1-dgrid
v0.3.16
Significant changes
General/Core
- Store-based grids will now show
noDataMessage
whenstore
isnull
. (#765)
Column Plugins
- Checkboxes and radio buttons using the
editor
plugin will now be focused directly by theKeyboard
mixin. This restores behavior previously seen in dgrid 0.2, and resolves some accessibility issues. (#893) - Added an
enableTransitions
column property totree
. Setting this tofalse
will disable expand/collapse CSS transitions.
Other changes and fixes
General/Core
- Fixed an issue in
util/misc.escapeCssId
which would cause errors to be thrown when used with grids which specifycolumns
as an array. (#977) - Improved
OnDemandList#_calcRowHeight
logic which should lead to more stable scrolling behavior when thefarOffRemoval
threshold is reached
Mixins
- Fixed issues in
ColumnSet
where the last row of grids usingdgrid-autoheight
would be obscured. (#650, #785) - Fixed an issue with
Keyboard
andColumnSet
where the wrong node in the header area would be initially focused. (#984) - Fixed an issue with
Keyboard
andColumnSet
where horizontal scrolling could get out of sync due to keyboard focus causing scroll on an individual row. (#976) - Fixed an error in
Keyboard
when callingfocus()
on an empty grid. It will now focuscontentNode
just like tabbing through an empty grid would do. - Fixed an error in
Keyboard
when it attempts to restore focus.
Column Plugins
- Fixed issues with
editor
calling widgets'startup
methods before they were in document flow. (#958) - Resolved an issue in
tree
which would cause display issues when performing
nested re-expansion. (#550, #874, #904)
Extensions
- Fixed
ColumnReorder
styles to ensure they override dijit theme DnD styles regardless of stylesheet order. (#843) - Fixed an issue in
ColumnResizer
which would cause errors in grids with custom column IDs. (#760) - Fixed an issue in
DnD
where dragging a row somewhere, then immediately dragging the same row to the end of the grid, would not work. - Fixed an error in
DnD
occurring when dragging an item far down anOnDemandList
such that the original item unrenders before dropping. - Improved accessibility of the
Pagination
extension by removing tab stops from disabled pagination links and updating the currently focused link accordingly when the page is changed. (#848) - Added
aria-label
attributes toColumnHider
's popup trigger node andPagination
's rows-per-page select. (#807, #852)
v0.3.15
Significant changes
General/Core
- Documentation has been moved out of the wiki and into the repository under the
doc folder, to facilitate maintaining relevant documentation for both 0.3 and 0.4. - Fixed a regression in
List
which could cause errors in certain situations
due to a feature test being performed before the document is ready. (#907)
Mixins
- The
Keyboard
mixin no longer firesdgrid-cellfocusout
anddgrid-cellfocusin
events when a row/cell is automatically re-focused after an observed update. (#902) - The
Keyboard
mixin now correctly emitsdgrid-cellfocusout
events from the
element losing focus, not the one gaining focus. (#917, thanks cmaus) - Fixed a focus issue in the
Keyboard
mixin which manifested when used in
conjunction with theColumnResizer
extension. (#928) - The
Selection
mixin no longer emits superfluousdgrid-deselect
events
for rows which were already deselected. (#889) - Fixed an issue in the
Selection
mixin regarding disabling text selection in
IE10+. (#786)
Plugins
- Fixed various focus/blur-related issues in
editor
and improved tests. (#903)
Extensions
- Fixed a regression in
ColumnHider
where the node to open the menu became
invisible on platforms with hidden scrollbars. (#886) - Resolved an issue regarding
dojo/dnd
CSS classes and programmatic dgrid
deselection. (#906) ColumnHider
now assigns its menu node an ID in the format
{id}-hider-menu
, notdgrid-hider-menu-{id}
.
Other changes and fixes
General/Core
- Fixed issues related to special characters in column IDs in
Grid
,ColumnSet
,
and theColumnHider
andColumnResizer
extensions. (#885)
Mixins
- Fixed a state preservation issue in the
Keyboard
mixin when a row/cell that
was last focused is removed while the list/grid no longer has focus. (#899) - The
Selection
mixin (andselector
column plugin) will no longer clear the
selection during an attempt to select a row that cannot be selected
(i.e.allowSelect
returnsfalse
). (#822)
Extensions
v0.3.14
Significant changes
General/Core
- Added a
List#addUiClasses
property which can be set tofalse
on any
instance to prevent it from addingui-
classes to various elements, which
can help when using disparate jQuery UI and dgrid themes/skins on the same page.
The option defaults totrue
for consistency with previous versions.
Note that some selectors in various dgrid skins have been updated to not use
ui-
classes, to prevent undesired overriding of jQuery UI themes. (#873) - Added styles for a
dgrid-autoheight
class, which can be added to any list/grid
via theclassName
property to make the grid automatically size based on its
contents. - Fixed an issue where
List#destroy
would throw an error ifuseTouchScroll
is
set tofalse
on a device with touch support. (#867) - Fixed a regression in
List
which would cause observed modifications to tree
children to throw errors. (#862) - Fixed a regression in
OnDemandList
where items added to an empty list or
grid would be inserted in the wrong position. (#840) - Fixed ordering of inserted preload nodes in the linked list in
OnDemandList
,
particularly affectingtree
. (#817) List#useTouchScroll
now defaults tofalse
on platforms which render tangible
scrollbars (namely, desktop browsers on touch-enabled devices such as the Surface).- Fixed feature detection in
util/has-css3
to be more accurate and avoid causing
errors in some situations. (#775)
Mixins
- Fixed a regression in the
Keyboard
mixin which would cause errors when
attempting to re-focus an updated row/cell when it (or the entire grid) is
currently hidden. (#866) - The
Selection
mixin will now listen for both touch and mouse events, rather
than one or the other exclusively. (#757) - The touch event(s) that
Selection
listens for can now be overridden via the
selectionTouchEvents
property. (#846)
Extensions
- Fixed a regression in
CompoundColumns
involving the ability to look up
columns by their originally-specified IDs. (#820) - The
CompoundColumns
extension is now capable of interoperating with the
ColumnHider
andColumnResizer
extensions; note that it must be mixed in
after these extensions in order to work properly. (#834) - The
ColumnHider
andPagination
extensions now include Romanian localization
bundles. (#850, thanks websoftix)
Other changes and fixes
General/Core
- Fixed an RTL issue that caused the column headers to misalign with the body
on Chrome.
Mixins
- Fixed issues in the
Selection
andCellSelection
mixins when the row
representing the starting point of a ranged selection is replaced (due to an
observed store modification) prior to the end point being selected. (#858) - The
ColumnSet
mixin no longer excludes touch devices when registering
wheel listener logic (for combination mouse+touch devices).
Column Plugins
- Fixed an issue in
editor
where the wrong column would be referenced from
thechange
event handler for native inputs, particularly affecting radio
buttons. (#876)
Extensions
- Added logic to
ColumnHider
to skip hidden columns when callingleft
and
right
(which affects e.g.Keyboard
navigation). - Improved performance of first resize with
ColumnResizer
. (#832) - Fixed errors in the
DnD
extension when using a mouse on a mouse+touch device. - The
Pagination
extension will no longer cancel an ongoing async request if
another call is performed with the same request promise. (#847, thanks jandppw)
v0.3.13
Significant changes
General/Core
List#destroy
now resets_started
tofalse
to safeguard against debounced
rendering-sensitive code running after the instance's DOM is no longer relevant. (#792)- Added logic to account for
dojo/store/Observable
's propensity to drop items
at page boundaries, primarily in theList
module. (#701, #714) - Items added to stores which should appear at the end of a list or grid will now
appear correctly. (#363) - Fixed a long-standing regression in the
util/has-css3
module's
css-transforms3d
test due to a modified classname. (#776, thanks amuraco)
Mixins
- Updated
Selection
to preferpointer
overMSPointer
where available.
This fixes ctrl+clicking behavior in IE11. Note that this change replaces the
has("mspointer")
feature withhas("pointer")
, which returns"pointer"
,
"MSPointer"
, orfalse
. (#794)
Column Plugins
- The
expand
method added by thetree
plugin will now return a promise,
resolving after child data has loaded. (#739) - The
canEdit
function supported byeditor
columns is now passed the proper
up-to-datevalue
. (#751)
Extensions
- The
CompoundColumns
extension is now capable of interoperating with the
ColumnSet
mixin; seetest/extensions/CompoundColumns.html
for examples.
(#383)
Other changes and fixes
General/Core
- Fixed an issue where
sort
would be ignored if it was a function with 0 arity,
such as a hitched function being passed to a Memory store. (#771) - Fixed an accessibility bug in non-Firefox browsers by only overriding
bodyNode.tabIndex
specifically for Firefox. (#823) - Fixed a
loadingMessage
regression inOnDemandList
which manifested
particularly whentotal
is not properly set inQueryResults
. (#769)
Mixins
- Fixed an issue in
Selection
andCellSelection
which would cause errors when
selecting very long ranges spanning beyond the currently-rendered rows in an
OnDemandList. Note that while errors will no longer be thrown, the selection
range will still be reset. (#705)
Extensions
- The
Pagination
extension now includes an Arabic localization bundle.
(#770, thanks elombashy)
v0.3.12
Significant changes
General/Core
- Fixed a regression in
Grid
since 0.3.7 where formatters were run in the
global context by default instead of in the context of the column definition.
(#748, thanks mbretter) - The
className
column definition property now supports being assigned a
function value, in which case the function will be called for each row in the
grid (including the header). For rows in the body, the associated data object
(e.g. store item) will be passed, but for the header row, nothing will be
passed, so this will need to be handled in the function's logic.
Mixins
Selection
andCellSelection
now firedgrid-select
anddgrid-deselect
events on the same turn thatselect
is called. The events still include
rows
orcells
containing all rows or cells selected at once; only the
timing of the events firing has changed.- Fixed an issue in
Selection
code flow which caused devices supporting
MSPointer to behave incorrectly with recent versions of Dojo.
Extensions
- Fixed a regression in
Pagination
whererowsPerPage
(and thus also
queryOptions.count
) would be set to a string rather than a number when the
page size drop-down is used. (#752)
Other changes and fixes
Mixins
- The
Keyboard
mixin now properly adds/removes header navigation when
set("showHeader", ...)
is called. (#734)
Column Plugins
- Added logic to
editor
to preserve editor focus when a row is updated
(particularly useful with always-on editors with autoSave enabled). (#579) - Removed a
mousedown
event handler fromeditor
which was interfering with
certain widget features such asTextBox#selectOnClick
; this event handler
should no longer be necessary. (#704)
Extensions
- The
ColumnHider
extension's menu trigger node no longer reopens the menu if
the menu is already open; it will close it just like clicking anywhere else
outside the menu. (#755)
v0.3.11
Significant changes
General/Core
- Fixed a regression related to
OnDemandList
in conjunction with thetree
plugin, where queries would not fire due to confusion between different levels.
(#717) - Fixed a regression related to
List
andOnDemandList
in conjunction with
tree
by adding acleanEmptyObservers
flag, whichtree
will set to false.
(#713) - Added a
highlightDuration
property toList
to allow customizing the length
of time that rows remain highlighted when modified. (#736, thanks Zarillion)
Mixins
- Fixed a follow-up issue in
Selection
related to the fix for #226, where
deselect events were not firing for removed rows. (#684)
Column Plugins
- The
tree
column plugin will now include anoriginalQuery
property in the
options
object passed togetChildren
, allowing store implementations to
re-apply query filters to queries for child items. (#145, #732)
Extensions
- The
Pagination
extension now has proper setters forrowsPerPage
and
pageSizeOptions
. IfrowsPerPage
is set to a value that is not present in
pageSizeOptions
, an option will be added for the new value. The drop-down's
options will always appear in ascending order. (#631)
Other changes and fixes
General/Core
- Fixed an issue in
OnDemandList#_calcRowHeight
to properly calculate height
of the first row. (#552) - Fixed a compatibility issue in
OnDemandList
anddojo/store/DataStore
due
to a conflicting property inqueryOptions
. (#440)
Mixins
- Fixed an issue in
Selection
where its select-all keybinding would prevent
select-all functionality within text editors. (#711) - Fixed an issue in
Selection
where the selection could fall out of sync for
an item with a falsy id. (#715)
Extensions
- The
Pagination
extension will now render its footer controls properly in RTL
locales (provideddgrid_rtl.css
is loaded). (#707)
v0.3.10
Significant changes
General/Core
- Updated the README and fixed the redirect in
test/intern/runTests.html
to
reference the correct path where intern-geezer installs to as of Intern 1.2. - Fixed some issues, including a regression, in
List
involving handling of
observed store updates, particularly in conjunction with overlapping queries
performed byOnDemandList
. (#701) - Fixed a regression in
_StoreMixin
(affectingOnDemandList
andPagination
)
where settingstore
tonull
would cause an error. (#688, thanks kilink) - Fixed a regression in
_StoreMixin
which caused an error when updating the
only row present in a list or grid. (#693) - Updated the
put-selector
dependency to 0.3.5, which includes a fix for an
issue involving iOS Safari's JavaScript optimization, which was causing
errors in dgrid.
Other changes and fixes
Mixins
- The
Keyboard
mixin will now manage focus if a row is updated or removed;
in the former case, the new row will receive focus (assuming it is within
the currently-rendered area), otherwise the next row will receive focus. (#496) - The
editor
column plugin will now return focus to the parent cell when an
editor is dismissed, if theKeyboard
mixin is also in use. (#263)
Extensions
- Improved accessibility of the
ColumnHider
extension, adding a tab stop for
the menu trigger, focusing the first checkbox within the menu when it opens,
allowing it to be dismissed by pressing escape (at which time focus returns
to the trigger), and adding ARIA role and label to the popup menu itself.
v0.3.9
Significant changes
General/Core
- dgrid now uses Intern for unit and functional tests,
instead of DOH. See the README for setup instructions. - Fixed a regression with
OnDemandList
which would cause improper rendering
after scrolling. (#548) - Fixed an issue with
OnDemandList
causingqueryRowsOverlap
only taking
effect between the first two queries. (#644) - Added the capability to opt out of custom TouchScroll logic on devices that
support touch, by settinguseTouchScroll: false
on the instance. (#656) - Fixed logic in
Grid
,GridFromHtml
, andselector
to allow specifying a
blank label for a column by passing an empty string tocolumn.label
. (#664)
Mixins
- The
Selection
mixin now uses MSPointer events where available, which avoids
issues in cases where something cancels a MSPointer event, preventing relevant
mouse events from firing (for example,dojo/dnd
+dojo/touch
in 1.9). (#658) - The
CellSelection
mixin now supports selecting or deselecting all columns
in a row if a row object is passed. - Fixed a regression in the
Selection
mixin where unselectable rows could still
be selected via ctrl+click.
Column Plugins
- Fixed a regression in
selector
which caused an error when clicking the
select-all checkbox. (#674)
Extensions
- Fixed a regression in the
Pagination
extension where duplicate rows could
be displayed if several paging/sorting requests are fired in quick succession
to an asynchronous store. Note that the fix involves canceling old requests,
which may cause Deferred errors to be logged to the console; this is normal.
Thedgrid-error
event will not be emitted for canceled requests. (#635)
Other changes and fixes
General/Core
- Fixed a potential issue in
Grid
in non-ES5 environments that augment the
Array prototype. (#624) - Fixed an issue with
OnDemandList
involving where a new row is inserted in
the DOM when the relevant result set is currently empty. (#647) - Fixed issues involving
List
andOnDemandList
not properly cleaning up
observers that are no longer needed. (#642, #677) - Reworked logic in
List#adjustRowIndices
to not skip updating row indices
even whenmaintainOddEven
isfalse
. - Fixed an edge case in
OnDemandList
where it would refuse to load additional
data if the grid were resized larger while its viewport is scrolled to the top.
(#361)
Mixins
- Fixed an issue in the
ColumnSet
mixin which affected horizontal scrolling at
certain zoom levels on Chrome. - The
Selection
andCellSelection
mixins no longer lose selection of rows
when items are modified. Rows are still deselected if items are removed.
(#226)
Column Plugins
- Fixed issues in the
editor
column plugin regarding consistency of
dirty data anddgrid-datachange
event firing for always-on radio buttons. - Fixed an issue in the
editor
plugin that caused errors in Chrome/Safari when
an editor loses focus and hides due to clicking within the browser's UI
controls. (#603) - Fixed an issue in the
editor
column plugin's cleanup logic which could occur
when the loading node for a request is removed before the request completes.
(#195) - The
editor
column plugin will now directly update row data in cases where
a store is not being used. (#171)
Extensions
- Fixed an issue with the
ColumnReorder
extension involving grids whose IDs
end with a hyphen followed by numbers. (#556) - The
ColumnResizer
extension now properly calls the grid'sresize
method,
even on programmatically-triggered resize operations. - Fixed a potential issue in the
CompoundColumns
extension in non-ES5
environments that augment the Array prototype. (#624) - Added localizations for the
Pagination
extension:
v0.3.8
Significant changes
General/Core
- The
dgrid-sort
event now emits off of the original target of the event which
triggered it, rather than always off of the header cell. (#539) - Fixed a regression (present since 0.3.5) in
OnDemandList
which prevented
noDataMessage
from being displayed for async stores. (#519) _StoreMixin
(used byOnDemandList
,OnDemandGrid
, andPagination
) now
supports calling theset
method of Stateful objects duringsave
. (#563)
Column Plugins
- Resolved an infinite-recursion regression in
selector
, observable when used
in conjunction with theColumnReorder
extension. (#525)
Extensions
- Fixed a regression in the
ColumnResizer
extension where columns were no
longer appropriately adjusted when the first resize occurred. (#526)
Other changes and fixes
General/Core
- Fixed issues in
OnDemandList
and thePagination
extension where
noDataMessage
could potentially appear multiple times for successive
empty query results. (#542)
Mixins
- Resolved an issue in the
ColumnSet
mixin which caused some browsers to block
clicks near the bottom of the grid when no ColumnSet scrollbars are shown.
(#571)
Column Plugins
- Resolved an issue in
selector
where selectors would not work in cases where
the initial column structure did not contain a selector column, but the
structure was later changed to include one. (#533) - Resolved an issue in
selector
where rows that should be unselectable were
still selectable by clicking within the selector column. (#545)
Extensions
- Revised the previous workaround for IE8 in the
ColumnHider
extension to
an alternative which involves less code and avoids an issue when all columns
are hidden. (#537) - The
DijitRegistry
extension now implements theisLeftToRight
method, to
accommodate needs of Dijit layout widgets in Dojo 1.9. (#536) - The
DijitRegistry
extension now implements thegetParent
method, to
accommodate e.g.dijit/_KeyNavContainer
. (#538, thanks k2s) - The
Pagination
extension now properly only shows page 1 once if there is
only one page of results. (#520) - The
Pagination
extension now properly initializes the page size drop-down
based on the initialrowsPerPage
value, if one matches.
(#577, thanks Gordon Smith)
v0.3.7
Significant changes
General/Core
Grid
now supports theformatterScope
instance property, along the same
lines asdojox/grid
. (#470; thanks gratex)Grid
has been refactored to includeformatter
considerations within the
defaultrenderCell
logic; this allowsformatter
functions to coexist with
theeditor
andtree
column plugins. (#495, #497; thanks gratex)- Fixed an issue with
_StoreMixin
which causedset
functions in column
definitions to be ignored for all but the last subrow or columnset. (#489)
Mixins
- Fixed a regression in the
Selection
mixin due to text selection changes,
where Firefox would not allow selecting text or moving the cursor inside
form inputs. (#492) - The
Selection
mixin no longer callsallowSelect
fordeselect
calls
(onlyselect
calls). This avoids potential errors when resetting column
structures, and reduces unnecessary calls. - The
Selection
mixin has been refactored to break out logic for each selection
mode to a separate method. These methods follow the naming convention
_modeSelectionHandler
(where "mode" would be the name of the mode).
This allows custom selection modes to be added easily. - The
Selection
mixin now supports atoggle
mode, useful for touch input
where holding a modifier key to deselect is generally not an option. - Fixed an issue with the
Selection
andCellSelection
mixins where calling
deselect
with a range would actually deselect the first target, then select
everything else in the range. (#491)
Column Plugins
- The
selector
plugin will now match its disabled state against the
allowSelect
method on the grid, as well as the column definition's
disabled
function. - The
tree
plugin'srenderExpando
function now receives a 4th argument:
the object represented by the current row. (#427; thanks pags)
Extensions
- The
ColumnResizer
extension no longer emits superfluous events for all columns
on the first resize. (#441) - The
DnD
extension now inherits theSelection
mixin to guarantee resilient
handling of drag operations where part of the selection has scrolled out of
view and been unrendered. - The
Pagination
extension now applies thedgrid-page-link
class to all
navigation controls (not just the page numbers), to make them distinguishable
by something other than what tag they use. (related to #379)
Other changes and fixes
General/Core
- The
List
module'sstartup
method now correctly checks_started
before
callingthis.inherited
. (Thanks dancrumb) - Fixed an issue in
List
which could cause errors on certain successive tree
row removals/insertions. (#418, #467)
Mixins
- The
ColumnSet
mixin now adjusts the positioning of its scrollbars
appropriately if the footer node is present. (#463) - The
CellSelection
mixin now properly deselects if an unselected cell within
the same row as a selected cell is right-clicked. - Fixed issues with the
Keyboard
mixin pertaining to resetting columns, or
not setting them initially. (#494) - The
Keyboard
mixin now ensures that if the header area is scrolled due to a
focus shift, the body scrolls with it. (#474)
Column Plugins
- Fixed an issue in the
editor
plugin that caused checkboxes to fail to
initialize values properly in IE < 8. (#479) - The
tree
plugin no longer completely overwrites classes on the expando node
when expanding/collapsing, so custom classes will be preserved. (#409)
Extensions
- The
ColumnHider
extension now absolutely-positions the node for opening the
menu, which ensures it is visible even on platforms with no vertical scrollbars.
(#406) - The
ColumnHider
extension now relies on CSS to specify an icon, rather than
using text to show a plus sign. The icon can be changed by overriding
the background on thedgrid-hider-toggle
class. (#306) - Fixed issues in the
ColumnHider
extension involving redundant calls to
toggleColumnHiddenState
. (#464) - The
DnD
extension now cleans references from the dnd source's hash when
removeRow
is called on the grid. (#335) - Resolved an issue in
Pagination
where IE9+ would dispatch events to the
wrong handlers after clicking one of the navigation controls. (#379)