PHP Classes

File: public/assets/jstree/src/jstree.sort.js

Recommend this page to a friend!
  Classes of Fabrice Fesch   Melis CMS   public/assets/jstree/src/jstree.sort.js   Download  
File: public/assets/jstree/src/jstree.sort.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Melis CMS
Content management system that provides its tools
Author: By
Last change:
Date: 1 year ago
Size: 2,269 bytes
 

Contents

Class file image Download
/** * ### 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"); }));