Blame | Letzte Änderung | Log anzeigen | RSS feed
/*** ### Changed plugin** This plugin adds more information to the `changed.jstree` event. The new data is contained in the `changed` event data property, and contains a lists of `selected` and `deselected` nodes.*//*globals jQuery, define, exports, require, document */(function (factory) {"use strict";if (typeof define === 'function' && define.amd) {define('jstree.changed', ['jquery','jstree'], factory);}else if(typeof exports === 'object') {factory(require('jquery'), require('jstree'));}else {factory(jQuery, jQuery.jstree);}}(function ($, jstree, undefined) {"use strict";if($.jstree.plugins.changed) { return; }$.jstree.plugins.changed = function (options, parent) {var last = [];this.trigger = function (ev, data) {var i, j;if(!data) {data = {};}if(ev.replace('.jstree','') === 'changed') {data.changed = { selected : [], deselected : [] };var tmp = {};for(i = 0, j = last.length; i < j; i++) {tmp[last[i]] = 1;}for(i = 0, j = data.selected.length; i < j; i++) {if(!tmp[data.selected[i]]) {data.changed.selected.push(data.selected[i]);}else {tmp[data.selected[i]] = 2;}}for(i = 0, j = last.length; i < j; i++) {if(tmp[last[i]] === 1) {data.changed.deselected.push(last[i]);}}last = data.selected.slice();}/*** triggered when selection changes (the "changed" plugin enhances the original event with more data)* @event* @name changed.jstree* @param {Object} node* @param {Object} action the action that caused the selection to change* @param {Array} selected the current selection* @param {Object} changed an object containing two properties `selected` and `deselected` - both arrays of node IDs, which were selected or deselected since the last changed event* @param {Object} event the event (if any) that triggered this changed event* @plugin changed*/parent.trigger.call(this, ev, data);};this.refresh = function (skip_loading, forget_state) {last = [];return parent.refresh.apply(this, arguments);};};}));