diff --git a/CHANGELOG.md b/CHANGELOG.md index c19894e8..ffe3c737 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ * [Changed] Documented `iconClass` callback and changed signature from `iconClass(node)` to `iconClass(event, data)` * [Improved] Add `highlight` and `fuzzy` options to ext-filter + * [Improved] Add `fireActivate` option to ext-persist (default: true) * [Fixed] #475 Font color while editing node title with bootstrap skin # 2.11.0 / 2015-07-26 diff --git a/demo/sample-ext-persist.html b/demo/sample-ext-persist.html index 4644c08c..c0d8dacc 100644 --- a/demo/sample-ext-persist.html +++ b/demo/sample-ext-persist.html @@ -39,7 +39,8 @@ }, persist: { expandLazy: true, - // overrideSource: false, // true: cookie takes precedence over `source` data attributes. + // fireActivate: false, // false: suppress `activate` event after active node was restored + // overrideSource: false, // true: cookie takes precedence over `source` data attributes. store: "auto" // 'cookie', 'local': use localStore, 'session': sessionStore }, // don't use this in production code: @@ -47,17 +48,17 @@ debugDelay: [200, 1000] }, init: function(event, data) { - data.tree.debug("init", data); + data.tree.debug(event.type, data); }, restore: function(event, data) { - data.tree.debug("restore", data); + data.tree.debug(event.type, data); }, activate: function(event, data) { -// alert("activate " + data.node); + data.node.debug(event.type, data); + }, + loadChildren: function(event, data) { + data.node.debug(event.type, data); }, - // loadChildren: function(event, data) { - // data.node.debug("loadChildren", data); - // }, postProcess: function(event, data) { // Create predictable, **unique** keys, which we need for our lazy // persistence example. This is only required for this demo, diff --git a/src/jquery.fancytree.persist.js b/src/jquery.fancytree.persist.js index 6bbfc96d..be91ea20 100644 --- a/src/jquery.fancytree.persist.js +++ b/src/jquery.fancytree.persist.js @@ -164,6 +164,7 @@ $.ui.fancytree.registerExtension({ secure: false }, expandLazy: false, // true: recursively expand and load lazy nodes + fireActivate: true, // false: suppress `activate` event after active node was restored overrideSource: true, // true: cookie takes precedence over `source` data attributes. store: "auto", // 'cookie': force cookie, 'local': force localStore, 'session': force sessionStore types: "active expanded focus selected" @@ -234,7 +235,8 @@ $.ui.fancytree.registerExtension({ // Bind init-handler to apply cookie state tree.$div.bind("fancytreeinit", function(event){ var cookie, dfd, i, keyList, node, - prevFocus = local._data(local.cookiePrefix + FOCUS); // record this before node.setActive() overrides it; + prevFocus = local._data(local.cookiePrefix + FOCUS), // record this before node.setActive() overrides it; + noEvents = instOpts.fireActivate === false; // tree.debug("document.cookie:", document.cookie); @@ -288,7 +290,10 @@ $.ui.fancytree.registerExtension({ node.debug("persist: set active", cookie); // We only want to set the focus if the container // had the keyboard focus before - node.setActive(true, {noFocus: true}); + node.setActive(true, { + noFocus: true, + noEvents: noEvents + }); } } }