Blame | Letzte Änderung | Log anzeigen | RSS feed
/*** ### Sort plugin** Automatically sorts all siblings in the tree according to a sorting function.*//*globals jQuery, define, exports, require */(function (factory) {"use strict";if (typeof define === 'function' && define.amd) {define('jstree.sort', ['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.sort) { return; }/*** the settings function used to sort the nodes.* It is executed in the tree's context, accepts two nodes as arguments and should return `1` or `-1`.* @name $.jstree.defaults.sort* @plugin sort*/$.jstree.defaults.sort = function (a, b) {//return this.get_type(a) === this.get_type(b) ? (this.get_text(a) > this.get_text(b) ? 1 : -1) : this.get_type(a) >= this.get_type(b);return this.get_text(a) > this.get_text(b) ? 1 : -1;};$.jstree.plugins.sort = function (options, parent) {this.bind = function () {parent.bind.call(this);this.element.on("model.jstree", $.proxy(function (e, data) {this.sort(data.parent, true);}, this)).on("rename_node.jstree create_node.jstree", $.proxy(function (e, data) {this.sort(data.parent || data.node.parent, false);this.redraw_node(data.parent || data.node.parent, true);}, this)).on("move_node.jstree copy_node.jstree", $.proxy(function (e, data) {this.sort(data.parent, false);this.redraw_node(data.parent, true);}, this));};/*** used to sort a node's children* @private* @name sort(obj [, deep])* @param {mixed} obj the node* @param {Boolean} deep if set to `true` nodes are sorted recursively.* @plugin sort* @trigger search.jstree*/this.sort = function (obj, deep) {var i, j;obj = this.get_node(obj);if(obj && obj.children && obj.children.length) {obj.children.sort($.proxy(this.settings.sort, this));if(deep) {for(i = 0, j = obj.children_d.length; i < j; i++) {this.sort(obj.children_d[i], false);}}}};};// include the sort plugin by default// $.jstree.defaults.plugins.push("sort");}));