UNPKG

35.6 kBMarkdownView Raw
1# 2.32.1-0 / Unreleased
2
3# 2.32.0 / 2019-09-10
4 * [Added] `node.hasClass(className)`
5 * [Added] `tree.applyCommand()` and `node.applyCommand()` (experimental!)
6 * [Added] `tree.isLoading()`
7 * [Added] `tree.toDict(includeRoot, callback)` and `node.toDict(recursive, callback)`:
8 callback can now return `false` or `"skip"` to skip nodes.
9 * [Fixed] #951 Hover issue in unselectable radio
10 * ext-dnd5: allow autoExpand even if dropping is prevented
11 * [Fixed] ext-filter: tree.rootNode.subMatchCount is now set correctly
12 * [Fixed] #955 node.navigate($.ui.keyCode.DOWN, false) does not return promise
13 * Stop testing with jQuery UI 1.10 and 1.11 (only jQuery UI 1.12 remains)
14
15# 2.31.0 / 2019-05-30
16 * New extension **ext-grid** (experimental)<br>
17 This is a variant of `ext-table` that introduces viewport support, which
18 allows to maintain *huge* data models while only rendering as many DOM elements as necessary.<br>
19 Main changes:
20 - A viewport is defined by the number of visible rows (`tree.viewport.count`) and the index of the first visible row (`.start`)
21 - When scrolling, rows are not hidden, but removed and replaced. (This implies that the contents of embedded input fields should be written into the model immediately.)
22 * Refactored **ext-dnd5**<br>
23 Some **breaking changes** were made, mainly to improve handling of the dropEffect
24 (note that ext-dnd5 was and still is experimental and in progress).
25 - Remove `dnd5.dropEffect` callback option (set `data.dropEffect` instead)
26 - Remove `dnd5.dragImage` callback option (call `data.dataTransfer.setDragImage()`
27 - and set `data.useDefaultImage = false` instead)
28 - Rename `dnd5.preventRecursiveMoves` to `dnd5.preventRecursion`
29 - `dnd5.preventVoidMoves` now only aplies to 'move' operations, so we can *copy* before self
30 - [Added] `dnd5.preventSameParent` option
31 * [Added] hook `treeStructureChanged`
32 * [Added] methods `tree.findRelatedNode()`, `node.findRelatedNode()`
33 * [Added] method `node.getPath()`
34 * [Added] methods `$.ui.fancytree.getDragNode()`, `$.ui.fancytree.getDragNodeList()`
35 * [Added] event `updateViewport`
36 * [Added] tree option `.checkboxAutoHide` to hide checkboxes unless selected or hovered.
37 * [Added] tree option `.treeId` to prevent generation of a new sequence if the tree is re-initialized on a page.
38 * [Changed] `.getTree()` now also accepts the tree id string
39 * [Changed] #939: Keep a `partsel` flag that was explicitly set on a lazy node
40 * [Changed] ext-clones: make default key generation more robust against collisions
41 * [DEPRECATED] loaderror and lazyload options now throw an error instead of falling back to the correct loadError and lazyLoad
42 * [DEPRECATED] `tree.applyFilter` was removed
43 * [Fixed] #918 SVG font awesome 5 glyphs remove badge counter when parent node is collapsed
44 * [Fixed] #921 ext-edit respectively focus handling: Internet Explorer scrolls briefly
45 to the top/left of the tree container element after editing a node title if the
46 tree container is partially outside the viewport
47 * [Fixed] #931 Selecting grandparent selects all nodes of radiogroup in selectMode=3
48 * [Fixed] #946 dnd5 - Counter badge shows up, although the drag was cancelled from dragStart callback
49 * [Fixed] #947 dnd5 - dragEnd is fired only when re-ordering nodes within the same parent
50 * [Fixed] missing tree.error() and broken node.error()
51 * [Fixed] a bug in ext-logger
52 * Optimized performance of `expandAll()` and `ext-filter`
53 * Replace jshint/jscs with eslint
54 * Now testing on Puppeteer/Chromium instead of PhantonJS
55 * Use LF on Windows when checking out from git (added .gitattributes)
56 * Update to jQuery 3.4
57
58# 2.30.2 / 2019-01-13
59 * Stop testing on IE 8 (no longer available on Saucelabs)
60 * [Fixed] #910 ext-dnd5 throws error for draggable column headers
61 * [Fixed] overrideMethod()'s calling context
62 * [Fixed] #912 ext-dnd5 + ext-glyph awesome5 does not show the icons when dragging an item
63 * [Fixed] #919 ext-multi: JavaScript error (event is not defined) in nodeKeydown
64 * [Fixed] #922 scrollIntoView for plain trees that don't have a scrollbar
65 * [Fixed] #924 ext-edit: Fix caret position for mouse-click in input
66 * [Fixed] #928 ext-dnd5: Fix `preventNonNodes` option
67 * [Fixed] #929 Fix `.getTree()` for jQuery 3
68 * [Fixed] #930 ext-dnd5: If drag does not start, no drag data should be stored
69
70# 2.30.1 / 2018-11-13
71 * [Changed] Apply and enforce 'prettier' codestyle
72 * [Changed] #897 Set font for table extension
73 * [Fixed] #883: Font Awesome 4 animation spinner stays visible
74 * [Fixed] #894: Fancytree assertion failed: scrollParent should be a simple element or `window`, not document or body.
75 * [Fixed] #896 _requireExtension: order managment
76 * [Fixed] #899 Creating duplicate icon when removing node using extension columnview
77 * [Fixed] #900 ColumnView Extension - Toggle between parent and children not working
78 * [Fixed] #909 With quicksearch enabled, does not search for non-Latin character
79
80# 2.30.0 / 2018-09-02
81 * [Changed] ext-edit trigger 'clickActive' now only triggers if no modifier keys
82 (shift, meta, control, ...) are pressed.<br>
83 Trigger 'shift+click' now only triggers if no other modifier key (control, ...)
84 is pressed.
85 * [Changed] #879 Rename ext-debug to ext-logger
86 (jquery.fancytree.debug.js => jquery.fancytree.logger.js)
87 * [Added] ext-multi is now deployed with jquery.fancytree-all.js (still experimental)
88 * [Added] tree.activateKey(key, opts) now has an `opts` argument
89 * [Added] `nodata` option (bool, string, or callback)
90 * [Added] ext-table `mergeStatusColumns` option
91 * [Added] new method `tree.enable(flag)`
92 * [Added] new method `tree.expandAll(flag, opts)`
93 * [Added] new methods `tree.setOption(name, value)` and `tree.getOption(name)`
94 * [Fixed] ES6 import dependency on jquery for jquery.fancytree.ui-deps.js
95 * [Fixed] #863 setActive() sometimes does not scroll node into view
96 * [Fixed] #877 postProcess may now also return the object form `{..., children: []}`
97 * [Fixed] #884 ReferenceError: jQuery is not defined at _simpleDeepMerge
98 * [Fixed] autoScroll, node.scrollIntoView(), and .makeVisible() now work for tables as well.
99
100# 2.29.1 / 2018-06-27
101 * [Fixed] #848 Drag End Error with dnd5 extension (again):
102 fancytree-drag-remove class not removed on drop/dragend
103 * [Fixed] #875 ext-dnd5: Unwanted expanding of folder node when a node is dragged
104 before/after it
105 * [Fixed] #876 `triggerStart: []` does not override the default settings.<br>
106 **NOTE:** Options of type `Array` will now override the default option.
107 Before, arrays were merged with the default.
108 * [Fixed] ext-ariagrid default actions
109
110# 2.29.0 / 2018-06-16
111 * [Changed]
112 `toggleEffect` now also accepts "toggle" or "slideToggle" to use jQuery effects instead of jQueryUI.<br>
113 `toggleEffect: { effect: "slideToggle", duration: 200 }` is now the default.<br>
114 'effects' component was removed from the bundled jquery.fancytree.ui-deps.js
115 * [Fixed] #746 Animation bug when expanding/collapsing nodes
116 * [Fixed] #848 Drag End Error with dnd5 extension
117 * [Fixed] #850 ext-childcounter doesn't work with custom icons
118 * [Fixed] #859 Fix log level configuration problem
119 * [Fixed] #865 toggleEffect animation (effect: blind) sometimes got stuck.
120 * Stop testing jQuery UI 1.9
121 * Update to jQuery 3.3.1
122
123# 2.28.1 / 2018-03-19
124 * [Fixed] #844 Fix RTL for ext-table
125 * [Fixed] #845 Fix RTL for ext-dnd/ext-dnd5
126 * [Fixed] #764 Fix clicks on embedded <a> tags when filter is on
127
128# 2.28.0 / 2018-03-02
129 * [Added] New extension ext-multi (experimental).
130 * [Added] ext-dnd5 support for dragging multiple selected nodes.
131 * [Added] #830 support for Font Awesome 5 (ext-glyph preset).
132 * [Added] ext-glyph supports SVG icons.
133 * [Added] `icon` option supports `{html: "..."}` content (also available for glyph-ext mapping).
134 * [Added] New method tree.visitRows()
135 * [Added] New method tree.selectAll()
136 * [Added] New method node.isBelowOf()
137 * [Added] New extension ext-fixed (experimental).
138 * [Changed] Re-rename clearData() to clearPersistData()
139 * [Changed] #828 Re-scale debugLevel from 0:quiet to 4:verbose, allowing to suppress warnings
140 and even errors.
141 * [Added] CSS helper classes:<br>
142 `.fancytree-helper-disabled`<br>
143 `.fancytree-helper-hidden` (replaces `ui-helper-hidden`)<br>
144 `.fancytree-helper-indeterminate-cb`<br>
145 `fancytree-helper-spin` for icon animations (replaces `glyphicon-spin`)
146 * [Fixed] #819: ext-filter: Handle nodes without title.
147 * [Fixed] #835: ext-dnd5: Accept drop externals after drag.
148
149# 2.27.0 / 2017-12-16
150 * **BREAKING CHANGES:**
151 - `node.type` is now a first-class property of FancytreeNode.
152 Node data `{..., type: "foo"}` is now available as `node.type` (before: `node.data.type`).
153 - The properties `tree.types` and `tree.columns` have been added to Fancytree.
154 If passed with source data, they are now available directly instead of
155 `tree.data.types` or `tree.data.columns`.
156 * **Support patterns for node types:**
157 - The properties `node.type` and `tree.types` are recommended to implement node-type
158 specific configuration ([details](https://github.com/mar10/fancytree/wiki/TutorialNodeTypes)).
159 - Event `data` argument contains `typeInfo == tree.types[node.type]`.
160 * **Improved ext-glyph:**
161 - [Added] support for ligature icons (e.g. [material icons](https://material.io/icons/)).
162 - [Added] `icon` option can now return a dict to create a ligature icon.
163 * **Improved tree.loadKeyPath():**
164 - [Added] support for a custom path segment matcher.
165 This allows to have key paths with segments other than `node.key`.
166 - [Improved] the returned deferred promise now triggers `progress()` events which can
167 be used instead of the callback.
168 * The property `tree.columns` was added to Fancytree. Currently only reserved as
169 recommended pattern to pass global meta-data for ext-table.
170 * [Added] ext-edit: new trigger mode `clickActive` for option `triggerStart: [...]`.
171 * [Added] #798 Tooltip support for icons (dynamic option `iconTooltip`).
172 * [Added] #808 Pass custom storage providers to ext-persist.
173 * [Improved] ext-table no longer needs empty tbody/tr if thead is present.
174 * [Fixed] #796 UMD requirements for node/CommonJS
175 * [Fixed] #803 jquery.fancytree.ui-deps.js does not override existing widgets.
176 * [Fixed] #815 `<mark>` element missing in filtered nodes (minified bundle, IE 11).
177 * [Fixed] #816 findNextNode() doesn't set default for 'startNode' argument.
178 * [Added] Material Design demo
179 * [Added] Demo for Fancytree inside a jquery-confirm popup
180 * [Changed] String representation is now `"FancytreeNode@_4[title='My name']"`
181 * [DEPRECATED] `tree.clearCookies()`. Use <del>`tree.clearData()`</del> `tree.clearPersistData()` instead.
182
183# 2.26.0 / 2017-11-04
184 * **BREAKING CHANGES:**
185 - [Fixed] #792 postProcess is now also called for non-Ajax sources.
186 * [Improved] LESS now compiles with webpack
187 * [Added] #791 ext-glyph support for radio buttons
188 * [Added] Color definitions for skin-awesome (taken from skin-lion)
189 * [Fixed] `$.ui.fancytree.getNode()` for ES6 environments
190 * [Fixed] #789 Wrong node is activated in IE, when clicking in unfocused container
191
192# 2.25.0 / 2017-10-31
193 * **BREAKING CHANGES:**
194 - The `dist/src/` folder was renamed to `dist/modules`.
195 - Some directories like `demo/` are no longer part of the npm install.
196 * **Improved Module Support and Distribution**<br>
197 - The `dist/` folder now includes a `modules/` directory with fancytree core
198 and all extensions.
199 - All modules have UMD wrappers with defined dependencies.
200 - Internal jQuery UI dependencies are deployed as module and implicitly loaded.
201 - `jquery.fancytree/dist/modules/jquery.fancytree` is defined as
202 package main module, so Fancytree can be included using a simple<br>
203 `fancytree = require('jquery.fancytree')`.<br>
204 See [the docs](https://github.com/mar10/fancytree/wiki/TutorialIntegration)
205 for details.
206 - All modules now return the
207 [$.ui.fancytree object](https://wwWendt.de/tech/fancytree/doc/jsdoc/Fancytree_Static.html).
208 - [Added] new static method `$.ui.fancytree.createTree(elem, opts)`
209 * [Added] Source map files for `jquery.fancytree-all-deps.min.js`
210 * [Added] New extension ext-fixed (work-in-progress, experimental)
211 * [Fixed] #767: Input inside table head not working
212 * [Fixed] #768: Can't use keyboard to select nodes when `checkbox` option is false
213 * [Fixed] #782: wide extension - padding is off when checkbox option is changed
214 * [Fixed] #787: Fix getEventTarget() for custom icons
215
216# 2.24.0 / 2017-08-26
217 * [Added] ext-glyph option `preset` (making the `map` option optional)
218 * [Fixed] Drop marker for ext-glyph + ext-dnd5
219 * [Fixed] #695: List AMD dependency on jQuery UI
220 * [Fixed] #735: Trying to set root node selected throws an error
221 * [Fixed] #740: Filtering must not consider escaped html entities
222 * [Fixed] #741: Passing an empty string ("") as filter calls clearFilter()
223 * [Fixed] #748: Drag start should not activate a node
224 * [Fixed] #761: ext-dnd5 throws exception when tree is empty
225 * [Fixed] #764: ext-filter breaks links
226 * Updated jsdoc to 3.5
227
228# 2.23.0 / 2017-05-27
229 * **The external dependency on jQuery UI was removed**.<br>
230 A new library `jquery.fancytree-all-deps.min.js` is now added to the
231 distribution. It includes all dependencies on jQuery UI, so the only
232 remaining external dependency is jQuery.<br>
233 Continue to use `jquery.fancytree-all.min.js` if jQuery UI is already
234 included anyway.
235
236 * **Refactored the select behavior**<br>
237 [details](https://github.com/mar10/fancytree/wiki/SpecSelect):
238 <!-- [details](https://github.com/mar10/fancytree/wiki#selection-and-checkboxes) -->
239 * [Added] Allow control of selection status propagation with new options:
240 `unselectable`, `unselectableIgnore`, `unselectableStatus`.
241 * [Added] node option `radiogroup` to enable single-select for child nodes
242 * [Added] option `opts.noEvents` to `setSelected(flag, opts)`
243 * [Improved] Option 'checkbox' can have the string value "radio" (only has
244 the visual effect of replacing the icon)
245
246 * **BREAKING CHANGES:**
247 * The `hideCheckbox` option was removed. Use `checkbox: false` instead.<br>
248 Note that the `<li class='hideCheckbox'>` is still parsed from input
249 HTML and converted accordingly.
250 * The optional modifier class `<div class='fancytree-radio'>` was removed.
251 This class was used on the *container* to turn all checkbox items into
252 radio buttons.<br>
253 Instead, this class is now added to `<span class="fancytree-checkbox fancytree-radio">`.
254 Use the `tree.checkox: "radio"` option to activate this for the whole tree.
255 * The callback signature for the `tree.tooltip` option has changed to
256 `tooltip(event, data)`
257
258 * [Improved] `aria` option is now on by default
259 * Use the new dynamic options pattern for
260 `checkbox`, `icon`, `tooltip`, `unselectable`, `unselectableIgnore`,
261 `unselectableStatus`.<br>
262 See also <a href="https://github.com/mar10/fancytree/wiki#dynamic-options">dynamic options</a>.
263 * [Added] New method `node.visitSiblings()`
264 * [Added] #730 ext-persist option `expandOpts` is passed to setExpanded()
265 Allows to suppress animation or event generation.
266
267# 2.22.5 / 2017-05-11
268 * [Improved] #709 experimental ext-ariagrid
269
270# 2.22.4 / 2017-05-06
271 * [Improved] #709 experimental ext-ariagrid
272
273# 2.22.3 / 2017-05-05
274 * [Improved] #709 experimental ext-ariagrid
275
276# 2.22.2 / 2017-04-29
277 * [Fixed] #729 Fix regression with addChild performance improvements (#708)
278
279# 2.22.1 / 2017-04-21
280 * [Fixed] #722 Fix regression with addChild performance improvements (#708)
281
282# 2.22.0 / 2017-04-11
283 * [Added] ext-dnd5 now part of standard distribution
284 * [Added] #693 ext-dnd/dnd5: configurable drop marker offset
285 * [Added] #616 ext-wide: configurable left padding
286 * [Added] New method $.ui.fancytree.evalOption()
287 * [Improved] #601 ext-filter: improve performance (don't render hidden nodes)
288 * [Improved] ext-contextMenu: disable keyboard while popup is open and restore focus
289 * [Improved] #701 ext-hotkeys: Prevent default behavior on hot key combination
290 * [Improved] #708 speedup improvement for addChildren
291 * [Fixed] #680 ext-dnd5: top level nodes not draggable
292 * [Fixed] #681 ext-table: exception when a lazy node has `children: []`
293 * [Fixed] #699 ext-dnd5: Icon remains after dnd is cancelled
294 * [Fixed] #702 $.ui.fancytree.getNode(jQuery)' for jQuery v3.x
295 * [Fixed] #706 Fix DND where fancytree-title span is not a direct child due to custom layouts
296 * [Fixed] #712 When clicking in a scrolled tree for the first time, focus is not set properly
297 * [Fixed] #716 ext-wide: animation 'jumps' (jQuery UI 1.12)
298 * [Fixed] #717, #719 expand/collapse shows displaced child nodes when scrolled (jQuery UI 1.12)
299 * Update demos to jQuery 3.2.1 / jQuery UI 1.12.1
300
301# 2.21.0 / 2017-01-15
302 * [Added] New extension 'ext-dnd5' (beta) for native HTML5 drag'n'drop support
303 * [Added] `rtl` option for right-to-left script support
304 * [Added] Add $.ui.fancytree.overrideMethod()
305 * [Added] hook `treeSetOption` allows extensions to update on option changes
306 * [Changed] standard CSS no longer defines `overflow: auto` for the container.
307 If the tree container has a fixed height, `overflow: auto` or `overflow: scroll`
308 should be added to make it scrollable.
309 (Otherwise this always would be the scroll parent for ext-dnd5.)
310 * [Improved] better support for initializing from embedded JSON using the
311 `data-type="json"` attribute
312 * [Fixed] corner case of #658 when ext-edit is loaded, but inactive
313 * [Fixed] #396 Don't load 'loading.gif' for glyph skins
314 * [Fixed] #675 ext-table: node.render(false) puts first node at end
315
316# 2.20.0 / 2016-11-13
317 * [Added] #419 `modifyChild` event. This event is also a good place to
318 implement auto sorting (#559)
319 * [Added] #419 node.triggerModifyChild() and node.triggerModify()
320 * [Added] #595 add custom node filter to `generateFormElements()`
321 * [Added] #610 `tree.tooltip` option allows automatic or custom tooltips
322 * [Added] #620 improved tooltip escaping to allow newlines
323 * [DEPRECATED] `removeNode` event. Listen for `modifyChild` with operation
324 'remove' instead (which is fired on the parent)
325 * [Improved] ThemeRoller theme
326 * [Improved] ext-filter
327 - #297 add filter option 'hideExpanders' to remove expanders if all child
328 nodes are hidden by filter
329 - Filter options and the `opts` argument of `filterNodes()` / `filterBranches()`
330 have been unified
331 - [Fixed] #230 themeroller theme compatible with ext-filter
332 - [Fixed] #528 autoCollapse option blocks filter's autoExpand option
333 - [Fixed] #529 Filter: Mark matching nodes even if parent was matched in branch mode
334 - [Fixed] #643 Exceptions in ext-filter if expression contains special chars
335 - [Fixed] #658 ext-filter does not work with ext-edit `editCreateNode()`
336 * [Improved] #656 WAI-ARIA support
337 - Set focus to first node on first tab-in
338 - Support [home] and [end] keys
339 - Set aria-activedescendant on container to active ID
340 - Set aria-multiselectable on container if selectMode != 1
341 - Set aria-treeitem, -selected, -expanded, on title span instead `<li>`
342 * [Fixed] #576 `loadKeyPath()` sometimes gets the root wrong
343 * [Fixed] #615 Drag & drop helper icons lose indentation with table extension
344 * [Fixed] #632 Tabbing is not working if there is an anchor tag in treeview
345 * [Fixed] #644 New nodes created with ext-edit, are hidden in filtered trees
346 * [Fixed] #647 ext-table: tree.render(true) does not discard existing markup
347 * [Fixed] #659 handling of function keys, when quicksearch is on
348 * Use QUnit 2.0
349
350# 2.19.0 / 2016-08-11
351 * [Added] #607 tree.enableUpdate() to temporarily disable rendering to improve
352 performance on bulk updates
353 * [Added] modifier class `.fancytree-connectors` to be set on container<br>
354 Note: Experimental! Not required for skin-xp and not compatible with ext-table
355 * [Added] #623 ext-edit: `data.originalEvent` is now passed to `beforeClose`
356 * [Fixed] #604 Set `source` option does not update tree
357 * [Fixed] #609 node.load(true); doesn't maintain expanded
358 * [Fixed] #621 Cannot focus embedded input controls
359 * [Improved] #611 Keyboard navigation honors autoScroll option
360 * Extensions inherit main version number
361
362# 2.18.0 / 2016-05-02
363 * [Added] #586 node.discardMarkup() (useful in the `collapsed` event)
364 * [Added] #171 new option `.escapeTitles`
365 * [Added] new callback `.enhanceTitle()`
366 * [Fixed] #515 Html tags included in filter results
367 * [Fixed] #593 ext-dnd revert position fails for tables
368
369# 2.17.0 / 2016-04-11
370 * [Added] `node.addClass()`, `.removeClass()`, and `.toggleClass()`
371 * [Added] ext-filter: matcher-callback for `tree.filterNodes()` may now return
372 `"branch"` and `"skip"`
373 * [Added] ext-filter: new option`nodata` allows to configure a status node for
374 empty results
375 * [Added] `digits` argument to `node.getIndexHier(separator, digits)`
376 * [Added] tree option `.tabindex`, default is "0". Pass "" to resolve #577
377 * [DEPRECATED] tree option `.tabbable`. Use `.tabindex` instead
378 * [Added] New option `mode='firstChild'` for `node.moveTo()`
379 * [Added] New option `digits=<int>` for `node.getIndexHier()`
380 * [Fixed] ext-filter: branch mode honors `autoExpand: true`
381 * [Fixed] #584: aria-labelledby ids not unique
382 * Update to jQuery UI 1.11.4
383
384# 2.16.1 / 2016-03-18
385 * [Added] ext-glyph: new icon for 'nodata' status nodes
386 * [Fixed] #575 missing loading icon in non-bootstrap themes.<br>
387 Glyph themes now display status images in icon span (was expander span before)
388
389# 2.16.0 / 2016-03-16
390 * [Added] ext-clones: new method node.setRefKey(refKey)
391 * [Added] modifier class `.fancytree-fade-expander` to be set on container
392 * [Added] ext-dnd: `.dragExpand()` callback to prevent auto-expand
393 * [Improved] load error reporting
394 * [Improved] bootstrap theme icons and style (samples use bootstrap 3.3)
395 * [Improved] status nodes don't have icons
396 * [Improved] pass data argument to `source` callback
397 * [Improved] Handle exceptions inside `postProcess`
398 * [Improved] #568 ext-dnd: Auto-expanding of collapsed nodes should also work
399 when dropping is not allowed
400 * [Improved] #567 ext-dnd: fix revert position
401 * [Improved] #565 ext-dnd: fix intermediate display of wrong icon (sending 'over' after 'enter')
402 * [Fixed] #569 node.navigate does not return a Promise object
403 * [Fixed] #563 `tree.reactivate(false)` sets fancytree-treefocus and `tree.reactivate(true)`
404 doesn't set keyboard focus
405 * [Fixed] #562 Node span tag leaks outside table cell
406 * [Fixed] #526 tree.setFocus() does not set keyboard focus
407 * Updated to jQuery 1.12.1
408 * Updated grunt devDependencies
409 * Add jQuery 3.0 beta to test suite
410 * Added LICENSE.txt to dist
411
412# 2.15.0 / 2016-01-11
413 * [Changed] Renamed class `fancytree-statusnode-wait` to `fancytree-statusnode-loading`
414 * [Added] new event `renderStatusColumns`
415 * [DEPRECATED] ext-table option `customStatus`. Use `renderStatusColumns` instead
416 * [Added] new event `clickPaging`
417 * [Added] new mode `nodata` for use with node.setStatus()
418 * [Added] new method `node.addPagingNode()`
419 * [Added] new method `node.replaceWith()`
420 * [Added] new type 'paging' for `node.statusNodeType`
421 * [Added] #542 new method `node.getSelectedNodes()`
422 * [Added] Helper class `glyphicon-spin` to allow rotating loading icon with bootstrap3
423 * [Improved] #356: serialize load requests
424 * [Improved] #538: Be more robust if site css defines custom li:before
425 * [Improved] ext-table: Define table row templates in `<tbody>`
426 * [Improved] ext-table: `<thead>` is now optional if `<tbody>` contains `<td>`s
427
428# 2.14.0 / 2015-12-19
429 * [CHANGED] #519 Refactored custom icon configuration:<br>
430 (see also the [theming tutorial](https://github.com/mar10/fancytree/wiki/TutorialTheming))
431 * [Added] `options.icon` option/callback.<br>
432 Valid values are true, false, a string containing a class name or image
433 url, or a callback returning that.
434 * [Changed] `node.icon` option. Valid values are true, false, or a string
435 containing a class name or image url.<br>
436 This option existed before, but was stored in the `node.data.icon` namespace,
437 and did not accept class names.
438 * [DEPRECATED] `options.iconClass` callback: use `options.icon` instead
439 * [DEPRECATED] `options.icons`: use `options.icon` instead
440 * [DEPRECATED] `node.data.iconclass` option: use `node.icon` instead
441 * [DEPRECATED] `node.data.icon` option: use `node.icon` instead
442 * [Added] `tree.clear()` method.
443 * [Added] #520 ext-persist: new event `beforeRestore`
444 * [Fixed] #533 table-ext: nodeSetExpanded triggers redundant events
445
446# 2.13.0 / 2015-11-16
447 * [Changed] If a node is initalized as `lazy: true`, and `children: []`,
448 treat it as 'loaded leaf node'.<br>
449 This is consistent with a lazy node that has no children property at all (i.e.
450 `undefined`). This would issue a lazyLoad event and a resopnse of `[]` would
451 mark the node as leaf node.
452 * [Added] new function $.ui.fancytree.getTree()
453 * [Added] ext-filter methods node.isMatched() and tree.isFilterActive()
454 * [Added] CSS for ext-childcounter badges is now part of the standard themes
455 * [Added] ext-childcounter method node.updateCounter()`
456 * [Fixed] #507 data-hideCheckbox="true"
457 * [Fixed] #513 activeVisible option does not work on init
458 * [Fixed] #516 ExtPersist requires cookie.js even when not using cookies
459
460# 2.12.0 / 2015-09-10
461 * [Changed] Documented `iconClass` callback and changed signature from
462 `iconClass(node)` to `iconClass(event, data)`
463 * [Added] ext-dnd events `initHelper` and `updateHelper`
464 * [Added] ext-dnd option `smartRevert`
465 * [Added] #146 sample for multi-node drag'n'drop
466 * [Added] Sample for modifier keys to control copy/move behavior while dragging
467 * [Added] `highlight` and `fuzzy` options to ext-filter
468 * [Added] `fireActivate` option to ext-persist (default: true)
469 * [Added] #496 new methods tree.findFirst() / .findAll()
470 * [Improved] clearFilter() performance #491
471 * [Improved] dnd registers global handlers to cancel on ESC and mousedown
472 * [Fixed] #475 Font color while editing node title with bootstrap skin
473 * [Fixed] #484 Glyph plugin: Missing margin-left for span.fancytree-custom-icon
474 * [Fixed] #486 node.render(true) moves the node to the end of the list
475 * [Fixed] #489 `focusOnClick` option is ignored for tables if 'dnd' is listed after 'table' extension
476 * [Fixed] #495 Double clicking on expander with lazy-load causes assertion error
477
478# 2.11.0 / 2015-07-26
479 * [Changed] Adding `fancytree-plain` class to container (if not table), allowing for more efficient css
480 * [Changed] #434: Use data-uris to inline loading.gif image
481 * [Changed] #460: Use padding-left instead of margin-left for table indent
482 * [Changed] #465: Add `node` argument to the `toDict()` callback
483 * [Improved] Nicer bootstrap theme and added table to the example
484 * [Improved] #464: ext-dnd supports ext-glyph
485 * [Improved] #466: Add counter badges to ext-filter
486 * [Fixed] Win8 theme jumpy hover effects
487 * [Fixed] #411: ext-edit fails with ext-table, when edit was cancelled
488 * [Fixed] #463: ext-table: render(deep) does not work
489 * [Fixed] #470: Wide plugin not present in jquery.fancytree-all.min.js
490
491# 2.10.2 / 2015-07-02
492 * [Fixed] Add `dist/skin-custom-1` sample (again)
493 * [Fixed] #459 Don't collapse root folder when last node is removed
494
495# 2.10.1 / 2015-06-27
496 * [Changed] Undo #340: Revert dist folder layout to v2.9.0, but add
497 dist/skin-common.less
498
499# 2.10.0 / 2015-06-26 [YANKED]
500 * [Changed] #340: New dist folder layout: moved skin-* folders into src/ folder
501 (**Note:** this change was reverted in v2.10.1)
502 * [Improved] Update to jQuery UI 1.11.4, jQuery 1.11.3
503 * [Improved] #340: add `dist/skin-common.less` to fix theme imports
504 * [Improved] #443 Support js-cookie (still compatible with jquery-cookie)
505 * [Fixed] #415 selected and unselectable shows unchecked checkbox
506 * [Fixed] #427 table + themeroller: apply color to TR
507 * [Fixed] #442 filterBranches shall use opts to allow autoExpand
508 * [Fixed] #445 enter key not handled correctly
509 * [Fixed] #449 After deleting last child, parent node remains expanded
510 * [Fixed] #452 destroy not removing nodes with ext-table
511 * [Fixed] #457 Autoscroll fails with lazyloading returning empty list
512
513# 2.9.0 / 2015-04-19
514 * [Changed] ext-filter: `tree.filterNodes(filter, opts)` now accept an `opts`
515 object instead of `leavesOnly`
516 * [Improved] #417 only raise exception about data being a string if dataType is "json"
517 * [Added] #394 New option `autoExpand` for [ext-filter]
518 * [Fixed] #402, #405 rare exception in dnd events
519 * [Fixed] #420 nodeSetActive not returning promise
520 * [Fixed] #270 Keyboard focus not working when using dnd extension
521
522# 2.8.1 / 2015-03-01
523 * [Improved] generateFormElements() new argument `opts`, default: `{stopOnParents: true}`
524 * [Fixed] #393 ext-table: checkboxColumnIdx not working
525 * [Fixed] #397 ext-edit: Creating sub category fails
526 * [Fixed] #403 generateFormElements() doesn't work with string args
527
528# 2.8.0 / 2015-02-08
529 * [Changed] Deprecated ext-menu (was never officially supported, see http://localhost:8080/demo/index.html#sample-ext-menu.html)
530 * [Improved] Bluring the widget will now blur the focused node too.
531 * [Improved] Persistence will only set node focus if widget had focus (otherwise only activate the node).
532 * [Improved] Set default focus on first keypress to active node (first node otherwise)
533 * [Improved] #383 Accept [ECMAScript 6 Promise](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise) as source
534 * [Added] `_superApply()` for hook handlers.
535 * [Added] eventToString() supports mouse events
536 * [Fixed] persistence for focus (when using non-cookie storage)
537 * [Fixed] #391 Exception on autoscrolling filtered trees
538
539# 2.7.0 / 2014-12-21
540 * [CHANGED] Dropped `fx` option. Use `toggleEffect` instead.
541 * [CHANGED] 'win8' and 'bootstrap' skins where modified to highlight the
542 title span instead of the node span, in order to be compatible with
543 [ext-wide]. The original skins are available as 'skin-win8-n' and
544 'skin-bootstrap-n' respectively.
545 * [Added] ext-wide extension (experimental)
546 * [Added] LESS files to distribution
547 * [Added] Publish on [cdnjs](https://cdnjs.com/libraries/jquery.fancytree)
548 * [Improved] tree.reactivate() returns a promise
549 * [Fixed] #246 Gaps when filtering in hide mode (patch by @lefunque)
550 * [Fixed] #287 wrong image on hovers
551 * [Fixed] #368 Standard browser behavior prevented (e.g. zoom with Ctrl+'+'/'-')
552 * [Fixed] #369 Suppress warning, when dropping top- on top-node
553
554# 2.6.0 / 2014-11-29
555 * [Added] Option `focusOnSelect` to set focus when node is checked by a mouse
556 click (default: false)
557 * [Added] `restore` event, sent after ext-persist has restored the tree state
558 * [Improved] #359 Better navigation performance when skipping hidden nodes
559 * Publish on npm Registry
560
561# 2.5.0 / 2014-11-23
562 * [CHANGED] [ext-persist] overrideSource option now defaults to true
563 * [Added] [ext-filter] Option `autoApply` re-applies filter on lazy loading
564 (on by default)
565 * [Added] quicksearch: navigate to next node by typing the first letters
566 * [Improved] [ext-dnd] Make draggable helper and parent configurable
567 * [Improved] #153 Add class `fancytree-unselectable` to respective nodes and
568 dim unselectable checkboxes
569 * [Improved] Update to jQuery 1.1.11, jQuery UI 1.11.2
570 * [Improved] New mode 'firstChild' for node.addNode()
571 * [Fixed] #324 Fix problem where minExpandLevel was not expanding root node
572 * [Fixed] #300 dnd.focusOnClick for jQuery UI 1.11
573 * [Fixed] #354 [ext-persist] with selectMode 3
574
575# 2.4.1 / 2014-09-23
576 * [Fixed] Regression #323
577
578# 2.4.0 / 2014-09-21
579 * [CHANGED] Renamed dist/jquery.fancytree-custom.min.js to jquery.fancytree-all.min.js
580 * [CHANGED] ext-edit callbacks no longer pass `data.value` (use `data.input.val()` instead).
581 * [Added] CDN support (http://www.jsdelivr.com/#!jquery.fancytree)
582 * [Added] New method `node.visitAndLoad()`
583 * [Added] New method `node.editCreateNode()` (ext-edit)
584 * [Added] New method `node.isRootNode()`
585 * [Added] New method `node.isTopLevel()`
586 * [Added] New option `id` to override default tree id
587 * [Added] New argument `stopOnParents` for tree.generateFormElements()
588 * [Improved] #294 node.load() should resolve 'ok', if node is already loaded
589 * [Improved] #293 minExpandLevel does not auto-expand
590 * [Improved] #313 Allow HTML in tooltips
591 * [Fixed] crash in scrollIntoView() when parent is `window`
592 * [Fixed] #305 Checkbox doesn't show with Glyph + Table
593 * [Fixed] #316 Fix hasChildren() when children = []
594 * [Fixed] #237 Ajax LoadError not updated in StatusNode with Table ext
595 * [Fixed] #295 loadKeyPath with multiple paths
596 * [DEPRECATED] node.isRoot(). Use node.isRootNode() instead
597
598# 2.3.0 / 2014-08-17
599 * [CHANGED] renamed (undocumented) event 'loaderror' to 'loadError'
600 * [Added] postProcess now allows to signal error conditions (so it becomes easy to handle custom Ajax response formats)
601 * [Added] node.setStatus()
602 * [Added] ext-clones to the standard distribution.
603 * [Improved] loadError allows to return `false` to prevent default handling
604 * [Fixed] #258 Fix moveTo when moving a node to same parent
605 * [Fixed] #257 Glyph expander sometimes disappears
606
607# 2.2.0 / 2014-06-28
608 * [Added] Option dnd.focusOnClick sets focus to tree widget, even when dragging
609 is enabled
610 * [Added] node.info()
611 * [Improved] #245 tree.generateInput() now returns data using PHPs array
612 convention, i.e. by appending brackets to the name: 'ft_1[]'.
613 * [Fixed] #250: Children lazy empty nodes remain checked when parent is
614 unchecked with hierarchical multi-selection
615 * [Fixed] #272 Navigation in filtered trees
616
617# 2.1.0 / 2014-05-29
618 * [Added] #210: [ext-persist] optionally store information in sessionStorage or localStorage
619 * [Added] #64 [ext-filter] filterBranches() will restrict display to sub-trees
620 * [Added] New options 'scrollParent' and 'scrollOfs' are evaluated by node.scrollIntoView()
621 (which is also called on expand). This allows autoScroll to work with
622 [ext-table]: set scrollParent to `window` or a wrapper DIV with overflow: auto
623 * [Added] [ext-wide] use 100% wide selection bar (experimental)
624 * [Added] $.ui.fancytree.debounce()
625 * [Improved] [ext-columnview] css
626 * [Improved] skin-win8 now includes the loading.gif as inline CSS for faster response
627 * [Improved] Add 'fancytree-icon' class to icon IMG
628 * [Improved] css v-align for checkboxes and icons
629 * [Fixed] #217: persistence when node keys are numeric
630 * [Fixed] #228: html in node title prevents click
631 * [Fixed] #235: D'n'd helper is displaced, when window is scrolled
632 * [Fixed] #241: fromDict() does not update node title
633 * [Fixed] relative custom imagePath option
634 * [DEPRECATED] [ext-filter] Use filterNodes() instead of applyFilter()
635 * [DEPRECATED] [ext-filter] 'leavesOnly' option removed (see filterNodes())
636
637# 2.0.0 / 2014-05-01
638 * Released 2.0.0
639
640# 1.x
641
642 * See [Dynatree](https://code.google.com/p/dynatree/)