0.8.16 (Mar 26, 2013)
Features:
- Handsontable in Handsontable editor
- performance and code quality fixes
height
andwidth
settings can now be functions (that return a number)
Bugfixes:
- autocomplete menu did not reset
- margin
destroy()
of one Handsontable instance made other instances on the same page unfunctional- Autocomplete (Bootstrap Typeahead) did not allow empty string as a value (#254)
- outsideClickDeselects : false disables all focus in other inputs outside the table (#408)
- can't scroll all the way horizontally (#430)
- scrollable Handsontable does not work well with Twitter Bootstrap (#224)
- weirdly shrinking table when height attribute was not set (#461)
Other:
- trying to load a string as a data source now throws an error
0.8.15 (Mar 18, 2013)
Features:
- new callbacks:
onSelectionEnd
andonSelectionEndByProp
(see README.md for usage information) - new demo page Callbacks
- breaking change:
getSelected
method output has slightly changed. Was: [topLeftRow
,topLeftCol
,bottomRightRow
,bottomRightCol
]. Is: [startRow
,startCol
,endRow
,endCol
]. This gives information about the direction of the selection - now you can tell if the selection started from left to right or otherwise.
Bugfixes:
outsideClickDeselects: false
disables all focus in other inputs outside the table (#408)- copy paste in Mac Safari didn't work (#470)
- table jumps back and forth when scrolling (#432)
- destroy doesn't unload context menu functionality (#434)
- throwed error when Enter key was pressed on autocomplete cell in the last row (#497)
- Autocomplete in strict mode allows values other than predefined (#405)
0.8.14 (Mar 14, 2013)
Features:
- now, your data source can be a function! See the last section of the Array, object and function data sources page for examples (fixes #471, #435, #261)
- also the column
data
property can be a function as well! Again, see the last section of the data sources page for examples - new methods:
countEmptyRows
,countEmptyCols
,isEmptyRow
,isEmptyCol
. You can define your own functions forisEmptyRow
andisEmptyCol
(see README.md for details)
Bugfix:
- replace reference to non-existent Exception with Error (#494)
- textarea copyPaste covering page elements (#488, #490)
0.8.13 (Mar 12, 2013)
This release adds a min-width: 600px
to the test suite to make sure that 100% of current tests are passing in Travis CI (PhantomJS) as well as in the desktop browsers.
There are still many bugs to be fixed, but now it should be much easier to keep the increasing quality of future versions.
0.8.12 (Mar 12, 2013)
This release doesn't really bring any improvements for the end user but is a big step towards test automation. From now on, a push to the master
branch triggers a Travis CI build that performs automated testing using grunt-contrib-jasmine. Thanks @bollwyvl for your help!
As a side effect, tests are now be runnable using PhantomJS. To run the test suite in PhantomJS, type grunt test
(first run npm install
to make sure you have all dependencies installed). PhantomJS runs the test suite much faster than desktop browsers, so it may come handy.
Bugfixes:
destroy
method now clears all pending timeouts
0.8.11 (Mar 8, 2013)
Features:
- this may be a breaking change for some applications: Now the third parameter to the
alter
method tells the amount of rows/columns to be inserted/removed. This adds more consistency to the API. (#368, 67fe67c) - merged pull request #474 - Travis-CI integration. The tests don't pass yet but don't worry about it yet. It is a work in progress on complete test automation. Making all tests pass on Travis CI headless browser may take few more days or weeks :)
Bugfix:
- again, this may be a breaking change for some applications: Fix very long standing inconsistency. Restored original
setDataAtCell
requirement of the second parameter to be a column number (as described in README.md since always). If you happen to experience an error insetDataAtCell
after upgrade, change your usage of this method to the new methodsetDataAtRowProp
(#284, 90e1b67) - new methods
setDataAtRowProp
andgetDataAtRowProp
that set/get data according to the property name in data source. See README.md for clarification (#284, 90e1b67) - merged pull request #266 - fix countCols for arrays with column settings
0.8.10 (Mar 7, 2013)
Bugfix:
Docs:
- simplify CSS for demo pages (get rid of
bottomSpace
classes) - refresh the style of jsFiddle links
0.8.9 (Mar 6, 2013)
This is a feature release of a new cell type. For people waiting for some bug fixes, I promise next release will focus on fixing some important bugs!
Features:
- Date cell type. Updated pages Date and Cell types. Solves issue #431
- refactored the
text
,autocomplete
anddate
cell editors to share as much code as possible
0.8.8 (Mar 4, 2013)
Bugfixes:
startRows
/startCols
option did not work as described in README.md. This parameters should be only taken into account when NO data source is provided (5c865ba)- finish editing should move the focus aways from textarea to table cell (f4f6496)
0.8.7 (Mar 1, 2013)
Bugfixes:
- use default cell editor for a cell that has declared only cell renderer (#453, a5c61a2)
- copy/paste did not work on Mac since 0.8.6 (#348, 463d5c9)
- global shortcuts (like CTRL+A) should be blocked when cell is being edited (8363008)
- numeric cell editor did not convert cell data to number type when data source was an object (b09f6d3)
- another attempt to solve scrolling to the top of table on any key press if the top is not on the screen (#348, d37859b)
0.8.6 (Feb 27, 2013)
Features:
- Numeric cell type. Updated pages Numeric and Column sorting. Solves issues #443, #397, #336. Partially solves issue #121 (a052013)
- autoColumnSize feature is now aware of renderer functions (before this, cells rendered with autocomplete and numeric renderer were too narrow) (7770f8a)
Bugfix:
- scrolls to top of table on any key press if the top is not on the screen (#348, 290cde9, 408f29d)
- cell editor was using a wrong cell value if column order was manually changed (#367)
- cell editor dimensions were not refreshed if table was rerendered during editing
- fix recalculation of container dimensions after window resize (#400, #428)
Other:
- reimplement cell editing abstraction. Now TextEditor
<textarea>
is decoupled from cell selection and copy/paste keyboard handling (14e4cc1, 1eb01bd, f2b412f, e5af5d7) - upgrade Bootstrap Typeahead to v2.3.0
- build system now requires Grunt 0.4.0 (read instructions how to upgrade here: http://gruntjs.com/upgrading-from-0.3-to-0.4) (3ebed1d, 6d01ae5)
0.8.5 (Feb 18, 2013)
Bugfix:
- clear currentRowClassName and currentColumnClassName when refreshing selections (#398, 8df5de9) - thanks @jaycfields
0.8.4 (Feb 17, 2013)
Features:
Other:
- add jQuery Plugins Registry manifest file
0.8.3 (Jan 23, 2013)
Features:
- optimize jquery-autoresize plugin: arclones element is emptied before injecting another node
- new configuration options
currentRowClassName
andcurrentColClassName
along with new example page Highlight current row & column [TODO: write tests] - Manual column resize
- Column sorting
- compability: automatic column size is asserted
true
whencolWidths
option is not provided - apply automatic column size when double clicked on manual resize handle [TODO: write tests]
- Scroll example page describes difference between available column stretching modes (all, last [default], none)
- manual column move
Breaking changes:
loadData
no longer sends list of changes toonChange
callback. That was not performant. Now if sendsnull
changes object andloadData
as source string.
Bugfixes:
- overflow auto only worked when declared in inline style (not in CSS class) (issue #339 point 6)
- during initialization, sliders were shown for a while in the top left corner
- scrolling issues (#343, #331, partially #360)
- deselection when param
outsideClickDeselects
set to true (issue #351) - order of callbacks when clicked outside of a cell (issue #269)
- context menu was shown when clicked outside of the table (issue #306)
0.8.2 (Jan 7, 2013)
Features:
- new options
copyRowsLimit
,copyColsLimit
and callbackonCopyLimit
. The options configure the amount of rows and columns that can be copied to clipboard (default 1000). The callback will ba called if the limit is exceeded (response to an issue first reported by @itanex / #295) - performance fixes for selecting all cells (CTRL+A)
- auto width [TODO: write more]
- auto stretch [TODO: write more]
Bugfix:
selectCells
did not perform multiple selection when given 4 parameters
0.8.1 (Jan 6, 2013)
Bugfixes:
- fixed error when loading a new data source with fewer rows/columns
- using
minCols
withcolumns
option caused an infinite loop. Nowcolumns
length sets a fixed number of columns (optionsstartCols
,minCols
,maxCols
will be ignored whencolumns
is set) (fix #334) - onChange was triggered before data was rendered (fix #333)
- public
destroy
method did not unbind Handsontable events (fix #335) - fix error when data row was externally removed while scrolling
Other changes:
- Custom HTML demo page (Rendering custom HTML in header) did not work well
- JSFiddle links now also work in Context Menu demo page
- tests are now passing 100% in Chrome, FF, IE9 and Opera. Tests are 99% passing in IE7-8, but remaining 1% does not affect normal operation in these browsers
0.8.0 (Jan 2, 2013)
After series of bugfixes in last 3 beta version, this is the first stable release in 0.8.x branch. From now on, I will try to update critical issues more frequently.
New features since 0.8.0-beta3:
- new methods
rowOffset
,colOffset
,countVisibleRows
,countVisibleCols
- new callback
onCreateRow
[TODO: write tests] dataSchema
can now be a function that returns object/array [TODO: write tests]- when using
overflow: auto
, only relevant scrollbars should be displayed (first reported by @dansabirov / #295) - fixed scrolling with arrow keys
- column title can be given as
columns[].title
(not only colHeaders[]) [TODO: write tests] - column width can be given as
columns[].width
(not only colWidths[]) [TODO: write tests] - column type can be set using simple strings:
autocomplete
,checkbox
Other changes:
- public methods
colCount
,rowCount
are removed. UsecountRows()
andcountCols()
public methods instead - public methods
setCellReadOnly
,setCellEditable
are removed. UsereadOnly
cell property to make a cell read-only. Seedemo/readonly.html
for examples - options
minWidth
,minHeight
are removed. Their definitions were to blurry and usage case too limited. Usewidth
andheight
options instead and provide as many rows/columns in your data source as you need - add
render
method to README.md
Bugfixes since 0.8.0-beta3:
- enter on last row/col should add more rows/cols if minSpareRows/minSpareCols > 0
- double clicking on fill handle fills the column to the last non-empty row
- pressing enter/tab in autocomplete moves to next row/column
- CTRL+A works slow on large data sets (as reported by @brivazac / #295)
- CTRL+A, CTRL+C sequence did not work well if CTRL was not released
- page up/page down worked wrongly
Known issues:
- clicking on cell & row borders has no effect (first reported by @cscribner / #295)
- copy of large selection (5k, 10k, 100k rows etc) freezes IE8 (first reported by @itanex / #295). Below 1k rows works fine. The only solution I can think of right now is to set copy limit in IE8 to 1000 rows.
- paste of large selection (100k rows) freezes Firefox (first reported by @ravio / #303)
- autocomplete does not work with empty field in source; autocomplete strict mode looks broken (as reported by @MDron / #303)
- scrolling mouse wheel/page up/page down should not block the window scroll if the first row/last row was reached
- page up/page down does not behave exactly as in Google Docs (moves selected cell to first visible row). This is because transformStart implies scrollToCell. It should be decoupled sometime in future
0.8.0-beta3 (Dec 18, 2012)
Beta preview has been updated: http://handsontable.com/0.8.0/
Bugfixes since 0.8.0-beta2:
- fixed scrolling with touchpad (as reported by @codename- / #303)
- fixed double click on cell (as reported by @MDron, @ravio / #303)
- CTRL+A then Delete did not remove redundant empty rows in scroll example (as reported by @ravio / 303)
- fill handle (drag-down) feature is currently broken (as reported by @chaowarat / 301)
- CTRL+Enter while editing multiselection did not work (should apply the value to all the selected cells)
- now works in IE7
Other changes since 0.8.0-beta2:
- removed
jquery.ui.position.js
fromjquery.handsontable.full.js
, because it seems to have no effect (explained indemo/contextmenu.html
)
0.8.0-beta2 (Dec 14, 2012)
Beta preview has been updated: http://handsontable.com/0.8.0/
New features since 0.8.0-beta1:
- now the table is rendered even faster with
requestAnimationFrame
Bugfixes since 0.8.0-beta1:
- fixed known issue "selecting an area and clicking one of its cells within 500 ms starts editing of that cell"
- fixed known issue "table width and height is now configured using
width
andheight
settings" - fixed error when clicking on row/column header (related to @cscribner / #295)
- fix copy-paste in Chrome (thanks @ravio / #295)
getRowHeader()
referenced to colHeaders instead of rowHeaders (thanks @marint / #295)- fix performance of
loadData
(thanks @codename- / #295) - now works in IE8, still not yet in IE7
0.8.0-beta1 (Dec 11, 2012)
Beta of new upcoming version 0.8.0 can be previewed here: http://handsontable.com/0.8.0/
Features:
- completely new rendering engine codenamed "Walkontable" that uses a
canvas
type approach to draw the visible part of the table on screen. Works smoothly even with data sources above 100 000k rows.
Bugfixes:
- fixed CSS problems with Foundation framework
Other changes:
- Handsontable core properties
colCount
,rowCount
do not exist anymore. UsecountRows()
andcountCols()
public methods instead
0.7.5 (Nov 26, 2012)
Features:
- new settings:
minRows
,minCols
,maxRows
,maxCols
(fixes #225) startRows
andstartCols
should now be only used to define how many empty rows should be created on grid initialization- now you can use
columns
to configure number of autocomplete items (fixes #242)
Bugfixes:
loadData
now will remove empty rows from grid if new data source has less rows- new rows are now correctly created when using nested object data source (#255)
- copy and paste issues with nested object data source (#250)
0.7.4 (Nov 19, 2012)
Bugfixes:
- fix error when pasting values to a grid with dataSchema (issue #237)
- loadData should remove empty row if source data has more empty rows than allowed by minSpareRows (issue #239)
- textarea dimensions were not updated if grid was rerendered while editing
0.7.3 (Nov 14, 2012)
Features:
- big news: build now contains full and minified JS and CSS packages. See dist/ directory for details.
- added experimental "Edit in jsFiddle" link in autocomplete example. If no issues are observed, I will add it to all example pages.
Bugfixes:
- fixed issue with setCellReadOnly that was reported on Stack Overflow.
- fixed performance issue with cells being rendered twice in
loadData
(issue #233)
0.7.2 (Nov 12, 2012)
Fixes exeption when editing cell in IE8 (issue #232) and problems when using Autocomplete with Ajax.
Added Ajax example on autocomplete.html
0.7.1 (Nov 9, 2012)
Mosty fixes for the Autocomplete feature as well as a new (easier) syntax for the Autocompelte. See autocomplete.html for examples. Old syntax should still work due to the legacy layer.
Features (described in README.md):
- new public method
destroyEditor
(#229).
0.7.0 (Nov 5, 2012)
Please note that this release has partial incompability with previous releases. It is step in a direction to make Handsontable more flexible and customisable.
Adds binding to object data source (prior versions only allow 2-dimensional array data source)
Adds selective column rendering (using columns
option)
Now data is assigned to Handsontable as reference (prior versions had data copied)
Adds custom cell types (currently text, autocomplete or checkbox)
Features removed:
- Legend (use cell renderers instead)
0.6.0 (Sep 27, 2012)
Please note that this release has partial incompability with previous releases, though it should affect only border cases.
Potential incompabilities with version 0.5.1:
- public method
getData
no longer hasasReference
parameter (usegetDataReference
instead) - to have scrollable grid, you must set "overflow: scroll" or "overflow: auto" directly on Handsontable container. Until now, it worked also when you set overflow scroll/auto on any of the container parents, but that turned out to be not compatible with Twitter Bootstrap
Features added in 0.6.0 (described in README.md):
- virtual scrolling that solves problem with row/column header flicker in IE and FF when the grids quickly scrolled
- public method
getData
now accepts optional arguments to return only fragment of grid data (e.g. current selection) - new public method
getDataReference
works the same asgetData
but returns data as reference, which is faster but can mess up if manipulated outside the plugin
Bugfixes:
- keyword
this
in onChange, onBeforeChange, onSelection callbacks points to container HTML element - editing a field in Firefox 3.6.28 skipped the first character
- added default font-family and font-size for .typeahead
- TAB does not move cell selection if cell is not being edited (#151)
- HTML special chars should be preserved in data map but escaped in DOM (#147)
- rowHeaders/colHeaders false should not init row/col headers (#141)
- legend icon did not resize column header
0.5.1 (Sep 7, 2012)
- features (described in README.md):
- allow icons in Legends (see example)
- new public method
refreshLegend
- new configuration option
outsideClickDeselects
- added data function reference in autocomplete match (
match: function (row, col, data)
)
- bugfix:
- option
fillHandle: 'horizontal'
and'vertical'
did not work
- option
0.5.0 (Aug 15, 2012)
- features (described in README.md):
- public methods
getDataAtCell
,setCellReadOnly
- thanks @Dinesh-Ramakrishnan - public methods
getSelected
- thanks @littley! - public methods
getRowHeader
,getColHeader
,getCellMeta
- configuration
autoWrapRow
,autoWrapCol
,enterBeginsEditing
- now Enter key behaves more like in Excel (see issue #56)
- public methods
- code quality:
- add
"use strict";
(ECMAScript strict mode) to all components - allow to run in jQuery noConflict mode
- namespace was changed from
handsontable
toHandsontable
to avoid var name conflicts that people were having by accident - now code is divided into components and built with Grunt
- add
- tests: added four Selenium IDE tests to automate testing of bugfixes. This is a start - more tests will be added in future versions. Tests are located in test/ directory.
- 75 bugfixes
0.4.2 (Jun 18, 2012)
- features:
- row and column headers (options:
rowHeaders
,colHeaders
) - public methods
selectCell
,deselectCell
- row and column headers (options:
0.4.1 (Jun 15, 2012)
- feature: public methods
setDataAtCell
,loadData
now have a new parameterallowHtml
that will omit escaping of HTML code
0.4.0 (Jun 04, 2012)
- first version number to be documented here
- feature: undo/redo