Mercurial > repos > mingchen0919 > aurora_htseq_site
annotate vakata-jstree-3.3.5/dist/jstree.js @ 4:b3e5f4753856 draft
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
| author | mingchen0919 |
|---|---|
| date | Tue, 01 May 2018 11:20:13 -0400 |
| parents | |
| children |
| rev | line source |
|---|---|
|
4
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1 /*globals jQuery, define, module, exports, require, window, document, postMessage */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2 (function (factory) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3 "use strict"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4 if (typeof define === 'function' && define.amd) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5 define(['jquery'], factory); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7 else if(typeof module !== 'undefined' && module.exports) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8 module.exports = factory(require('jquery')); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
9 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
10 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
11 factory(jQuery); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
12 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
13 }(function ($, undefined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
14 "use strict"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
15 /*! |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
16 * jsTree 3.3.5 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
17 * http://jstree.com/ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
18 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
19 * Copyright (c) 2014 Ivan Bozhanov (http://vakata.com) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
20 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
21 * Licensed same as jquery - under the terms of the MIT License |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
22 * http://www.opensource.org/licenses/mit-license.php |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
23 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
24 /*! |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
25 * if using jslint please allow for the jQuery global and use following options: |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
26 * jslint: loopfunc: true, browser: true, ass: true, bitwise: true, continue: true, nomen: true, plusplus: true, regexp: true, unparam: true, todo: true, white: true |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
27 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
28 /*jshint -W083 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
29 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
30 // prevent another load? maybe there is a better way? |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
31 if($.jstree) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
32 return; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
33 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
34 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
35 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
36 * ### jsTree core functionality |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
37 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
38 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
39 // internal variables |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
40 var instance_counter = 0, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
41 ccp_node = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
42 ccp_mode = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
43 ccp_inst = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
44 themes_loaded = [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
45 src = $('script:last').attr('src'), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
46 document = window.document; // local variable is always faster to access then a global |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
47 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
48 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
49 * holds all jstree related functions and variables, including the actual class and methods to create, access and manipulate instances. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
50 * @name $.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
51 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
52 $.jstree = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
53 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
54 * specifies the jstree version in use |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
55 * @name $.jstree.version |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
56 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
57 version : '3.3.5', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
58 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
59 * holds all the default options used when creating new instances |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
60 * @name $.jstree.defaults |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
61 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
62 defaults : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
63 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
64 * configure which plugins will be active on an instance. Should be an array of strings, where each element is a plugin name. The default is `[]` |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
65 * @name $.jstree.defaults.plugins |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
66 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
67 plugins : [] |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
68 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
69 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
70 * stores all loaded jstree plugins (used internally) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
71 * @name $.jstree.plugins |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
72 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
73 plugins : {}, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
74 path : src && src.indexOf('/') !== -1 ? src.replace(/\/[^\/]+$/,'') : '', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
75 idregex : /[\\:&!^|()\[\]<>@*'+~#";.,=\- \/${}%?`]/g, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
76 root : '#' |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
77 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
78 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
79 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
80 * creates a jstree instance |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
81 * @name $.jstree.create(el [, options]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
82 * @param {DOMElement|jQuery|String} el the element to create the instance on, can be jQuery extended or a selector |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
83 * @param {Object} options options for this instance (extends `$.jstree.defaults`) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
84 * @return {jsTree} the new instance |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
85 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
86 $.jstree.create = function (el, options) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
87 var tmp = new $.jstree.core(++instance_counter), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
88 opt = options; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
89 options = $.extend(true, {}, $.jstree.defaults, options); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
90 if(opt && opt.plugins) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
91 options.plugins = opt.plugins; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
92 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
93 $.each(options.plugins, function (i, k) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
94 if(i !== 'core') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
95 tmp = tmp.plugin(k, options[k]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
96 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
97 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
98 $(el).data('jstree', tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
99 tmp.init(el, options); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
100 return tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
101 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
102 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
103 * remove all traces of jstree from the DOM and destroy all instances |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
104 * @name $.jstree.destroy() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
105 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
106 $.jstree.destroy = function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
107 $('.jstree:jstree').jstree('destroy'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
108 $(document).off('.jstree'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
109 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
110 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
111 * the jstree class constructor, used only internally |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
112 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
113 * @name $.jstree.core(id) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
114 * @param {Number} id this instance's index |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
115 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
116 $.jstree.core = function (id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
117 this._id = id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
118 this._cnt = 0; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
119 this._wrk = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
120 this._data = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
121 core : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
122 themes : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
123 name : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
124 dots : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
125 icons : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
126 ellipsis : false |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
127 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
128 selected : [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
129 last_error : {}, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
130 working : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
131 worker_queue : [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
132 focused : null |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
133 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
134 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
135 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
136 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
137 * get a reference to an existing instance |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
138 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
139 * __Examples__ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
140 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
141 * // provided a container with an ID of "tree", and a nested node with an ID of "branch" |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
142 * // all of there will return the same instance |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
143 * $.jstree.reference('tree'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
144 * $.jstree.reference('#tree'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
145 * $.jstree.reference($('#tree')); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
146 * $.jstree.reference(document.getElementByID('tree')); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
147 * $.jstree.reference('branch'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
148 * $.jstree.reference('#branch'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
149 * $.jstree.reference($('#branch')); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
150 * $.jstree.reference(document.getElementByID('branch')); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
151 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
152 * @name $.jstree.reference(needle) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
153 * @param {DOMElement|jQuery|String} needle |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
154 * @return {jsTree|null} the instance or `null` if not found |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
155 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
156 $.jstree.reference = function (needle) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
157 var tmp = null, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
158 obj = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
159 if(needle && needle.id && (!needle.tagName || !needle.nodeType)) { needle = needle.id; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
160 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
161 if(!obj || !obj.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
162 try { obj = $(needle); } catch (ignore) { } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
163 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
164 if(!obj || !obj.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
165 try { obj = $('#' + needle.replace($.jstree.idregex,'\\$&')); } catch (ignore) { } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
166 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
167 if(obj && obj.length && (obj = obj.closest('.jstree')).length && (obj = obj.data('jstree'))) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
168 tmp = obj; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
169 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
170 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
171 $('.jstree').each(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
172 var inst = $(this).data('jstree'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
173 if(inst && inst._model.data[needle]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
174 tmp = inst; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
175 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
176 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
177 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
178 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
179 return tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
180 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
181 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
182 * Create an instance, get an instance or invoke a command on a instance. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
183 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
184 * If there is no instance associated with the current node a new one is created and `arg` is used to extend `$.jstree.defaults` for this new instance. There would be no return value (chaining is not broken). |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
185 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
186 * If there is an existing instance and `arg` is a string the command specified by `arg` is executed on the instance, with any additional arguments passed to the function. If the function returns a value it will be returned (chaining could break depending on function). |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
187 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
188 * If there is an existing instance and `arg` is not a string the instance itself is returned (similar to `$.jstree.reference`). |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
189 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
190 * In any other case - nothing is returned and chaining is not broken. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
191 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
192 * __Examples__ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
193 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
194 * $('#tree1').jstree(); // creates an instance |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
195 * $('#tree2').jstree({ plugins : [] }); // create an instance with some options |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
196 * $('#tree1').jstree('open_node', '#branch_1'); // call a method on an existing instance, passing additional arguments |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
197 * $('#tree2').jstree(); // get an existing instance (or create an instance) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
198 * $('#tree2').jstree(true); // get an existing instance (will not create new instance) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
199 * $('#branch_1').jstree().select_node('#branch_1'); // get an instance (using a nested element and call a method) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
200 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
201 * @name $().jstree([arg]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
202 * @param {String|Object} arg |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
203 * @return {Mixed} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
204 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
205 $.fn.jstree = function (arg) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
206 // check for string argument |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
207 var is_method = (typeof arg === 'string'), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
208 args = Array.prototype.slice.call(arguments, 1), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
209 result = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
210 if(arg === true && !this.length) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
211 this.each(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
212 // get the instance (if there is one) and method (if it exists) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
213 var instance = $.jstree.reference(this), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
214 method = is_method && instance ? instance[arg] : null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
215 // if calling a method, and method is available - execute on the instance |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
216 result = is_method && method ? |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
217 method.apply(instance, args) : |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
218 null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
219 // if there is no instance and no method is being called - create one |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
220 if(!instance && !is_method && (arg === undefined || $.isPlainObject(arg))) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
221 $.jstree.create(this, arg); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
222 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
223 // if there is an instance and no method is called - return the instance |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
224 if( (instance && !is_method) || arg === true ) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
225 result = instance || false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
226 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
227 // if there was a method call which returned a result - break and return the value |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
228 if(result !== null && result !== undefined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
229 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
230 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
231 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
232 // if there was a method call with a valid return value - return that, otherwise continue the chain |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
233 return result !== null && result !== undefined ? |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
234 result : this; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
235 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
236 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
237 * used to find elements containing an instance |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
238 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
239 * __Examples__ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
240 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
241 * $('div:jstree').each(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
242 * $(this).jstree('destroy'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
243 * }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
244 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
245 * @name $(':jstree') |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
246 * @return {jQuery} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
247 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
248 $.expr.pseudos.jstree = $.expr.createPseudo(function(search) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
249 return function(a) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
250 return $(a).hasClass('jstree') && |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
251 $(a).data('jstree') !== undefined; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
252 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
253 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
254 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
255 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
256 * stores all defaults for the core |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
257 * @name $.jstree.defaults.core |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
258 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
259 $.jstree.defaults.core = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
260 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
261 * data configuration |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
262 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
263 * If left as `false` the HTML inside the jstree container element is used to populate the tree (that should be an unordered list with list items). |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
264 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
265 * You can also pass in a HTML string or a JSON array here. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
266 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
267 * It is possible to pass in a standard jQuery-like AJAX config and jstree will automatically determine if the response is JSON or HTML and use that to populate the tree. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
268 * In addition to the standard jQuery ajax options here you can suppy functions for `data` and `url`, the functions will be run in the current instance's scope and a param will be passed indicating which node is being loaded, the return value of those functions will be used. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
269 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
270 * The last option is to specify a function, that function will receive the node being loaded as argument and a second param which is a function which should be called with the result. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
271 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
272 * __Examples__ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
273 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
274 * // AJAX |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
275 * $('#tree').jstree({ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
276 * 'core' : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
277 * 'data' : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
278 * 'url' : '/get/children/', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
279 * 'data' : function (node) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
280 * return { 'id' : node.id }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
281 * } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
282 * } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
283 * }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
284 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
285 * // direct data |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
286 * $('#tree').jstree({ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
287 * 'core' : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
288 * 'data' : [ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
289 * 'Simple root node', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
290 * { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
291 * 'id' : 'node_2', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
292 * 'text' : 'Root node with options', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
293 * 'state' : { 'opened' : true, 'selected' : true }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
294 * 'children' : [ { 'text' : 'Child 1' }, 'Child 2'] |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
295 * } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
296 * ] |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
297 * } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
298 * }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
299 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
300 * // function |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
301 * $('#tree').jstree({ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
302 * 'core' : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
303 * 'data' : function (obj, callback) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
304 * callback.call(this, ['Root 1', 'Root 2']); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
305 * } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
306 * }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
307 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
308 * @name $.jstree.defaults.core.data |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
309 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
310 data : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
311 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
312 * configure the various strings used throughout the tree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
313 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
314 * You can use an object where the key is the string you need to replace and the value is your replacement. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
315 * Another option is to specify a function which will be called with an argument of the needed string and should return the replacement. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
316 * If left as `false` no replacement is made. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
317 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
318 * __Examples__ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
319 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
320 * $('#tree').jstree({ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
321 * 'core' : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
322 * 'strings' : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
323 * 'Loading ...' : 'Please wait ...' |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
324 * } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
325 * } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
326 * }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
327 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
328 * @name $.jstree.defaults.core.strings |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
329 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
330 strings : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
331 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
332 * determines what happens when a user tries to modify the structure of the tree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
333 * If left as `false` all operations like create, rename, delete, move or copy are prevented. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
334 * You can set this to `true` to allow all interactions or use a function to have better control. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
335 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
336 * __Examples__ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
337 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
338 * $('#tree').jstree({ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
339 * 'core' : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
340 * 'check_callback' : function (operation, node, node_parent, node_position, more) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
341 * // operation can be 'create_node', 'rename_node', 'delete_node', 'move_node', 'copy_node' or 'edit' |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
342 * // in case of 'rename_node' node_position is filled with the new node name |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
343 * return operation === 'rename_node' ? true : false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
344 * } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
345 * } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
346 * }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
347 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
348 * @name $.jstree.defaults.core.check_callback |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
349 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
350 check_callback : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
351 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
352 * a callback called with a single object parameter in the instance's scope when something goes wrong (operation prevented, ajax failed, etc) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
353 * @name $.jstree.defaults.core.error |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
354 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
355 error : $.noop, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
356 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
357 * the open / close animation duration in milliseconds - set this to `false` to disable the animation (default is `200`) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
358 * @name $.jstree.defaults.core.animation |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
359 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
360 animation : 200, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
361 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
362 * a boolean indicating if multiple nodes can be selected |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
363 * @name $.jstree.defaults.core.multiple |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
364 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
365 multiple : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
366 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
367 * theme configuration object |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
368 * @name $.jstree.defaults.core.themes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
369 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
370 themes : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
371 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
372 * the name of the theme to use (if left as `false` the default theme is used) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
373 * @name $.jstree.defaults.core.themes.name |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
374 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
375 name : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
376 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
377 * the URL of the theme's CSS file, leave this as `false` if you have manually included the theme CSS (recommended). You can set this to `true` too which will try to autoload the theme. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
378 * @name $.jstree.defaults.core.themes.url |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
379 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
380 url : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
381 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
382 * the location of all jstree themes - only used if `url` is set to `true` |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
383 * @name $.jstree.defaults.core.themes.dir |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
384 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
385 dir : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
386 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
387 * a boolean indicating if connecting dots are shown |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
388 * @name $.jstree.defaults.core.themes.dots |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
389 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
390 dots : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
391 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
392 * a boolean indicating if node icons are shown |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
393 * @name $.jstree.defaults.core.themes.icons |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
394 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
395 icons : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
396 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
397 * a boolean indicating if node ellipsis should be shown - this only works with a fixed with on the container |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
398 * @name $.jstree.defaults.core.themes.ellipsis |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
399 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
400 ellipsis : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
401 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
402 * a boolean indicating if the tree background is striped |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
403 * @name $.jstree.defaults.core.themes.stripes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
404 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
405 stripes : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
406 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
407 * a string (or boolean `false`) specifying the theme variant to use (if the theme supports variants) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
408 * @name $.jstree.defaults.core.themes.variant |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
409 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
410 variant : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
411 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
412 * a boolean specifying if a reponsive version of the theme should kick in on smaller screens (if the theme supports it). Defaults to `false`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
413 * @name $.jstree.defaults.core.themes.responsive |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
414 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
415 responsive : false |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
416 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
417 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
418 * if left as `true` all parents of all selected nodes will be opened once the tree loads (so that all selected nodes are visible to the user) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
419 * @name $.jstree.defaults.core.expand_selected_onload |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
420 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
421 expand_selected_onload : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
422 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
423 * if left as `true` web workers will be used to parse incoming JSON data where possible, so that the UI will not be blocked by large requests. Workers are however about 30% slower. Defaults to `true` |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
424 * @name $.jstree.defaults.core.worker |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
425 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
426 worker : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
427 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
428 * Force node text to plain text (and escape HTML). Defaults to `false` |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
429 * @name $.jstree.defaults.core.force_text |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
430 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
431 force_text : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
432 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
433 * Should the node should be toggled if the text is double clicked . Defaults to `true` |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
434 * @name $.jstree.defaults.core.dblclick_toggle |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
435 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
436 dblclick_toggle : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
437 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
438 * Should the loaded nodes be part of the state. Defaults to `false` |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
439 * @name $.jstree.defaults.core.loaded_state |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
440 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
441 loaded_state : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
442 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
443 * Should the last active node be focused when the tree container is blurred and the focused again. This helps working with screen readers. Defaults to `true` |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
444 * @name $.jstree.defaults.core.restore_focus |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
445 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
446 restore_focus : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
447 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
448 * Default keyboard shortcuts (an object where each key is the button name or combo - like 'enter', 'ctrl-space', 'p', etc and the value is the function to execute in the instance's scope) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
449 * @name $.jstree.defaults.core.keyboard |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
450 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
451 keyboard : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
452 'ctrl-space': function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
453 // aria defines space only with Ctrl |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
454 e.type = "click"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
455 $(e.currentTarget).trigger(e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
456 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
457 'enter': function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
458 // enter |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
459 e.type = "click"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
460 $(e.currentTarget).trigger(e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
461 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
462 'left': function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
463 // left |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
464 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
465 if(this.is_open(e.currentTarget)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
466 this.close_node(e.currentTarget); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
467 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
468 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
469 var o = this.get_parent(e.currentTarget); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
470 if(o && o.id !== $.jstree.root) { this.get_node(o, true).children('.jstree-anchor').focus(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
471 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
472 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
473 'up': function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
474 // up |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
475 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
476 var o = this.get_prev_dom(e.currentTarget); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
477 if(o && o.length) { o.children('.jstree-anchor').focus(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
478 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
479 'right': function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
480 // right |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
481 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
482 if(this.is_closed(e.currentTarget)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
483 this.open_node(e.currentTarget, function (o) { this.get_node(o, true).children('.jstree-anchor').focus(); }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
484 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
485 else if (this.is_open(e.currentTarget)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
486 var o = this.get_node(e.currentTarget, true).children('.jstree-children')[0]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
487 if(o) { $(this._firstChild(o)).children('.jstree-anchor').focus(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
488 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
489 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
490 'down': function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
491 // down |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
492 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
493 var o = this.get_next_dom(e.currentTarget); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
494 if(o && o.length) { o.children('.jstree-anchor').focus(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
495 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
496 '*': function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
497 // aria defines * on numpad as open_all - not very common |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
498 this.open_all(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
499 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
500 'home': function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
501 // home |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
502 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
503 var o = this._firstChild(this.get_container_ul()[0]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
504 if(o) { $(o).children('.jstree-anchor').filter(':visible').focus(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
505 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
506 'end': function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
507 // end |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
508 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
509 this.element.find('.jstree-anchor').filter(':visible').last().focus(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
510 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
511 'f2': function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
512 // f2 - safe to include - if check_callback is false it will fail |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
513 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
514 this.edit(e.currentTarget); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
515 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
516 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
517 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
518 $.jstree.core.prototype = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
519 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
520 * used to decorate an instance with a plugin. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
521 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
522 * @name plugin(deco [, opts]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
523 * @param {String} deco the plugin to decorate with |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
524 * @param {Object} opts options for the plugin |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
525 * @return {jsTree} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
526 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
527 plugin : function (deco, opts) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
528 var Child = $.jstree.plugins[deco]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
529 if(Child) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
530 this._data[deco] = {}; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
531 Child.prototype = this; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
532 return new Child(opts, this); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
533 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
534 return this; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
535 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
536 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
537 * initialize the instance. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
538 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
539 * @name init(el, optons) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
540 * @param {DOMElement|jQuery|String} el the element we are transforming |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
541 * @param {Object} options options for this instance |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
542 * @trigger init.jstree, loading.jstree, loaded.jstree, ready.jstree, changed.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
543 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
544 init : function (el, options) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
545 this._model = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
546 data : {}, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
547 changed : [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
548 force_full_redraw : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
549 redraw_timeout : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
550 default_state : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
551 loaded : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
552 opened : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
553 selected : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
554 disabled : false |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
555 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
556 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
557 this._model.data[$.jstree.root] = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
558 id : $.jstree.root, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
559 parent : null, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
560 parents : [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
561 children : [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
562 children_d : [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
563 state : { loaded : false } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
564 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
565 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
566 this.element = $(el).addClass('jstree jstree-' + this._id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
567 this.settings = options; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
568 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
569 this._data.core.ready = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
570 this._data.core.loaded = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
571 this._data.core.rtl = (this.element.css("direction") === "rtl"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
572 this.element[this._data.core.rtl ? 'addClass' : 'removeClass']("jstree-rtl"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
573 this.element.attr('role','tree'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
574 if(this.settings.core.multiple) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
575 this.element.attr('aria-multiselectable', true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
576 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
577 if(!this.element.attr('tabindex')) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
578 this.element.attr('tabindex','0'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
579 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
580 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
581 this.bind(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
582 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
583 * triggered after all events are bound |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
584 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
585 * @name init.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
586 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
587 this.trigger("init"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
588 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
589 this._data.core.original_container_html = this.element.find(" > ul > li").clone(true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
590 this._data.core.original_container_html |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
591 .find("li").addBack() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
592 .contents().filter(function() { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
593 return this.nodeType === 3 && (!this.nodeValue || /^\s+$/.test(this.nodeValue)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
594 }) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
595 .remove(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
596 this.element.html("<"+"ul class='jstree-container-ul jstree-children' role='group'><"+"li id='j"+this._id+"_loading' class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='tree-item'><i class='jstree-icon jstree-ocl'></i><"+"a class='jstree-anchor' href='#'><i class='jstree-icon jstree-themeicon-hidden'></i>" + this.get_string("Loading ...") + "</a></li></ul>"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
597 this.element.attr('aria-activedescendant','j' + this._id + '_loading'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
598 this._data.core.li_height = this.get_container_ul().children("li").first().outerHeight() || 24; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
599 this._data.core.node = this._create_prototype_node(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
600 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
601 * triggered after the loading text is shown and before loading starts |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
602 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
603 * @name loading.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
604 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
605 this.trigger("loading"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
606 this.load_node($.jstree.root); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
607 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
608 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
609 * destroy an instance |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
610 * @name destroy() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
611 * @param {Boolean} keep_html if not set to `true` the container will be emptied, otherwise the current DOM elements will be kept intact |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
612 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
613 destroy : function (keep_html) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
614 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
615 * triggered before the tree is destroyed |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
616 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
617 * @name destroy.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
618 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
619 this.trigger("destroy"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
620 if(this._wrk) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
621 try { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
622 window.URL.revokeObjectURL(this._wrk); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
623 this._wrk = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
624 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
625 catch (ignore) { } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
626 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
627 if(!keep_html) { this.element.empty(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
628 this.teardown(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
629 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
630 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
631 * Create a prototype node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
632 * @name _create_prototype_node() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
633 * @return {DOMElement} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
634 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
635 _create_prototype_node : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
636 var _node = document.createElement('LI'), _temp1, _temp2; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
637 _node.setAttribute('role', 'treeitem'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
638 _temp1 = document.createElement('I'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
639 _temp1.className = 'jstree-icon jstree-ocl'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
640 _temp1.setAttribute('role', 'presentation'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
641 _node.appendChild(_temp1); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
642 _temp1 = document.createElement('A'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
643 _temp1.className = 'jstree-anchor'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
644 _temp1.setAttribute('href','#'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
645 _temp1.setAttribute('tabindex','-1'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
646 _temp2 = document.createElement('I'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
647 _temp2.className = 'jstree-icon jstree-themeicon'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
648 _temp2.setAttribute('role', 'presentation'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
649 _temp1.appendChild(_temp2); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
650 _node.appendChild(_temp1); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
651 _temp1 = _temp2 = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
652 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
653 return _node; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
654 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
655 _kbevent_to_func : function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
656 var keys = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
657 8: "Backspace", 9: "Tab", 13: "Return", 19: "Pause", 27: "Esc", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
658 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End", 36: "Home", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
659 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "Print", 45: "Insert", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
660 46: "Delete", 96: "Numpad0", 97: "Numpad1", 98: "Numpad2", 99 : "Numpad3", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
661 100: "Numpad4", 101: "Numpad5", 102: "Numpad6", 103: "Numpad7", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
662 104: "Numpad8", 105: "Numpad9", '-13': "NumpadEnter", 112: "F1", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
663 113: "F2", 114: "F3", 115: "F4", 116: "F5", 117: "F6", 118: "F7", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
664 119: "F8", 120: "F9", 121: "F10", 122: "F11", 123: "F12", 144: "Numlock", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
665 145: "Scrolllock", 16: 'Shift', 17: 'Ctrl', 18: 'Alt', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
666 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
667 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
668 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
669 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
670 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
671 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
672 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
673 219: '[', 220: '\\',221: ']', 222: "'", 111: '/', 106: '*', 173: '-' |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
674 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
675 var parts = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
676 if (e.ctrlKey) { parts.push('ctrl'); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
677 if (e.altKey) { parts.push('alt'); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
678 if (e.shiftKey) { parts.push('shift'); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
679 parts.push(keys[e.which] || e.which); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
680 parts = parts.sort().join('-').toLowerCase(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
681 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
682 var kb = this.settings.core.keyboard, i, tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
683 for (i in kb) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
684 if (kb.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
685 tmp = i; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
686 if (tmp !== '-' && tmp !== '+') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
687 tmp = tmp.replace('--', '-MINUS').replace('+-', '-MINUS').replace('++', '-PLUS').replace('-+', '-PLUS'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
688 tmp = tmp.split(/-|\+/).sort().join('-').replace('MINUS', '-').replace('PLUS', '+').toLowerCase(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
689 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
690 if (tmp === parts) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
691 return kb[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
692 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
693 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
694 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
695 return null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
696 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
697 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
698 * part of the destroying of an instance. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
699 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
700 * @name teardown() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
701 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
702 teardown : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
703 this.unbind(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
704 this.element |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
705 .removeClass('jstree') |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
706 .removeData('jstree') |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
707 .find("[class^='jstree']") |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
708 .addBack() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
709 .attr("class", function () { return this.className.replace(/jstree[^ ]*|$/ig,''); }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
710 this.element = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
711 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
712 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
713 * bind all events. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
714 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
715 * @name bind() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
716 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
717 bind : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
718 var word = '', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
719 tout = null, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
720 was_click = 0; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
721 this.element |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
722 .on("dblclick.jstree", function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
723 if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
724 if(document.selection && document.selection.empty) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
725 document.selection.empty(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
726 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
727 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
728 if(window.getSelection) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
729 var sel = window.getSelection(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
730 try { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
731 sel.removeAllRanges(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
732 sel.collapse(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
733 } catch (ignore) { } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
734 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
735 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
736 }) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
737 .on("mousedown.jstree", $.proxy(function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
738 if(e.target === this.element[0]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
739 e.preventDefault(); // prevent losing focus when clicking scroll arrows (FF, Chrome) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
740 was_click = +(new Date()); // ie does not allow to prevent losing focus |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
741 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
742 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
743 .on("mousedown.jstree", ".jstree-ocl", function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
744 e.preventDefault(); // prevent any node inside from losing focus when clicking the open/close icon |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
745 }) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
746 .on("click.jstree", ".jstree-ocl", $.proxy(function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
747 this.toggle_node(e.target); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
748 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
749 .on("dblclick.jstree", ".jstree-anchor", $.proxy(function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
750 if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
751 if(this.settings.core.dblclick_toggle) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
752 this.toggle_node(e.target); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
753 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
754 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
755 .on("click.jstree", ".jstree-anchor", $.proxy(function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
756 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
757 if(e.currentTarget !== document.activeElement) { $(e.currentTarget).focus(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
758 this.activate_node(e.currentTarget, e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
759 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
760 .on('keydown.jstree', '.jstree-anchor', $.proxy(function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
761 if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
762 if(this._data.core.rtl) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
763 if(e.which === 37) { e.which = 39; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
764 else if(e.which === 39) { e.which = 37; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
765 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
766 var f = this._kbevent_to_func(e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
767 if (f) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
768 var r = f.call(this, e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
769 if (r === false || r === true) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
770 return r; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
771 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
772 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
773 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
774 .on("load_node.jstree", $.proxy(function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
775 if(data.status) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
776 if(data.node.id === $.jstree.root && !this._data.core.loaded) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
777 this._data.core.loaded = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
778 if(this._firstChild(this.get_container_ul()[0])) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
779 this.element.attr('aria-activedescendant',this._firstChild(this.get_container_ul()[0]).id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
780 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
781 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
782 * triggered after the root node is loaded for the first time |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
783 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
784 * @name loaded.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
785 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
786 this.trigger("loaded"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
787 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
788 if(!this._data.core.ready) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
789 setTimeout($.proxy(function() { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
790 if(this.element && !this.get_container_ul().find('.jstree-loading').length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
791 this._data.core.ready = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
792 if(this._data.core.selected.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
793 if(this.settings.core.expand_selected_onload) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
794 var tmp = [], i, j; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
795 for(i = 0, j = this._data.core.selected.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
796 tmp = tmp.concat(this._model.data[this._data.core.selected[i]].parents); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
797 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
798 tmp = $.vakata.array_unique(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
799 for(i = 0, j = tmp.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
800 this.open_node(tmp[i], false, 0); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
801 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
802 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
803 this.trigger('changed', { 'action' : 'ready', 'selected' : this._data.core.selected }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
804 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
805 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
806 * triggered after all nodes are finished loading |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
807 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
808 * @name ready.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
809 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
810 this.trigger("ready"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
811 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
812 }, this), 0); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
813 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
814 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
815 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
816 // quick searching when the tree is focused |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
817 .on('keypress.jstree', $.proxy(function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
818 if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
819 if(tout) { clearTimeout(tout); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
820 tout = setTimeout(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
821 word = ''; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
822 }, 500); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
823 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
824 var chr = String.fromCharCode(e.which).toLowerCase(), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
825 col = this.element.find('.jstree-anchor').filter(':visible'), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
826 ind = col.index(document.activeElement) || 0, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
827 end = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
828 word += chr; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
829 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
830 // match for whole word from current node down (including the current node) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
831 if(word.length > 1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
832 col.slice(ind).each($.proxy(function (i, v) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
833 if($(v).text().toLowerCase().indexOf(word) === 0) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
834 $(v).focus(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
835 end = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
836 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
837 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
838 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
839 if(end) { return; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
840 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
841 // match for whole word from the beginning of the tree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
842 col.slice(0, ind).each($.proxy(function (i, v) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
843 if($(v).text().toLowerCase().indexOf(word) === 0) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
844 $(v).focus(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
845 end = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
846 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
847 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
848 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
849 if(end) { return; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
850 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
851 // list nodes that start with that letter (only if word consists of a single char) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
852 if(new RegExp('^' + chr.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&') + '+$').test(word)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
853 // search for the next node starting with that letter |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
854 col.slice(ind + 1).each($.proxy(function (i, v) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
855 if($(v).text().toLowerCase().charAt(0) === chr) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
856 $(v).focus(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
857 end = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
858 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
859 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
860 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
861 if(end) { return; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
862 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
863 // search from the beginning |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
864 col.slice(0, ind + 1).each($.proxy(function (i, v) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
865 if($(v).text().toLowerCase().charAt(0) === chr) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
866 $(v).focus(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
867 end = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
868 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
869 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
870 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
871 if(end) { return; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
872 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
873 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
874 // THEME RELATED |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
875 .on("init.jstree", $.proxy(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
876 var s = this.settings.core.themes; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
877 this._data.core.themes.dots = s.dots; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
878 this._data.core.themes.stripes = s.stripes; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
879 this._data.core.themes.icons = s.icons; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
880 this._data.core.themes.ellipsis = s.ellipsis; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
881 this.set_theme(s.name || "default", s.url); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
882 this.set_theme_variant(s.variant); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
883 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
884 .on("loading.jstree", $.proxy(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
885 this[ this._data.core.themes.dots ? "show_dots" : "hide_dots" ](); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
886 this[ this._data.core.themes.icons ? "show_icons" : "hide_icons" ](); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
887 this[ this._data.core.themes.stripes ? "show_stripes" : "hide_stripes" ](); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
888 this[ this._data.core.themes.ellipsis ? "show_ellipsis" : "hide_ellipsis" ](); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
889 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
890 .on('blur.jstree', '.jstree-anchor', $.proxy(function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
891 this._data.core.focused = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
892 $(e.currentTarget).filter('.jstree-hovered').mouseleave(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
893 this.element.attr('tabindex', '0'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
894 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
895 .on('focus.jstree', '.jstree-anchor', $.proxy(function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
896 var tmp = this.get_node(e.currentTarget); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
897 if(tmp && tmp.id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
898 this._data.core.focused = tmp.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
899 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
900 this.element.find('.jstree-hovered').not(e.currentTarget).mouseleave(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
901 $(e.currentTarget).mouseenter(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
902 this.element.attr('tabindex', '-1'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
903 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
904 .on('focus.jstree', $.proxy(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
905 if(+(new Date()) - was_click > 500 && !this._data.core.focused && this.settings.core.restore_focus) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
906 was_click = 0; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
907 var act = this.get_node(this.element.attr('aria-activedescendant'), true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
908 if(act) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
909 act.find('> .jstree-anchor').focus(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
910 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
911 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
912 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
913 .on('mouseenter.jstree', '.jstree-anchor', $.proxy(function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
914 this.hover_node(e.currentTarget); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
915 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
916 .on('mouseleave.jstree', '.jstree-anchor', $.proxy(function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
917 this.dehover_node(e.currentTarget); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
918 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
919 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
920 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
921 * part of the destroying of an instance. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
922 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
923 * @name unbind() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
924 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
925 unbind : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
926 this.element.off('.jstree'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
927 $(document).off('.jstree-' + this._id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
928 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
929 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
930 * trigger an event. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
931 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
932 * @name trigger(ev [, data]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
933 * @param {String} ev the name of the event to trigger |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
934 * @param {Object} data additional data to pass with the event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
935 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
936 trigger : function (ev, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
937 if(!data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
938 data = {}; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
939 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
940 data.instance = this; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
941 this.element.triggerHandler(ev.replace('.jstree','') + '.jstree', data); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
942 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
943 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
944 * returns the jQuery extended instance container |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
945 * @name get_container() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
946 * @return {jQuery} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
947 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
948 get_container : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
949 return this.element; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
950 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
951 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
952 * returns the jQuery extended main UL node inside the instance container. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
953 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
954 * @name get_container_ul() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
955 * @return {jQuery} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
956 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
957 get_container_ul : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
958 return this.element.children(".jstree-children").first(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
959 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
960 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
961 * gets string replacements (localization). Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
962 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
963 * @name get_string(key) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
964 * @param {String} key |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
965 * @return {String} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
966 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
967 get_string : function (key) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
968 var a = this.settings.core.strings; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
969 if($.isFunction(a)) { return a.call(this, key); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
970 if(a && a[key]) { return a[key]; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
971 return key; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
972 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
973 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
974 * gets the first child of a DOM node. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
975 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
976 * @name _firstChild(dom) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
977 * @param {DOMElement} dom |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
978 * @return {DOMElement} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
979 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
980 _firstChild : function (dom) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
981 dom = dom ? dom.firstChild : null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
982 while(dom !== null && dom.nodeType !== 1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
983 dom = dom.nextSibling; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
984 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
985 return dom; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
986 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
987 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
988 * gets the next sibling of a DOM node. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
989 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
990 * @name _nextSibling(dom) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
991 * @param {DOMElement} dom |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
992 * @return {DOMElement} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
993 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
994 _nextSibling : function (dom) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
995 dom = dom ? dom.nextSibling : null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
996 while(dom !== null && dom.nodeType !== 1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
997 dom = dom.nextSibling; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
998 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
999 return dom; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1000 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1001 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1002 * gets the previous sibling of a DOM node. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1003 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1004 * @name _previousSibling(dom) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1005 * @param {DOMElement} dom |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1006 * @return {DOMElement} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1007 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1008 _previousSibling : function (dom) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1009 dom = dom ? dom.previousSibling : null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1010 while(dom !== null && dom.nodeType !== 1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1011 dom = dom.previousSibling; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1012 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1013 return dom; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1014 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1015 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1016 * get the JSON representation of a node (or the actual jQuery extended DOM node) by using any input (child DOM element, ID string, selector, etc) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1017 * @name get_node(obj [, as_dom]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1018 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1019 * @param {Boolean} as_dom |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1020 * @return {Object|jQuery} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1021 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1022 get_node : function (obj, as_dom) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1023 if(obj && obj.id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1024 obj = obj.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1025 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1026 var dom; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1027 try { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1028 if(this._model.data[obj]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1029 obj = this._model.data[obj]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1030 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1031 else if(typeof obj === "string" && this._model.data[obj.replace(/^#/, '')]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1032 obj = this._model.data[obj.replace(/^#/, '')]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1033 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1034 else if(typeof obj === "string" && (dom = $('#' + obj.replace($.jstree.idregex,'\\$&'), this.element)).length && this._model.data[dom.closest('.jstree-node').attr('id')]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1035 obj = this._model.data[dom.closest('.jstree-node').attr('id')]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1036 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1037 else if((dom = $(obj, this.element)).length && this._model.data[dom.closest('.jstree-node').attr('id')]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1038 obj = this._model.data[dom.closest('.jstree-node').attr('id')]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1039 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1040 else if((dom = $(obj, this.element)).length && dom.hasClass('jstree')) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1041 obj = this._model.data[$.jstree.root]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1042 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1043 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1044 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1045 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1046 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1047 if(as_dom) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1048 obj = obj.id === $.jstree.root ? this.element : $('#' + obj.id.replace($.jstree.idregex,'\\$&'), this.element); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1049 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1050 return obj; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1051 } catch (ex) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1052 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1053 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1054 * get the path to a node, either consisting of node texts, or of node IDs, optionally glued together (otherwise an array) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1055 * @name get_path(obj [, glue, ids]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1056 * @param {mixed} obj the node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1057 * @param {String} glue if you want the path as a string - pass the glue here (for example '/'), if a falsy value is supplied here, an array is returned |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1058 * @param {Boolean} ids if set to true build the path using ID, otherwise node text is used |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1059 * @return {mixed} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1060 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1061 get_path : function (obj, glue, ids) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1062 obj = obj.parents ? obj : this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1063 if(!obj || obj.id === $.jstree.root || !obj.parents) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1064 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1065 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1066 var i, j, p = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1067 p.push(ids ? obj.id : obj.text); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1068 for(i = 0, j = obj.parents.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1069 p.push(ids ? obj.parents[i] : this.get_text(obj.parents[i])); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1070 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1071 p = p.reverse().slice(1); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1072 return glue ? p.join(glue) : p; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1073 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1074 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1075 * get the next visible node that is below the `obj` node. If `strict` is set to `true` only sibling nodes are returned. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1076 * @name get_next_dom(obj [, strict]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1077 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1078 * @param {Boolean} strict |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1079 * @return {jQuery} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1080 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1081 get_next_dom : function (obj, strict) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1082 var tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1083 obj = this.get_node(obj, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1084 if(obj[0] === this.element[0]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1085 tmp = this._firstChild(this.get_container_ul()[0]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1086 while (tmp && tmp.offsetHeight === 0) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1087 tmp = this._nextSibling(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1088 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1089 return tmp ? $(tmp) : false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1090 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1091 if(!obj || !obj.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1092 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1093 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1094 if(strict) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1095 tmp = obj[0]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1096 do { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1097 tmp = this._nextSibling(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1098 } while (tmp && tmp.offsetHeight === 0); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1099 return tmp ? $(tmp) : false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1100 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1101 if(obj.hasClass("jstree-open")) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1102 tmp = this._firstChild(obj.children('.jstree-children')[0]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1103 while (tmp && tmp.offsetHeight === 0) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1104 tmp = this._nextSibling(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1105 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1106 if(tmp !== null) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1107 return $(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1108 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1109 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1110 tmp = obj[0]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1111 do { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1112 tmp = this._nextSibling(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1113 } while (tmp && tmp.offsetHeight === 0); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1114 if(tmp !== null) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1115 return $(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1116 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1117 return obj.parentsUntil(".jstree",".jstree-node").nextAll(".jstree-node:visible").first(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1118 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1119 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1120 * get the previous visible node that is above the `obj` node. If `strict` is set to `true` only sibling nodes are returned. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1121 * @name get_prev_dom(obj [, strict]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1122 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1123 * @param {Boolean} strict |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1124 * @return {jQuery} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1125 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1126 get_prev_dom : function (obj, strict) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1127 var tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1128 obj = this.get_node(obj, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1129 if(obj[0] === this.element[0]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1130 tmp = this.get_container_ul()[0].lastChild; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1131 while (tmp && tmp.offsetHeight === 0) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1132 tmp = this._previousSibling(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1133 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1134 return tmp ? $(tmp) : false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1135 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1136 if(!obj || !obj.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1137 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1138 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1139 if(strict) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1140 tmp = obj[0]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1141 do { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1142 tmp = this._previousSibling(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1143 } while (tmp && tmp.offsetHeight === 0); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1144 return tmp ? $(tmp) : false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1145 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1146 tmp = obj[0]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1147 do { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1148 tmp = this._previousSibling(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1149 } while (tmp && tmp.offsetHeight === 0); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1150 if(tmp !== null) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1151 obj = $(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1152 while(obj.hasClass("jstree-open")) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1153 obj = obj.children(".jstree-children").first().children(".jstree-node:visible:last"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1154 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1155 return obj; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1156 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1157 tmp = obj[0].parentNode.parentNode; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1158 return tmp && tmp.className && tmp.className.indexOf('jstree-node') !== -1 ? $(tmp) : false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1159 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1160 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1161 * get the parent ID of a node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1162 * @name get_parent(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1163 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1164 * @return {String} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1165 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1166 get_parent : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1167 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1168 if(!obj || obj.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1169 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1170 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1171 return obj.parent; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1172 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1173 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1174 * get a jQuery collection of all the children of a node (node must be rendered), returns false on error |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1175 * @name get_children_dom(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1176 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1177 * @return {jQuery} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1178 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1179 get_children_dom : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1180 obj = this.get_node(obj, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1181 if(obj[0] === this.element[0]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1182 return this.get_container_ul().children(".jstree-node"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1183 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1184 if(!obj || !obj.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1185 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1186 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1187 return obj.children(".jstree-children").children(".jstree-node"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1188 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1189 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1190 * checks if a node has children |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1191 * @name is_parent(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1192 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1193 * @return {Boolean} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1194 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1195 is_parent : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1196 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1197 return obj && (obj.state.loaded === false || obj.children.length > 0); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1198 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1199 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1200 * checks if a node is loaded (its children are available) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1201 * @name is_loaded(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1202 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1203 * @return {Boolean} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1204 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1205 is_loaded : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1206 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1207 return obj && obj.state.loaded; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1208 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1209 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1210 * check if a node is currently loading (fetching children) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1211 * @name is_loading(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1212 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1213 * @return {Boolean} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1214 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1215 is_loading : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1216 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1217 return obj && obj.state && obj.state.loading; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1218 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1219 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1220 * check if a node is opened |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1221 * @name is_open(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1222 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1223 * @return {Boolean} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1224 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1225 is_open : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1226 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1227 return obj && obj.state.opened; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1228 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1229 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1230 * check if a node is in a closed state |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1231 * @name is_closed(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1232 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1233 * @return {Boolean} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1234 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1235 is_closed : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1236 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1237 return obj && this.is_parent(obj) && !obj.state.opened; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1238 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1239 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1240 * check if a node has no children |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1241 * @name is_leaf(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1242 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1243 * @return {Boolean} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1244 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1245 is_leaf : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1246 return !this.is_parent(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1247 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1248 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1249 * loads a node (fetches its children using the `core.data` setting). Multiple nodes can be passed to by using an array. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1250 * @name load_node(obj [, callback]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1251 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1252 * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives two arguments - the node and a boolean status |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1253 * @return {Boolean} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1254 * @trigger load_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1255 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1256 load_node : function (obj, callback) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1257 var k, l, i, j, c; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1258 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1259 this._load_nodes(obj.slice(), callback); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1260 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1261 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1262 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1263 if(!obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1264 if(callback) { callback.call(this, obj, false); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1265 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1266 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1267 // if(obj.state.loading) { } // the node is already loading - just wait for it to load and invoke callback? but if called implicitly it should be loaded again? |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1268 if(obj.state.loaded) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1269 obj.state.loaded = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1270 for(i = 0, j = obj.parents.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1271 this._model.data[obj.parents[i]].children_d = $.vakata.array_filter(this._model.data[obj.parents[i]].children_d, function (v) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1272 return $.inArray(v, obj.children_d) === -1; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1273 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1274 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1275 for(k = 0, l = obj.children_d.length; k < l; k++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1276 if(this._model.data[obj.children_d[k]].state.selected) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1277 c = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1278 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1279 delete this._model.data[obj.children_d[k]]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1280 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1281 if (c) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1282 this._data.core.selected = $.vakata.array_filter(this._data.core.selected, function (v) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1283 return $.inArray(v, obj.children_d) === -1; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1284 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1285 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1286 obj.children = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1287 obj.children_d = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1288 if(c) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1289 this.trigger('changed', { 'action' : 'load_node', 'node' : obj, 'selected' : this._data.core.selected }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1290 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1291 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1292 obj.state.failed = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1293 obj.state.loading = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1294 this.get_node(obj, true).addClass("jstree-loading").attr('aria-busy',true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1295 this._load_node(obj, $.proxy(function (status) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1296 obj = this._model.data[obj.id]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1297 obj.state.loading = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1298 obj.state.loaded = status; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1299 obj.state.failed = !obj.state.loaded; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1300 var dom = this.get_node(obj, true), i = 0, j = 0, m = this._model.data, has_children = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1301 for(i = 0, j = obj.children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1302 if(m[obj.children[i]] && !m[obj.children[i]].state.hidden) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1303 has_children = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1304 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1305 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1306 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1307 if(obj.state.loaded && dom && dom.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1308 dom.removeClass('jstree-closed jstree-open jstree-leaf'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1309 if (!has_children) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1310 dom.addClass('jstree-leaf'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1311 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1312 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1313 if (obj.id !== '#') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1314 dom.addClass(obj.state.opened ? 'jstree-open' : 'jstree-closed'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1315 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1316 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1317 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1318 dom.removeClass("jstree-loading").attr('aria-busy',false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1319 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1320 * triggered after a node is loaded |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1321 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1322 * @name load_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1323 * @param {Object} node the node that was loading |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1324 * @param {Boolean} status was the node loaded successfully |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1325 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1326 this.trigger('load_node', { "node" : obj, "status" : status }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1327 if(callback) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1328 callback.call(this, obj, status); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1329 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1330 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1331 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1332 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1333 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1334 * load an array of nodes (will also load unavailable nodes as soon as the appear in the structure). Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1335 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1336 * @name _load_nodes(nodes [, callback]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1337 * @param {array} nodes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1338 * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives one argument - the array passed to _load_nodes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1339 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1340 _load_nodes : function (nodes, callback, is_callback, force_reload) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1341 var r = true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1342 c = function () { this._load_nodes(nodes, callback, true); }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1343 m = this._model.data, i, j, tmp = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1344 for(i = 0, j = nodes.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1345 if(m[nodes[i]] && ( (!m[nodes[i]].state.loaded && !m[nodes[i]].state.failed) || (!is_callback && force_reload) )) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1346 if(!this.is_loading(nodes[i])) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1347 this.load_node(nodes[i], c); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1348 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1349 r = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1350 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1351 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1352 if(r) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1353 for(i = 0, j = nodes.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1354 if(m[nodes[i]] && m[nodes[i]].state.loaded) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1355 tmp.push(nodes[i]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1356 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1357 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1358 if(callback && !callback.done) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1359 callback.call(this, tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1360 callback.done = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1361 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1362 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1363 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1364 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1365 * loads all unloaded nodes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1366 * @name load_all([obj, callback]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1367 * @param {mixed} obj the node to load recursively, omit to load all nodes in the tree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1368 * @param {function} callback a function to be executed once loading all the nodes is complete, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1369 * @trigger load_all.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1370 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1371 load_all : function (obj, callback) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1372 if(!obj) { obj = $.jstree.root; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1373 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1374 if(!obj) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1375 var to_load = [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1376 m = this._model.data, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1377 c = m[obj.id].children_d, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1378 i, j; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1379 if(obj.state && !obj.state.loaded) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1380 to_load.push(obj.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1381 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1382 for(i = 0, j = c.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1383 if(m[c[i]] && m[c[i]].state && !m[c[i]].state.loaded) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1384 to_load.push(c[i]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1385 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1386 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1387 if(to_load.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1388 this._load_nodes(to_load, function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1389 this.load_all(obj, callback); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1390 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1391 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1392 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1393 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1394 * triggered after a load_all call completes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1395 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1396 * @name load_all.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1397 * @param {Object} node the recursively loaded node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1398 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1399 if(callback) { callback.call(this, obj); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1400 this.trigger('load_all', { "node" : obj }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1401 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1402 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1403 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1404 * handles the actual loading of a node. Used only internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1405 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1406 * @name _load_node(obj [, callback]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1407 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1408 * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives one argument - a boolean status |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1409 * @return {Boolean} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1410 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1411 _load_node : function (obj, callback) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1412 var s = this.settings.core.data, t; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1413 var notTextOrCommentNode = function notTextOrCommentNode () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1414 return this.nodeType !== 3 && this.nodeType !== 8; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1415 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1416 // use original HTML |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1417 if(!s) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1418 if(obj.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1419 return this._append_html_data(obj, this._data.core.original_container_html.clone(true), function (status) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1420 callback.call(this, status); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1421 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1422 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1423 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1424 return callback.call(this, false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1425 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1426 // return callback.call(this, obj.id === $.jstree.root ? this._append_html_data(obj, this._data.core.original_container_html.clone(true)) : false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1427 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1428 if($.isFunction(s)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1429 return s.call(this, obj, $.proxy(function (d) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1430 if(d === false) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1431 callback.call(this, false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1432 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1433 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1434 this[typeof d === 'string' ? '_append_html_data' : '_append_json_data'](obj, typeof d === 'string' ? $($.parseHTML(d)).filter(notTextOrCommentNode) : d, function (status) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1435 callback.call(this, status); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1436 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1437 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1438 // return d === false ? callback.call(this, false) : callback.call(this, this[typeof d === 'string' ? '_append_html_data' : '_append_json_data'](obj, typeof d === 'string' ? $(d) : d)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1439 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1440 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1441 if(typeof s === 'object') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1442 if(s.url) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1443 s = $.extend(true, {}, s); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1444 if($.isFunction(s.url)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1445 s.url = s.url.call(this, obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1446 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1447 if($.isFunction(s.data)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1448 s.data = s.data.call(this, obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1449 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1450 return $.ajax(s) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1451 .done($.proxy(function (d,t,x) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1452 var type = x.getResponseHeader('Content-Type'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1453 if((type && type.indexOf('json') !== -1) || typeof d === "object") { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1454 return this._append_json_data(obj, d, function (status) { callback.call(this, status); }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1455 //return callback.call(this, this._append_json_data(obj, d)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1456 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1457 if((type && type.indexOf('html') !== -1) || typeof d === "string") { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1458 return this._append_html_data(obj, $($.parseHTML(d)).filter(notTextOrCommentNode), function (status) { callback.call(this, status); }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1459 // return callback.call(this, this._append_html_data(obj, $(d))); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1460 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1461 this._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'core', 'id' : 'core_04', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id, 'xhr' : x }) }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1462 this.settings.core.error.call(this, this._data.core.last_error); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1463 return callback.call(this, false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1464 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1465 .fail($.proxy(function (f) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1466 this._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'core', 'id' : 'core_04', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id, 'xhr' : f }) }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1467 callback.call(this, false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1468 this.settings.core.error.call(this, this._data.core.last_error); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1469 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1470 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1471 if ($.isArray(s)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1472 t = $.extend(true, [], s); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1473 } else if ($.isPlainObject(s)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1474 t = $.extend(true, {}, s); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1475 } else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1476 t = s; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1477 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1478 if(obj.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1479 return this._append_json_data(obj, t, function (status) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1480 callback.call(this, status); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1481 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1482 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1483 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1484 this._data.core.last_error = { 'error' : 'nodata', 'plugin' : 'core', 'id' : 'core_05', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id }) }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1485 this.settings.core.error.call(this, this._data.core.last_error); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1486 return callback.call(this, false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1487 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1488 //return callback.call(this, (obj.id === $.jstree.root ? this._append_json_data(obj, t) : false) ); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1489 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1490 if(typeof s === 'string') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1491 if(obj.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1492 return this._append_html_data(obj, $($.parseHTML(s)).filter(notTextOrCommentNode), function (status) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1493 callback.call(this, status); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1494 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1495 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1496 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1497 this._data.core.last_error = { 'error' : 'nodata', 'plugin' : 'core', 'id' : 'core_06', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id }) }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1498 this.settings.core.error.call(this, this._data.core.last_error); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1499 return callback.call(this, false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1500 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1501 //return callback.call(this, (obj.id === $.jstree.root ? this._append_html_data(obj, $(s)) : false) ); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1502 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1503 return callback.call(this, false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1504 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1505 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1506 * adds a node to the list of nodes to redraw. Used only internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1507 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1508 * @name _node_changed(obj [, callback]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1509 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1510 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1511 _node_changed : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1512 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1513 if (obj && $.inArray(obj.id, this._model.changed) === -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1514 this._model.changed.push(obj.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1515 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1516 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1517 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1518 * appends HTML content to the tree. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1519 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1520 * @name _append_html_data(obj, data) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1521 * @param {mixed} obj the node to append to |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1522 * @param {String} data the HTML string to parse and append |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1523 * @trigger model.jstree, changed.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1524 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1525 _append_html_data : function (dom, data, cb) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1526 dom = this.get_node(dom); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1527 dom.children = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1528 dom.children_d = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1529 var dat = data.is('ul') ? data.children() : data, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1530 par = dom.id, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1531 chd = [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1532 dpc = [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1533 m = this._model.data, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1534 p = m[par], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1535 s = this._data.core.selected.length, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1536 tmp, i, j; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1537 dat.each($.proxy(function (i, v) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1538 tmp = this._parse_model_from_html($(v), par, p.parents.concat()); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1539 if(tmp) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1540 chd.push(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1541 dpc.push(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1542 if(m[tmp].children_d.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1543 dpc = dpc.concat(m[tmp].children_d); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1544 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1545 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1546 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1547 p.children = chd; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1548 p.children_d = dpc; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1549 for(i = 0, j = p.parents.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1550 m[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1551 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1552 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1553 * triggered when new data is inserted to the tree model |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1554 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1555 * @name model.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1556 * @param {Array} nodes an array of node IDs |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1557 * @param {String} parent the parent ID of the nodes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1558 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1559 this.trigger('model', { "nodes" : dpc, 'parent' : par }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1560 if(par !== $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1561 this._node_changed(par); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1562 this.redraw(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1563 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1564 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1565 this.get_container_ul().children('.jstree-initial-node').remove(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1566 this.redraw(true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1567 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1568 if(this._data.core.selected.length !== s) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1569 this.trigger('changed', { 'action' : 'model', 'selected' : this._data.core.selected }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1570 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1571 cb.call(this, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1572 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1573 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1574 * appends JSON content to the tree. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1575 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1576 * @name _append_json_data(obj, data) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1577 * @param {mixed} obj the node to append to |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1578 * @param {String} data the JSON object to parse and append |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1579 * @param {Boolean} force_processing internal param - do not set |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1580 * @trigger model.jstree, changed.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1581 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1582 _append_json_data : function (dom, data, cb, force_processing) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1583 if(this.element === null) { return; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1584 dom = this.get_node(dom); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1585 dom.children = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1586 dom.children_d = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1587 // *%$@!!! |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1588 if(data.d) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1589 data = data.d; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1590 if(typeof data === "string") { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1591 data = JSON.parse(data); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1592 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1593 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1594 if(!$.isArray(data)) { data = [data]; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1595 var w = null, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1596 args = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1597 'df' : this._model.default_state, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1598 'dat' : data, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1599 'par' : dom.id, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1600 'm' : this._model.data, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1601 't_id' : this._id, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1602 't_cnt' : this._cnt, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1603 'sel' : this._data.core.selected |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1604 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1605 func = function (data, undefined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1606 if(data.data) { data = data.data; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1607 var dat = data.dat, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1608 par = data.par, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1609 chd = [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1610 dpc = [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1611 add = [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1612 df = data.df, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1613 t_id = data.t_id, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1614 t_cnt = data.t_cnt, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1615 m = data.m, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1616 p = m[par], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1617 sel = data.sel, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1618 tmp, i, j, rslt, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1619 parse_flat = function (d, p, ps) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1620 if(!ps) { ps = []; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1621 else { ps = ps.concat(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1622 if(p) { ps.unshift(p); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1623 var tid = d.id.toString(), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1624 i, j, c, e, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1625 tmp = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1626 id : tid, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1627 text : d.text || '', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1628 icon : d.icon !== undefined ? d.icon : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1629 parent : p, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1630 parents : ps, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1631 children : d.children || [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1632 children_d : d.children_d || [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1633 data : d.data, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1634 state : { }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1635 li_attr : { id : false }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1636 a_attr : { href : '#' }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1637 original : false |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1638 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1639 for(i in df) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1640 if(df.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1641 tmp.state[i] = df[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1642 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1643 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1644 if(d && d.data && d.data.jstree && d.data.jstree.icon) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1645 tmp.icon = d.data.jstree.icon; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1646 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1647 if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1648 tmp.icon = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1649 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1650 if(d && d.data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1651 tmp.data = d.data; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1652 if(d.data.jstree) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1653 for(i in d.data.jstree) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1654 if(d.data.jstree.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1655 tmp.state[i] = d.data.jstree[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1656 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1657 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1658 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1659 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1660 if(d && typeof d.state === 'object') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1661 for (i in d.state) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1662 if(d.state.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1663 tmp.state[i] = d.state[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1664 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1665 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1666 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1667 if(d && typeof d.li_attr === 'object') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1668 for (i in d.li_attr) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1669 if(d.li_attr.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1670 tmp.li_attr[i] = d.li_attr[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1671 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1672 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1673 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1674 if(!tmp.li_attr.id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1675 tmp.li_attr.id = tid; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1676 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1677 if(d && typeof d.a_attr === 'object') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1678 for (i in d.a_attr) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1679 if(d.a_attr.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1680 tmp.a_attr[i] = d.a_attr[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1681 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1682 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1683 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1684 if(d && d.children && d.children === true) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1685 tmp.state.loaded = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1686 tmp.children = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1687 tmp.children_d = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1688 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1689 m[tmp.id] = tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1690 for(i = 0, j = tmp.children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1691 c = parse_flat(m[tmp.children[i]], tmp.id, ps); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1692 e = m[c]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1693 tmp.children_d.push(c); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1694 if(e.children_d.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1695 tmp.children_d = tmp.children_d.concat(e.children_d); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1696 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1697 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1698 delete d.data; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1699 delete d.children; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1700 m[tmp.id].original = d; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1701 if(tmp.state.selected) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1702 add.push(tmp.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1703 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1704 return tmp.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1705 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1706 parse_nest = function (d, p, ps) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1707 if(!ps) { ps = []; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1708 else { ps = ps.concat(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1709 if(p) { ps.unshift(p); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1710 var tid = false, i, j, c, e, tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1711 do { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1712 tid = 'j' + t_id + '_' + (++t_cnt); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1713 } while(m[tid]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1714 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1715 tmp = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1716 id : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1717 text : typeof d === 'string' ? d : '', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1718 icon : typeof d === 'object' && d.icon !== undefined ? d.icon : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1719 parent : p, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1720 parents : ps, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1721 children : [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1722 children_d : [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1723 data : null, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1724 state : { }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1725 li_attr : { id : false }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1726 a_attr : { href : '#' }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1727 original : false |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1728 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1729 for(i in df) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1730 if(df.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1731 tmp.state[i] = df[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1732 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1733 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1734 if(d && d.id) { tmp.id = d.id.toString(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1735 if(d && d.text) { tmp.text = d.text; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1736 if(d && d.data && d.data.jstree && d.data.jstree.icon) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1737 tmp.icon = d.data.jstree.icon; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1738 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1739 if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1740 tmp.icon = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1741 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1742 if(d && d.data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1743 tmp.data = d.data; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1744 if(d.data.jstree) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1745 for(i in d.data.jstree) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1746 if(d.data.jstree.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1747 tmp.state[i] = d.data.jstree[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1748 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1749 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1750 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1751 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1752 if(d && typeof d.state === 'object') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1753 for (i in d.state) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1754 if(d.state.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1755 tmp.state[i] = d.state[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1756 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1757 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1758 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1759 if(d && typeof d.li_attr === 'object') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1760 for (i in d.li_attr) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1761 if(d.li_attr.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1762 tmp.li_attr[i] = d.li_attr[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1763 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1764 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1765 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1766 if(tmp.li_attr.id && !tmp.id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1767 tmp.id = tmp.li_attr.id.toString(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1768 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1769 if(!tmp.id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1770 tmp.id = tid; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1771 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1772 if(!tmp.li_attr.id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1773 tmp.li_attr.id = tmp.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1774 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1775 if(d && typeof d.a_attr === 'object') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1776 for (i in d.a_attr) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1777 if(d.a_attr.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1778 tmp.a_attr[i] = d.a_attr[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1779 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1780 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1781 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1782 if(d && d.children && d.children.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1783 for(i = 0, j = d.children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1784 c = parse_nest(d.children[i], tmp.id, ps); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1785 e = m[c]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1786 tmp.children.push(c); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1787 if(e.children_d.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1788 tmp.children_d = tmp.children_d.concat(e.children_d); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1789 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1790 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1791 tmp.children_d = tmp.children_d.concat(tmp.children); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1792 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1793 if(d && d.children && d.children === true) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1794 tmp.state.loaded = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1795 tmp.children = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1796 tmp.children_d = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1797 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1798 delete d.data; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1799 delete d.children; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1800 tmp.original = d; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1801 m[tmp.id] = tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1802 if(tmp.state.selected) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1803 add.push(tmp.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1804 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1805 return tmp.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1806 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1807 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1808 if(dat.length && dat[0].id !== undefined && dat[0].parent !== undefined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1809 // Flat JSON support (for easy import from DB): |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1810 // 1) convert to object (foreach) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1811 for(i = 0, j = dat.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1812 if(!dat[i].children) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1813 dat[i].children = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1814 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1815 if(!dat[i].state) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1816 dat[i].state = {}; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1817 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1818 m[dat[i].id.toString()] = dat[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1819 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1820 // 2) populate children (foreach) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1821 for(i = 0, j = dat.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1822 if (!m[dat[i].parent.toString()]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1823 this._data.core.last_error = { 'error' : 'parse', 'plugin' : 'core', 'id' : 'core_07', 'reason' : 'Node with invalid parent', 'data' : JSON.stringify({ 'id' : dat[i].id.toString(), 'parent' : dat[i].parent.toString() }) }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1824 this.settings.core.error.call(this, this._data.core.last_error); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1825 continue; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1826 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1827 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1828 m[dat[i].parent.toString()].children.push(dat[i].id.toString()); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1829 // populate parent.children_d |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1830 p.children_d.push(dat[i].id.toString()); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1831 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1832 // 3) normalize && populate parents and children_d with recursion |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1833 for(i = 0, j = p.children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1834 tmp = parse_flat(m[p.children[i]], par, p.parents.concat()); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1835 dpc.push(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1836 if(m[tmp].children_d.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1837 dpc = dpc.concat(m[tmp].children_d); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1838 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1839 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1840 for(i = 0, j = p.parents.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1841 m[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1842 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1843 // ?) three_state selection - p.state.selected && t - (if three_state foreach(dat => ch) -> foreach(parents) if(parent.selected) child.selected = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1844 rslt = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1845 'cnt' : t_cnt, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1846 'mod' : m, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1847 'sel' : sel, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1848 'par' : par, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1849 'dpc' : dpc, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1850 'add' : add |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1851 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1852 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1853 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1854 for(i = 0, j = dat.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1855 tmp = parse_nest(dat[i], par, p.parents.concat()); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1856 if(tmp) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1857 chd.push(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1858 dpc.push(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1859 if(m[tmp].children_d.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1860 dpc = dpc.concat(m[tmp].children_d); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1861 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1862 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1863 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1864 p.children = chd; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1865 p.children_d = dpc; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1866 for(i = 0, j = p.parents.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1867 m[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1868 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1869 rslt = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1870 'cnt' : t_cnt, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1871 'mod' : m, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1872 'sel' : sel, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1873 'par' : par, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1874 'dpc' : dpc, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1875 'add' : add |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1876 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1877 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1878 if(typeof window === 'undefined' || typeof window.document === 'undefined') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1879 postMessage(rslt); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1880 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1881 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1882 return rslt; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1883 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1884 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1885 rslt = function (rslt, worker) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1886 if(this.element === null) { return; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1887 this._cnt = rslt.cnt; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1888 var i, m = this._model.data; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1889 for (i in m) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1890 if (m.hasOwnProperty(i) && m[i].state && m[i].state.loading && rslt.mod[i]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1891 rslt.mod[i].state.loading = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1892 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1893 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1894 this._model.data = rslt.mod; // breaks the reference in load_node - careful |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1895 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1896 if(worker) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1897 var j, a = rslt.add, r = rslt.sel, s = this._data.core.selected.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1898 m = this._model.data; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1899 // if selection was changed while calculating in worker |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1900 if(r.length !== s.length || $.vakata.array_unique(r.concat(s)).length !== r.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1901 // deselect nodes that are no longer selected |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1902 for(i = 0, j = r.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1903 if($.inArray(r[i], a) === -1 && $.inArray(r[i], s) === -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1904 m[r[i]].state.selected = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1905 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1906 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1907 // select nodes that were selected in the mean time |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1908 for(i = 0, j = s.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1909 if($.inArray(s[i], r) === -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1910 m[s[i]].state.selected = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1911 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1912 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1913 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1914 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1915 if(rslt.add.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1916 this._data.core.selected = this._data.core.selected.concat(rslt.add); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1917 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1918 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1919 this.trigger('model', { "nodes" : rslt.dpc, 'parent' : rslt.par }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1920 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1921 if(rslt.par !== $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1922 this._node_changed(rslt.par); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1923 this.redraw(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1924 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1925 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1926 // this.get_container_ul().children('.jstree-initial-node').remove(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1927 this.redraw(true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1928 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1929 if(rslt.add.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1930 this.trigger('changed', { 'action' : 'model', 'selected' : this._data.core.selected }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1931 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1932 cb.call(this, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1933 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1934 if(this.settings.core.worker && window.Blob && window.URL && window.Worker) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1935 try { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1936 if(this._wrk === null) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1937 this._wrk = window.URL.createObjectURL( |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1938 new window.Blob( |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1939 ['self.onmessage = ' + func.toString()], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1940 {type:"text/javascript"} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1941 ) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1942 ); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1943 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1944 if(!this._data.core.working || force_processing) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1945 this._data.core.working = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1946 w = new window.Worker(this._wrk); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1947 w.onmessage = $.proxy(function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1948 rslt.call(this, e.data, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1949 try { w.terminate(); w = null; } catch(ignore) { } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1950 if(this._data.core.worker_queue.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1951 this._append_json_data.apply(this, this._data.core.worker_queue.shift()); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1952 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1953 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1954 this._data.core.working = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1955 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1956 }, this); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1957 if(!args.par) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1958 if(this._data.core.worker_queue.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1959 this._append_json_data.apply(this, this._data.core.worker_queue.shift()); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1960 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1961 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1962 this._data.core.working = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1963 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1964 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1965 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1966 w.postMessage(args); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1967 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1968 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1969 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1970 this._data.core.worker_queue.push([dom, data, cb, true]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1971 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1972 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1973 catch(e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1974 rslt.call(this, func(args), false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1975 if(this._data.core.worker_queue.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1976 this._append_json_data.apply(this, this._data.core.worker_queue.shift()); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1977 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1978 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1979 this._data.core.working = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1980 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1981 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1982 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1983 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1984 rslt.call(this, func(args), false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1985 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1986 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1987 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1988 * parses a node from a jQuery object and appends them to the in memory tree model. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1989 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1990 * @name _parse_model_from_html(d [, p, ps]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1991 * @param {jQuery} d the jQuery object to parse |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1992 * @param {String} p the parent ID |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1993 * @param {Array} ps list of all parents |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1994 * @return {String} the ID of the object added to the model |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1995 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1996 _parse_model_from_html : function (d, p, ps) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1997 if(!ps) { ps = []; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1998 else { ps = [].concat(ps); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
1999 if(p) { ps.unshift(p); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2000 var c, e, m = this._model.data, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2001 data = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2002 id : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2003 text : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2004 icon : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2005 parent : p, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2006 parents : ps, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2007 children : [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2008 children_d : [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2009 data : null, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2010 state : { }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2011 li_attr : { id : false }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2012 a_attr : { href : '#' }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2013 original : false |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2014 }, i, tmp, tid; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2015 for(i in this._model.default_state) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2016 if(this._model.default_state.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2017 data.state[i] = this._model.default_state[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2018 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2019 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2020 tmp = $.vakata.attributes(d, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2021 $.each(tmp, function (i, v) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2022 v = $.trim(v); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2023 if(!v.length) { return true; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2024 data.li_attr[i] = v; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2025 if(i === 'id') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2026 data.id = v.toString(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2027 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2028 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2029 tmp = d.children('a').first(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2030 if(tmp.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2031 tmp = $.vakata.attributes(tmp, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2032 $.each(tmp, function (i, v) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2033 v = $.trim(v); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2034 if(v.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2035 data.a_attr[i] = v; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2036 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2037 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2038 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2039 tmp = d.children("a").first().length ? d.children("a").first().clone() : d.clone(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2040 tmp.children("ins, i, ul").remove(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2041 tmp = tmp.html(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2042 tmp = $('<div />').html(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2043 data.text = this.settings.core.force_text ? tmp.text() : tmp.html(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2044 tmp = d.data(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2045 data.data = tmp ? $.extend(true, {}, tmp) : null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2046 data.state.opened = d.hasClass('jstree-open'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2047 data.state.selected = d.children('a').hasClass('jstree-clicked'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2048 data.state.disabled = d.children('a').hasClass('jstree-disabled'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2049 if(data.data && data.data.jstree) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2050 for(i in data.data.jstree) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2051 if(data.data.jstree.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2052 data.state[i] = data.data.jstree[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2053 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2054 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2055 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2056 tmp = d.children("a").children(".jstree-themeicon"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2057 if(tmp.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2058 data.icon = tmp.hasClass('jstree-themeicon-hidden') ? false : tmp.attr('rel'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2059 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2060 if(data.state.icon !== undefined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2061 data.icon = data.state.icon; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2062 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2063 if(data.icon === undefined || data.icon === null || data.icon === "") { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2064 data.icon = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2065 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2066 tmp = d.children("ul").children("li"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2067 do { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2068 tid = 'j' + this._id + '_' + (++this._cnt); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2069 } while(m[tid]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2070 data.id = data.li_attr.id ? data.li_attr.id.toString() : tid; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2071 if(tmp.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2072 tmp.each($.proxy(function (i, v) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2073 c = this._parse_model_from_html($(v), data.id, ps); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2074 e = this._model.data[c]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2075 data.children.push(c); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2076 if(e.children_d.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2077 data.children_d = data.children_d.concat(e.children_d); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2078 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2079 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2080 data.children_d = data.children_d.concat(data.children); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2081 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2082 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2083 if(d.hasClass('jstree-closed')) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2084 data.state.loaded = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2085 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2086 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2087 if(data.li_attr['class']) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2088 data.li_attr['class'] = data.li_attr['class'].replace('jstree-closed','').replace('jstree-open',''); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2089 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2090 if(data.a_attr['class']) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2091 data.a_attr['class'] = data.a_attr['class'].replace('jstree-clicked','').replace('jstree-disabled',''); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2092 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2093 m[data.id] = data; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2094 if(data.state.selected) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2095 this._data.core.selected.push(data.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2096 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2097 return data.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2098 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2099 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2100 * parses a node from a JSON object (used when dealing with flat data, which has no nesting of children, but has id and parent properties) and appends it to the in memory tree model. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2101 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2102 * @name _parse_model_from_flat_json(d [, p, ps]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2103 * @param {Object} d the JSON object to parse |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2104 * @param {String} p the parent ID |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2105 * @param {Array} ps list of all parents |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2106 * @return {String} the ID of the object added to the model |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2107 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2108 _parse_model_from_flat_json : function (d, p, ps) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2109 if(!ps) { ps = []; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2110 else { ps = ps.concat(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2111 if(p) { ps.unshift(p); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2112 var tid = d.id.toString(), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2113 m = this._model.data, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2114 df = this._model.default_state, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2115 i, j, c, e, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2116 tmp = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2117 id : tid, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2118 text : d.text || '', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2119 icon : d.icon !== undefined ? d.icon : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2120 parent : p, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2121 parents : ps, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2122 children : d.children || [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2123 children_d : d.children_d || [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2124 data : d.data, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2125 state : { }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2126 li_attr : { id : false }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2127 a_attr : { href : '#' }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2128 original : false |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2129 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2130 for(i in df) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2131 if(df.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2132 tmp.state[i] = df[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2133 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2134 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2135 if(d && d.data && d.data.jstree && d.data.jstree.icon) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2136 tmp.icon = d.data.jstree.icon; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2137 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2138 if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2139 tmp.icon = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2140 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2141 if(d && d.data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2142 tmp.data = d.data; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2143 if(d.data.jstree) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2144 for(i in d.data.jstree) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2145 if(d.data.jstree.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2146 tmp.state[i] = d.data.jstree[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2147 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2148 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2149 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2150 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2151 if(d && typeof d.state === 'object') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2152 for (i in d.state) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2153 if(d.state.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2154 tmp.state[i] = d.state[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2155 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2156 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2157 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2158 if(d && typeof d.li_attr === 'object') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2159 for (i in d.li_attr) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2160 if(d.li_attr.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2161 tmp.li_attr[i] = d.li_attr[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2162 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2163 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2164 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2165 if(!tmp.li_attr.id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2166 tmp.li_attr.id = tid; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2167 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2168 if(d && typeof d.a_attr === 'object') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2169 for (i in d.a_attr) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2170 if(d.a_attr.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2171 tmp.a_attr[i] = d.a_attr[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2172 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2173 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2174 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2175 if(d && d.children && d.children === true) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2176 tmp.state.loaded = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2177 tmp.children = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2178 tmp.children_d = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2179 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2180 m[tmp.id] = tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2181 for(i = 0, j = tmp.children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2182 c = this._parse_model_from_flat_json(m[tmp.children[i]], tmp.id, ps); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2183 e = m[c]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2184 tmp.children_d.push(c); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2185 if(e.children_d.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2186 tmp.children_d = tmp.children_d.concat(e.children_d); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2187 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2188 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2189 delete d.data; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2190 delete d.children; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2191 m[tmp.id].original = d; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2192 if(tmp.state.selected) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2193 this._data.core.selected.push(tmp.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2194 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2195 return tmp.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2196 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2197 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2198 * parses a node from a JSON object and appends it to the in memory tree model. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2199 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2200 * @name _parse_model_from_json(d [, p, ps]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2201 * @param {Object} d the JSON object to parse |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2202 * @param {String} p the parent ID |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2203 * @param {Array} ps list of all parents |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2204 * @return {String} the ID of the object added to the model |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2205 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2206 _parse_model_from_json : function (d, p, ps) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2207 if(!ps) { ps = []; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2208 else { ps = ps.concat(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2209 if(p) { ps.unshift(p); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2210 var tid = false, i, j, c, e, m = this._model.data, df = this._model.default_state, tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2211 do { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2212 tid = 'j' + this._id + '_' + (++this._cnt); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2213 } while(m[tid]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2214 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2215 tmp = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2216 id : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2217 text : typeof d === 'string' ? d : '', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2218 icon : typeof d === 'object' && d.icon !== undefined ? d.icon : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2219 parent : p, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2220 parents : ps, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2221 children : [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2222 children_d : [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2223 data : null, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2224 state : { }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2225 li_attr : { id : false }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2226 a_attr : { href : '#' }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2227 original : false |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2228 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2229 for(i in df) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2230 if(df.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2231 tmp.state[i] = df[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2232 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2233 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2234 if(d && d.id) { tmp.id = d.id.toString(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2235 if(d && d.text) { tmp.text = d.text; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2236 if(d && d.data && d.data.jstree && d.data.jstree.icon) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2237 tmp.icon = d.data.jstree.icon; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2238 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2239 if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2240 tmp.icon = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2241 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2242 if(d && d.data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2243 tmp.data = d.data; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2244 if(d.data.jstree) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2245 for(i in d.data.jstree) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2246 if(d.data.jstree.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2247 tmp.state[i] = d.data.jstree[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2248 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2249 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2250 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2251 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2252 if(d && typeof d.state === 'object') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2253 for (i in d.state) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2254 if(d.state.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2255 tmp.state[i] = d.state[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2256 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2257 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2258 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2259 if(d && typeof d.li_attr === 'object') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2260 for (i in d.li_attr) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2261 if(d.li_attr.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2262 tmp.li_attr[i] = d.li_attr[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2263 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2264 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2265 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2266 if(tmp.li_attr.id && !tmp.id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2267 tmp.id = tmp.li_attr.id.toString(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2268 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2269 if(!tmp.id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2270 tmp.id = tid; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2271 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2272 if(!tmp.li_attr.id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2273 tmp.li_attr.id = tmp.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2274 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2275 if(d && typeof d.a_attr === 'object') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2276 for (i in d.a_attr) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2277 if(d.a_attr.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2278 tmp.a_attr[i] = d.a_attr[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2279 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2280 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2281 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2282 if(d && d.children && d.children.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2283 for(i = 0, j = d.children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2284 c = this._parse_model_from_json(d.children[i], tmp.id, ps); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2285 e = m[c]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2286 tmp.children.push(c); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2287 if(e.children_d.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2288 tmp.children_d = tmp.children_d.concat(e.children_d); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2289 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2290 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2291 tmp.children_d = tmp.children_d.concat(tmp.children); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2292 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2293 if(d && d.children && d.children === true) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2294 tmp.state.loaded = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2295 tmp.children = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2296 tmp.children_d = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2297 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2298 delete d.data; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2299 delete d.children; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2300 tmp.original = d; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2301 m[tmp.id] = tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2302 if(tmp.state.selected) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2303 this._data.core.selected.push(tmp.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2304 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2305 return tmp.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2306 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2307 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2308 * redraws all nodes that need to be redrawn. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2309 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2310 * @name _redraw() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2311 * @trigger redraw.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2312 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2313 _redraw : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2314 var nodes = this._model.force_full_redraw ? this._model.data[$.jstree.root].children.concat([]) : this._model.changed.concat([]), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2315 f = document.createElement('UL'), tmp, i, j, fe = this._data.core.focused; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2316 for(i = 0, j = nodes.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2317 tmp = this.redraw_node(nodes[i], true, this._model.force_full_redraw); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2318 if(tmp && this._model.force_full_redraw) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2319 f.appendChild(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2320 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2321 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2322 if(this._model.force_full_redraw) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2323 f.className = this.get_container_ul()[0].className; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2324 f.setAttribute('role','group'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2325 this.element.empty().append(f); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2326 //this.get_container_ul()[0].appendChild(f); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2327 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2328 if(fe !== null) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2329 tmp = this.get_node(fe, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2330 if(tmp && tmp.length && tmp.children('.jstree-anchor')[0] !== document.activeElement) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2331 tmp.children('.jstree-anchor').focus(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2332 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2333 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2334 this._data.core.focused = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2335 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2336 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2337 this._model.force_full_redraw = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2338 this._model.changed = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2339 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2340 * triggered after nodes are redrawn |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2341 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2342 * @name redraw.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2343 * @param {array} nodes the redrawn nodes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2344 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2345 this.trigger('redraw', { "nodes" : nodes }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2346 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2347 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2348 * redraws all nodes that need to be redrawn or optionally - the whole tree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2349 * @name redraw([full]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2350 * @param {Boolean} full if set to `true` all nodes are redrawn. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2351 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2352 redraw : function (full) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2353 if(full) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2354 this._model.force_full_redraw = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2355 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2356 //if(this._model.redraw_timeout) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2357 // clearTimeout(this._model.redraw_timeout); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2358 //} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2359 //this._model.redraw_timeout = setTimeout($.proxy(this._redraw, this),0); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2360 this._redraw(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2361 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2362 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2363 * redraws a single node's children. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2364 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2365 * @name draw_children(node) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2366 * @param {mixed} node the node whose children will be redrawn |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2367 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2368 draw_children : function (node) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2369 var obj = this.get_node(node), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2370 i = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2371 j = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2372 k = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2373 d = document; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2374 if(!obj) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2375 if(obj.id === $.jstree.root) { return this.redraw(true); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2376 node = this.get_node(node, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2377 if(!node || !node.length) { return false; } // TODO: quick toggle |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2378 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2379 node.children('.jstree-children').remove(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2380 node = node[0]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2381 if(obj.children.length && obj.state.loaded) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2382 k = d.createElement('UL'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2383 k.setAttribute('role', 'group'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2384 k.className = 'jstree-children'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2385 for(i = 0, j = obj.children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2386 k.appendChild(this.redraw_node(obj.children[i], true, true)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2387 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2388 node.appendChild(k); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2389 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2390 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2391 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2392 * redraws a single node. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2393 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2394 * @name redraw_node(node, deep, is_callback, force_render) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2395 * @param {mixed} node the node to redraw |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2396 * @param {Boolean} deep should child nodes be redrawn too |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2397 * @param {Boolean} is_callback is this a recursion call |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2398 * @param {Boolean} force_render should children of closed parents be drawn anyway |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2399 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2400 redraw_node : function (node, deep, is_callback, force_render) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2401 var obj = this.get_node(node), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2402 par = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2403 ind = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2404 old = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2405 i = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2406 j = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2407 k = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2408 c = '', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2409 d = document, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2410 m = this._model.data, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2411 f = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2412 s = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2413 tmp = null, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2414 t = 0, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2415 l = 0, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2416 has_children = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2417 last_sibling = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2418 if(!obj) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2419 if(obj.id === $.jstree.root) { return this.redraw(true); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2420 deep = deep || obj.children.length === 0; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2421 node = !document.querySelector ? document.getElementById(obj.id) : this.element[0].querySelector('#' + ("0123456789".indexOf(obj.id[0]) !== -1 ? '\\3' + obj.id[0] + ' ' + obj.id.substr(1).replace($.jstree.idregex,'\\$&') : obj.id.replace($.jstree.idregex,'\\$&')) ); //, this.element); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2422 if(!node) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2423 deep = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2424 //node = d.createElement('LI'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2425 if(!is_callback) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2426 par = obj.parent !== $.jstree.root ? $('#' + obj.parent.replace($.jstree.idregex,'\\$&'), this.element)[0] : null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2427 if(par !== null && (!par || !m[obj.parent].state.opened)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2428 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2429 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2430 ind = $.inArray(obj.id, par === null ? m[$.jstree.root].children : m[obj.parent].children); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2431 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2432 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2433 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2434 node = $(node); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2435 if(!is_callback) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2436 par = node.parent().parent()[0]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2437 if(par === this.element[0]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2438 par = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2439 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2440 ind = node.index(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2441 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2442 // m[obj.id].data = node.data(); // use only node's data, no need to touch jquery storage |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2443 if(!deep && obj.children.length && !node.children('.jstree-children').length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2444 deep = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2445 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2446 if(!deep) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2447 old = node.children('.jstree-children')[0]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2448 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2449 f = node.children('.jstree-anchor')[0] === document.activeElement; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2450 node.remove(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2451 //node = d.createElement('LI'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2452 //node = node[0]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2453 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2454 node = this._data.core.node.cloneNode(true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2455 // node is DOM, deep is boolean |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2456 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2457 c = 'jstree-node '; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2458 for(i in obj.li_attr) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2459 if(obj.li_attr.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2460 if(i === 'id') { continue; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2461 if(i !== 'class') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2462 node.setAttribute(i, obj.li_attr[i]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2463 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2464 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2465 c += obj.li_attr[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2466 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2467 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2468 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2469 if(!obj.a_attr.id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2470 obj.a_attr.id = obj.id + '_anchor'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2471 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2472 node.setAttribute('aria-selected', !!obj.state.selected); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2473 node.setAttribute('aria-level', obj.parents.length); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2474 node.setAttribute('aria-labelledby', obj.a_attr.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2475 if(obj.state.disabled) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2476 node.setAttribute('aria-disabled', true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2477 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2478 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2479 for(i = 0, j = obj.children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2480 if(!m[obj.children[i]].state.hidden) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2481 has_children = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2482 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2483 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2484 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2485 if(obj.parent !== null && m[obj.parent] && !obj.state.hidden) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2486 i = $.inArray(obj.id, m[obj.parent].children); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2487 last_sibling = obj.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2488 if(i !== -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2489 i++; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2490 for(j = m[obj.parent].children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2491 if(!m[m[obj.parent].children[i]].state.hidden) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2492 last_sibling = m[obj.parent].children[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2493 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2494 if(last_sibling !== obj.id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2495 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2496 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2497 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2498 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2499 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2500 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2501 if(obj.state.hidden) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2502 c += ' jstree-hidden'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2503 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2504 if (obj.state.loading) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2505 c += ' jstree-loading'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2506 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2507 if(obj.state.loaded && !has_children) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2508 c += ' jstree-leaf'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2509 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2510 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2511 c += obj.state.opened && obj.state.loaded ? ' jstree-open' : ' jstree-closed'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2512 node.setAttribute('aria-expanded', (obj.state.opened && obj.state.loaded) ); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2513 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2514 if(last_sibling === obj.id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2515 c += ' jstree-last'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2516 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2517 node.id = obj.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2518 node.className = c; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2519 c = ( obj.state.selected ? ' jstree-clicked' : '') + ( obj.state.disabled ? ' jstree-disabled' : ''); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2520 for(j in obj.a_attr) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2521 if(obj.a_attr.hasOwnProperty(j)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2522 if(j === 'href' && obj.a_attr[j] === '#') { continue; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2523 if(j !== 'class') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2524 node.childNodes[1].setAttribute(j, obj.a_attr[j]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2525 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2526 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2527 c += ' ' + obj.a_attr[j]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2528 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2529 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2530 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2531 if(c.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2532 node.childNodes[1].className = 'jstree-anchor ' + c; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2533 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2534 if((obj.icon && obj.icon !== true) || obj.icon === false) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2535 if(obj.icon === false) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2536 node.childNodes[1].childNodes[0].className += ' jstree-themeicon-hidden'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2537 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2538 else if(obj.icon.indexOf('/') === -1 && obj.icon.indexOf('.') === -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2539 node.childNodes[1].childNodes[0].className += ' ' + obj.icon + ' jstree-themeicon-custom'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2540 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2541 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2542 node.childNodes[1].childNodes[0].style.backgroundImage = 'url("'+obj.icon+'")'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2543 node.childNodes[1].childNodes[0].style.backgroundPosition = 'center center'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2544 node.childNodes[1].childNodes[0].style.backgroundSize = 'auto'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2545 node.childNodes[1].childNodes[0].className += ' jstree-themeicon-custom'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2546 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2547 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2548 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2549 if(this.settings.core.force_text) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2550 node.childNodes[1].appendChild(d.createTextNode(obj.text)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2551 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2552 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2553 node.childNodes[1].innerHTML += obj.text; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2554 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2555 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2556 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2557 if(deep && obj.children.length && (obj.state.opened || force_render) && obj.state.loaded) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2558 k = d.createElement('UL'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2559 k.setAttribute('role', 'group'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2560 k.className = 'jstree-children'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2561 for(i = 0, j = obj.children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2562 k.appendChild(this.redraw_node(obj.children[i], deep, true)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2563 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2564 node.appendChild(k); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2565 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2566 if(old) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2567 node.appendChild(old); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2568 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2569 if(!is_callback) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2570 // append back using par / ind |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2571 if(!par) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2572 par = this.element[0]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2573 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2574 for(i = 0, j = par.childNodes.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2575 if(par.childNodes[i] && par.childNodes[i].className && par.childNodes[i].className.indexOf('jstree-children') !== -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2576 tmp = par.childNodes[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2577 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2578 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2579 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2580 if(!tmp) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2581 tmp = d.createElement('UL'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2582 tmp.setAttribute('role', 'group'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2583 tmp.className = 'jstree-children'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2584 par.appendChild(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2585 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2586 par = tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2587 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2588 if(ind < par.childNodes.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2589 par.insertBefore(node, par.childNodes[ind]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2590 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2591 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2592 par.appendChild(node); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2593 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2594 if(f) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2595 t = this.element[0].scrollTop; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2596 l = this.element[0].scrollLeft; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2597 node.childNodes[1].focus(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2598 this.element[0].scrollTop = t; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2599 this.element[0].scrollLeft = l; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2600 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2601 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2602 if(obj.state.opened && !obj.state.loaded) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2603 obj.state.opened = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2604 setTimeout($.proxy(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2605 this.open_node(obj.id, false, 0); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2606 }, this), 0); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2607 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2608 return node; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2609 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2610 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2611 * opens a node, revaling its children. If the node is not loaded it will be loaded and opened once ready. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2612 * @name open_node(obj [, callback, animation]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2613 * @param {mixed} obj the node to open |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2614 * @param {Function} callback a function to execute once the node is opened |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2615 * @param {Number} animation the animation duration in milliseconds when opening the node (overrides the `core.animation` setting). Use `false` for no animation. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2616 * @trigger open_node.jstree, after_open.jstree, before_open.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2617 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2618 open_node : function (obj, callback, animation) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2619 var t1, t2, d, t; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2620 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2621 obj = obj.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2622 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2623 this.open_node(obj[t1], callback, animation); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2624 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2625 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2626 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2627 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2628 if(!obj || obj.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2629 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2630 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2631 animation = animation === undefined ? this.settings.core.animation : animation; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2632 if(!this.is_closed(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2633 if(callback) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2634 callback.call(this, obj, false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2635 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2636 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2637 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2638 if(!this.is_loaded(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2639 if(this.is_loading(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2640 return setTimeout($.proxy(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2641 this.open_node(obj, callback, animation); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2642 }, this), 500); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2643 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2644 this.load_node(obj, function (o, ok) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2645 return ok ? this.open_node(o, callback, animation) : (callback ? callback.call(this, o, false) : false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2646 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2647 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2648 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2649 d = this.get_node(obj, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2650 t = this; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2651 if(d.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2652 if(animation && d.children(".jstree-children").length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2653 d.children(".jstree-children").stop(true, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2654 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2655 if(obj.children.length && !this._firstChild(d.children('.jstree-children')[0])) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2656 this.draw_children(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2657 //d = this.get_node(obj, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2658 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2659 if(!animation) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2660 this.trigger('before_open', { "node" : obj }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2661 d[0].className = d[0].className.replace('jstree-closed', 'jstree-open'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2662 d[0].setAttribute("aria-expanded", true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2663 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2664 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2665 this.trigger('before_open', { "node" : obj }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2666 d |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2667 .children(".jstree-children").css("display","none").end() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2668 .removeClass("jstree-closed").addClass("jstree-open").attr("aria-expanded", true) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2669 .children(".jstree-children").stop(true, true) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2670 .slideDown(animation, function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2671 this.style.display = ""; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2672 if (t.element) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2673 t.trigger("after_open", { "node" : obj }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2674 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2675 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2676 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2677 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2678 obj.state.opened = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2679 if(callback) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2680 callback.call(this, obj, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2681 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2682 if(!d.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2683 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2684 * triggered when a node is about to be opened (if the node is supposed to be in the DOM, it will be, but it won't be visible yet) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2685 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2686 * @name before_open.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2687 * @param {Object} node the opened node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2688 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2689 this.trigger('before_open', { "node" : obj }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2690 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2691 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2692 * triggered when a node is opened (if there is an animation it will not be completed yet) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2693 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2694 * @name open_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2695 * @param {Object} node the opened node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2696 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2697 this.trigger('open_node', { "node" : obj }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2698 if(!animation || !d.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2699 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2700 * triggered when a node is opened and the animation is complete |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2701 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2702 * @name after_open.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2703 * @param {Object} node the opened node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2704 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2705 this.trigger("after_open", { "node" : obj }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2706 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2707 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2708 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2709 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2710 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2711 * opens every parent of a node (node should be loaded) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2712 * @name _open_to(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2713 * @param {mixed} obj the node to reveal |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2714 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2715 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2716 _open_to : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2717 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2718 if(!obj || obj.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2719 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2720 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2721 var i, j, p = obj.parents; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2722 for(i = 0, j = p.length; i < j; i+=1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2723 if(i !== $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2724 this.open_node(p[i], false, 0); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2725 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2726 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2727 return $('#' + obj.id.replace($.jstree.idregex,'\\$&'), this.element); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2728 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2729 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2730 * closes a node, hiding its children |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2731 * @name close_node(obj [, animation]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2732 * @param {mixed} obj the node to close |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2733 * @param {Number} animation the animation duration in milliseconds when closing the node (overrides the `core.animation` setting). Use `false` for no animation. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2734 * @trigger close_node.jstree, after_close.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2735 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2736 close_node : function (obj, animation) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2737 var t1, t2, t, d; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2738 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2739 obj = obj.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2740 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2741 this.close_node(obj[t1], animation); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2742 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2743 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2744 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2745 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2746 if(!obj || obj.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2747 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2748 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2749 if(this.is_closed(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2750 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2751 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2752 animation = animation === undefined ? this.settings.core.animation : animation; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2753 t = this; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2754 d = this.get_node(obj, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2755 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2756 obj.state.opened = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2757 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2758 * triggered when a node is closed (if there is an animation it will not be complete yet) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2759 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2760 * @name close_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2761 * @param {Object} node the closed node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2762 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2763 this.trigger('close_node',{ "node" : obj }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2764 if(!d.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2765 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2766 * triggered when a node is closed and the animation is complete |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2767 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2768 * @name after_close.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2769 * @param {Object} node the closed node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2770 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2771 this.trigger("after_close", { "node" : obj }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2772 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2773 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2774 if(!animation) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2775 d[0].className = d[0].className.replace('jstree-open', 'jstree-closed'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2776 d.attr("aria-expanded", false).children('.jstree-children').remove(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2777 this.trigger("after_close", { "node" : obj }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2778 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2779 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2780 d |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2781 .children(".jstree-children").attr("style","display:block !important").end() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2782 .removeClass("jstree-open").addClass("jstree-closed").attr("aria-expanded", false) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2783 .children(".jstree-children").stop(true, true).slideUp(animation, function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2784 this.style.display = ""; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2785 d.children('.jstree-children').remove(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2786 if (t.element) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2787 t.trigger("after_close", { "node" : obj }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2788 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2789 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2790 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2791 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2792 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2793 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2794 * toggles a node - closing it if it is open, opening it if it is closed |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2795 * @name toggle_node(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2796 * @param {mixed} obj the node to toggle |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2797 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2798 toggle_node : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2799 var t1, t2; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2800 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2801 obj = obj.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2802 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2803 this.toggle_node(obj[t1]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2804 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2805 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2806 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2807 if(this.is_closed(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2808 return this.open_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2809 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2810 if(this.is_open(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2811 return this.close_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2812 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2813 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2814 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2815 * opens all nodes within a node (or the tree), revaling their children. If the node is not loaded it will be loaded and opened once ready. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2816 * @name open_all([obj, animation, original_obj]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2817 * @param {mixed} obj the node to open recursively, omit to open all nodes in the tree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2818 * @param {Number} animation the animation duration in milliseconds when opening the nodes, the default is no animation |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2819 * @param {jQuery} reference to the node that started the process (internal use) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2820 * @trigger open_all.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2821 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2822 open_all : function (obj, animation, original_obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2823 if(!obj) { obj = $.jstree.root; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2824 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2825 if(!obj) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2826 var dom = obj.id === $.jstree.root ? this.get_container_ul() : this.get_node(obj, true), i, j, _this; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2827 if(!dom.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2828 for(i = 0, j = obj.children_d.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2829 if(this.is_closed(this._model.data[obj.children_d[i]])) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2830 this._model.data[obj.children_d[i]].state.opened = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2831 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2832 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2833 return this.trigger('open_all', { "node" : obj }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2834 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2835 original_obj = original_obj || dom; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2836 _this = this; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2837 dom = this.is_closed(obj) ? dom.find('.jstree-closed').addBack() : dom.find('.jstree-closed'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2838 dom.each(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2839 _this.open_node( |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2840 this, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2841 function(node, status) { if(status && this.is_parent(node)) { this.open_all(node, animation, original_obj); } }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2842 animation || 0 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2843 ); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2844 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2845 if(original_obj.find('.jstree-closed').length === 0) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2846 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2847 * triggered when an `open_all` call completes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2848 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2849 * @name open_all.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2850 * @param {Object} node the opened node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2851 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2852 this.trigger('open_all', { "node" : this.get_node(original_obj) }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2853 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2854 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2855 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2856 * closes all nodes within a node (or the tree), revaling their children |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2857 * @name close_all([obj, animation]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2858 * @param {mixed} obj the node to close recursively, omit to close all nodes in the tree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2859 * @param {Number} animation the animation duration in milliseconds when closing the nodes, the default is no animation |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2860 * @trigger close_all.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2861 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2862 close_all : function (obj, animation) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2863 if(!obj) { obj = $.jstree.root; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2864 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2865 if(!obj) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2866 var dom = obj.id === $.jstree.root ? this.get_container_ul() : this.get_node(obj, true), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2867 _this = this, i, j; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2868 if(dom.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2869 dom = this.is_open(obj) ? dom.find('.jstree-open').addBack() : dom.find('.jstree-open'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2870 $(dom.get().reverse()).each(function () { _this.close_node(this, animation || 0); }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2871 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2872 for(i = 0, j = obj.children_d.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2873 this._model.data[obj.children_d[i]].state.opened = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2874 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2875 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2876 * triggered when an `close_all` call completes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2877 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2878 * @name close_all.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2879 * @param {Object} node the closed node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2880 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2881 this.trigger('close_all', { "node" : obj }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2882 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2883 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2884 * checks if a node is disabled (not selectable) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2885 * @name is_disabled(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2886 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2887 * @return {Boolean} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2888 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2889 is_disabled : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2890 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2891 return obj && obj.state && obj.state.disabled; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2892 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2893 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2894 * enables a node - so that it can be selected |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2895 * @name enable_node(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2896 * @param {mixed} obj the node to enable |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2897 * @trigger enable_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2898 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2899 enable_node : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2900 var t1, t2; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2901 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2902 obj = obj.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2903 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2904 this.enable_node(obj[t1]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2905 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2906 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2907 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2908 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2909 if(!obj || obj.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2910 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2911 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2912 obj.state.disabled = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2913 this.get_node(obj,true).children('.jstree-anchor').removeClass('jstree-disabled').attr('aria-disabled', false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2914 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2915 * triggered when an node is enabled |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2916 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2917 * @name enable_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2918 * @param {Object} node the enabled node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2919 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2920 this.trigger('enable_node', { 'node' : obj }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2921 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2922 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2923 * disables a node - so that it can not be selected |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2924 * @name disable_node(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2925 * @param {mixed} obj the node to disable |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2926 * @trigger disable_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2927 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2928 disable_node : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2929 var t1, t2; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2930 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2931 obj = obj.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2932 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2933 this.disable_node(obj[t1]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2934 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2935 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2936 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2937 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2938 if(!obj || obj.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2939 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2940 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2941 obj.state.disabled = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2942 this.get_node(obj,true).children('.jstree-anchor').addClass('jstree-disabled').attr('aria-disabled', true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2943 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2944 * triggered when an node is disabled |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2945 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2946 * @name disable_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2947 * @param {Object} node the disabled node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2948 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2949 this.trigger('disable_node', { 'node' : obj }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2950 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2951 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2952 * determines if a node is hidden |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2953 * @name is_hidden(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2954 * @param {mixed} obj the node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2955 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2956 is_hidden : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2957 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2958 return obj.state.hidden === true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2959 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2960 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2961 * hides a node - it is still in the structure but will not be visible |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2962 * @name hide_node(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2963 * @param {mixed} obj the node to hide |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2964 * @param {Boolean} skip_redraw internal parameter controlling if redraw is called |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2965 * @trigger hide_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2966 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2967 hide_node : function (obj, skip_redraw) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2968 var t1, t2; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2969 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2970 obj = obj.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2971 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2972 this.hide_node(obj[t1], true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2973 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2974 if (!skip_redraw) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2975 this.redraw(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2976 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2977 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2978 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2979 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2980 if(!obj || obj.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2981 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2982 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2983 if(!obj.state.hidden) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2984 obj.state.hidden = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2985 this._node_changed(obj.parent); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2986 if(!skip_redraw) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2987 this.redraw(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2988 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2989 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2990 * triggered when an node is hidden |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2991 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2992 * @name hide_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2993 * @param {Object} node the hidden node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2994 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2995 this.trigger('hide_node', { 'node' : obj }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2996 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2997 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2998 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
2999 * shows a node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3000 * @name show_node(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3001 * @param {mixed} obj the node to show |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3002 * @param {Boolean} skip_redraw internal parameter controlling if redraw is called |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3003 * @trigger show_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3004 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3005 show_node : function (obj, skip_redraw) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3006 var t1, t2; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3007 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3008 obj = obj.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3009 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3010 this.show_node(obj[t1], true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3011 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3012 if (!skip_redraw) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3013 this.redraw(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3014 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3015 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3016 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3017 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3018 if(!obj || obj.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3019 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3020 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3021 if(obj.state.hidden) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3022 obj.state.hidden = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3023 this._node_changed(obj.parent); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3024 if(!skip_redraw) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3025 this.redraw(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3026 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3027 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3028 * triggered when an node is shown |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3029 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3030 * @name show_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3031 * @param {Object} node the shown node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3032 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3033 this.trigger('show_node', { 'node' : obj }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3034 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3035 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3036 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3037 * hides all nodes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3038 * @name hide_all() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3039 * @trigger hide_all.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3040 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3041 hide_all : function (skip_redraw) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3042 var i, m = this._model.data, ids = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3043 for(i in m) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3044 if(m.hasOwnProperty(i) && i !== $.jstree.root && !m[i].state.hidden) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3045 m[i].state.hidden = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3046 ids.push(i); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3047 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3048 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3049 this._model.force_full_redraw = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3050 if(!skip_redraw) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3051 this.redraw(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3052 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3053 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3054 * triggered when all nodes are hidden |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3055 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3056 * @name hide_all.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3057 * @param {Array} nodes the IDs of all hidden nodes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3058 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3059 this.trigger('hide_all', { 'nodes' : ids }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3060 return ids; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3061 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3062 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3063 * shows all nodes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3064 * @name show_all() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3065 * @trigger show_all.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3066 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3067 show_all : function (skip_redraw) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3068 var i, m = this._model.data, ids = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3069 for(i in m) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3070 if(m.hasOwnProperty(i) && i !== $.jstree.root && m[i].state.hidden) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3071 m[i].state.hidden = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3072 ids.push(i); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3073 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3074 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3075 this._model.force_full_redraw = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3076 if(!skip_redraw) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3077 this.redraw(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3078 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3079 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3080 * triggered when all nodes are shown |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3081 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3082 * @name show_all.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3083 * @param {Array} nodes the IDs of all shown nodes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3084 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3085 this.trigger('show_all', { 'nodes' : ids }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3086 return ids; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3087 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3088 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3089 * called when a node is selected by the user. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3090 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3091 * @name activate_node(obj, e) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3092 * @param {mixed} obj the node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3093 * @param {Object} e the related event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3094 * @trigger activate_node.jstree, changed.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3095 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3096 activate_node : function (obj, e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3097 if(this.is_disabled(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3098 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3099 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3100 if(!e || typeof e !== 'object') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3101 e = {}; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3102 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3103 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3104 // ensure last_clicked is still in the DOM, make it fresh (maybe it was moved?) and make sure it is still selected, if not - make last_clicked the last selected node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3105 this._data.core.last_clicked = this._data.core.last_clicked && this._data.core.last_clicked.id !== undefined ? this.get_node(this._data.core.last_clicked.id) : null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3106 if(this._data.core.last_clicked && !this._data.core.last_clicked.state.selected) { this._data.core.last_clicked = null; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3107 if(!this._data.core.last_clicked && this._data.core.selected.length) { this._data.core.last_clicked = this.get_node(this._data.core.selected[this._data.core.selected.length - 1]); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3108 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3109 if(!this.settings.core.multiple || (!e.metaKey && !e.ctrlKey && !e.shiftKey) || (e.shiftKey && (!this._data.core.last_clicked || !this.get_parent(obj) || this.get_parent(obj) !== this._data.core.last_clicked.parent ) )) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3110 if(!this.settings.core.multiple && (e.metaKey || e.ctrlKey || e.shiftKey) && this.is_selected(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3111 this.deselect_node(obj, false, e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3112 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3113 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3114 this.deselect_all(true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3115 this.select_node(obj, false, false, e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3116 this._data.core.last_clicked = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3117 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3118 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3119 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3120 if(e.shiftKey) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3121 var o = this.get_node(obj).id, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3122 l = this._data.core.last_clicked.id, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3123 p = this.get_node(this._data.core.last_clicked.parent).children, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3124 c = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3125 i, j; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3126 for(i = 0, j = p.length; i < j; i += 1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3127 // separate IFs work whem o and l are the same |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3128 if(p[i] === o) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3129 c = !c; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3130 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3131 if(p[i] === l) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3132 c = !c; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3133 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3134 if(!this.is_disabled(p[i]) && (c || p[i] === o || p[i] === l)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3135 if (!this.is_hidden(p[i])) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3136 this.select_node(p[i], true, false, e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3137 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3138 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3139 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3140 this.deselect_node(p[i], true, e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3141 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3142 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3143 this.trigger('changed', { 'action' : 'select_node', 'node' : this.get_node(obj), 'selected' : this._data.core.selected, 'event' : e }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3144 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3145 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3146 if(!this.is_selected(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3147 this.select_node(obj, false, false, e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3148 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3149 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3150 this.deselect_node(obj, false, e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3151 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3152 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3153 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3154 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3155 * triggered when an node is clicked or intercated with by the user |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3156 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3157 * @name activate_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3158 * @param {Object} node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3159 * @param {Object} event the ooriginal event (if any) which triggered the call (may be an empty object) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3160 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3161 this.trigger('activate_node', { 'node' : this.get_node(obj), 'event' : e }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3162 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3163 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3164 * applies the hover state on a node, called when a node is hovered by the user. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3165 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3166 * @name hover_node(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3167 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3168 * @trigger hover_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3169 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3170 hover_node : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3171 obj = this.get_node(obj, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3172 if(!obj || !obj.length || obj.children('.jstree-hovered').length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3173 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3174 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3175 var o = this.element.find('.jstree-hovered'), t = this.element; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3176 if(o && o.length) { this.dehover_node(o); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3177 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3178 obj.children('.jstree-anchor').addClass('jstree-hovered'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3179 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3180 * triggered when an node is hovered |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3181 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3182 * @name hover_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3183 * @param {Object} node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3184 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3185 this.trigger('hover_node', { 'node' : this.get_node(obj) }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3186 setTimeout(function () { t.attr('aria-activedescendant', obj[0].id); }, 0); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3187 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3188 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3189 * removes the hover state from a nodecalled when a node is no longer hovered by the user. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3190 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3191 * @name dehover_node(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3192 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3193 * @trigger dehover_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3194 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3195 dehover_node : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3196 obj = this.get_node(obj, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3197 if(!obj || !obj.length || !obj.children('.jstree-hovered').length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3198 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3199 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3200 obj.children('.jstree-anchor').removeClass('jstree-hovered'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3201 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3202 * triggered when an node is no longer hovered |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3203 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3204 * @name dehover_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3205 * @param {Object} node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3206 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3207 this.trigger('dehover_node', { 'node' : this.get_node(obj) }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3208 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3209 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3210 * select a node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3211 * @name select_node(obj [, supress_event, prevent_open]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3212 * @param {mixed} obj an array can be used to select multiple nodes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3213 * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3214 * @param {Boolean} prevent_open if set to `true` parents of the selected node won't be opened |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3215 * @trigger select_node.jstree, changed.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3216 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3217 select_node : function (obj, supress_event, prevent_open, e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3218 var dom, t1, t2, th; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3219 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3220 obj = obj.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3221 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3222 this.select_node(obj[t1], supress_event, prevent_open, e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3223 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3224 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3225 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3226 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3227 if(!obj || obj.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3228 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3229 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3230 dom = this.get_node(obj, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3231 if(!obj.state.selected) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3232 obj.state.selected = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3233 this._data.core.selected.push(obj.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3234 if(!prevent_open) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3235 dom = this._open_to(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3236 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3237 if(dom && dom.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3238 dom.attr('aria-selected', true).children('.jstree-anchor').addClass('jstree-clicked'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3239 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3240 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3241 * triggered when an node is selected |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3242 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3243 * @name select_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3244 * @param {Object} node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3245 * @param {Array} selected the current selection |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3246 * @param {Object} event the event (if any) that triggered this select_node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3247 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3248 this.trigger('select_node', { 'node' : obj, 'selected' : this._data.core.selected, 'event' : e }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3249 if(!supress_event) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3250 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3251 * triggered when selection changes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3252 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3253 * @name changed.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3254 * @param {Object} node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3255 * @param {Object} action the action that caused the selection to change |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3256 * @param {Array} selected the current selection |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3257 * @param {Object} event the event (if any) that triggered this changed event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3258 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3259 this.trigger('changed', { 'action' : 'select_node', 'node' : obj, 'selected' : this._data.core.selected, 'event' : e }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3260 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3261 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3262 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3263 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3264 * deselect a node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3265 * @name deselect_node(obj [, supress_event]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3266 * @param {mixed} obj an array can be used to deselect multiple nodes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3267 * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3268 * @trigger deselect_node.jstree, changed.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3269 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3270 deselect_node : function (obj, supress_event, e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3271 var t1, t2, dom; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3272 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3273 obj = obj.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3274 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3275 this.deselect_node(obj[t1], supress_event, e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3276 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3277 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3278 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3279 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3280 if(!obj || obj.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3281 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3282 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3283 dom = this.get_node(obj, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3284 if(obj.state.selected) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3285 obj.state.selected = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3286 this._data.core.selected = $.vakata.array_remove_item(this._data.core.selected, obj.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3287 if(dom.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3288 dom.attr('aria-selected', false).children('.jstree-anchor').removeClass('jstree-clicked'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3289 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3290 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3291 * triggered when an node is deselected |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3292 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3293 * @name deselect_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3294 * @param {Object} node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3295 * @param {Array} selected the current selection |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3296 * @param {Object} event the event (if any) that triggered this deselect_node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3297 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3298 this.trigger('deselect_node', { 'node' : obj, 'selected' : this._data.core.selected, 'event' : e }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3299 if(!supress_event) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3300 this.trigger('changed', { 'action' : 'deselect_node', 'node' : obj, 'selected' : this._data.core.selected, 'event' : e }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3301 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3302 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3303 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3304 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3305 * select all nodes in the tree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3306 * @name select_all([supress_event]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3307 * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3308 * @trigger select_all.jstree, changed.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3309 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3310 select_all : function (supress_event) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3311 var tmp = this._data.core.selected.concat([]), i, j; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3312 this._data.core.selected = this._model.data[$.jstree.root].children_d.concat(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3313 for(i = 0, j = this._data.core.selected.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3314 if(this._model.data[this._data.core.selected[i]]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3315 this._model.data[this._data.core.selected[i]].state.selected = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3316 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3317 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3318 this.redraw(true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3319 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3320 * triggered when all nodes are selected |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3321 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3322 * @name select_all.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3323 * @param {Array} selected the current selection |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3324 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3325 this.trigger('select_all', { 'selected' : this._data.core.selected }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3326 if(!supress_event) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3327 this.trigger('changed', { 'action' : 'select_all', 'selected' : this._data.core.selected, 'old_selection' : tmp }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3328 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3329 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3330 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3331 * deselect all selected nodes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3332 * @name deselect_all([supress_event]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3333 * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3334 * @trigger deselect_all.jstree, changed.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3335 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3336 deselect_all : function (supress_event) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3337 var tmp = this._data.core.selected.concat([]), i, j; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3338 for(i = 0, j = this._data.core.selected.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3339 if(this._model.data[this._data.core.selected[i]]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3340 this._model.data[this._data.core.selected[i]].state.selected = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3341 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3342 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3343 this._data.core.selected = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3344 this.element.find('.jstree-clicked').removeClass('jstree-clicked').parent().attr('aria-selected', false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3345 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3346 * triggered when all nodes are deselected |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3347 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3348 * @name deselect_all.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3349 * @param {Object} node the previous selection |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3350 * @param {Array} selected the current selection |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3351 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3352 this.trigger('deselect_all', { 'selected' : this._data.core.selected, 'node' : tmp }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3353 if(!supress_event) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3354 this.trigger('changed', { 'action' : 'deselect_all', 'selected' : this._data.core.selected, 'old_selection' : tmp }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3355 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3356 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3357 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3358 * checks if a node is selected |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3359 * @name is_selected(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3360 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3361 * @return {Boolean} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3362 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3363 is_selected : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3364 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3365 if(!obj || obj.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3366 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3367 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3368 return obj.state.selected; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3369 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3370 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3371 * get an array of all selected nodes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3372 * @name get_selected([full]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3373 * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3374 * @return {Array} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3375 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3376 get_selected : function (full) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3377 return full ? $.map(this._data.core.selected, $.proxy(function (i) { return this.get_node(i); }, this)) : this._data.core.selected.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3378 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3379 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3380 * get an array of all top level selected nodes (ignoring children of selected nodes) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3381 * @name get_top_selected([full]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3382 * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3383 * @return {Array} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3384 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3385 get_top_selected : function (full) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3386 var tmp = this.get_selected(true), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3387 obj = {}, i, j, k, l; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3388 for(i = 0, j = tmp.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3389 obj[tmp[i].id] = tmp[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3390 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3391 for(i = 0, j = tmp.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3392 for(k = 0, l = tmp[i].children_d.length; k < l; k++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3393 if(obj[tmp[i].children_d[k]]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3394 delete obj[tmp[i].children_d[k]]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3395 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3396 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3397 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3398 tmp = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3399 for(i in obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3400 if(obj.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3401 tmp.push(i); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3402 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3403 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3404 return full ? $.map(tmp, $.proxy(function (i) { return this.get_node(i); }, this)) : tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3405 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3406 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3407 * get an array of all bottom level selected nodes (ignoring selected parents) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3408 * @name get_bottom_selected([full]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3409 * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3410 * @return {Array} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3411 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3412 get_bottom_selected : function (full) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3413 var tmp = this.get_selected(true), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3414 obj = [], i, j; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3415 for(i = 0, j = tmp.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3416 if(!tmp[i].children.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3417 obj.push(tmp[i].id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3418 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3419 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3420 return full ? $.map(obj, $.proxy(function (i) { return this.get_node(i); }, this)) : obj; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3421 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3422 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3423 * gets the current state of the tree so that it can be restored later with `set_state(state)`. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3424 * @name get_state() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3425 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3426 * @return {Object} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3427 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3428 get_state : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3429 var state = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3430 'core' : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3431 'open' : [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3432 'loaded' : [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3433 'scroll' : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3434 'left' : this.element.scrollLeft(), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3435 'top' : this.element.scrollTop() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3436 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3437 /*! |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3438 'themes' : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3439 'name' : this.get_theme(), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3440 'icons' : this._data.core.themes.icons, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3441 'dots' : this._data.core.themes.dots |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3442 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3443 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3444 'selected' : [] |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3445 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3446 }, i; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3447 for(i in this._model.data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3448 if(this._model.data.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3449 if(i !== $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3450 if(this._model.data[i].state.loaded && this.settings.core.loaded_state) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3451 state.core.loaded.push(i); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3452 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3453 if(this._model.data[i].state.opened) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3454 state.core.open.push(i); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3455 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3456 if(this._model.data[i].state.selected) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3457 state.core.selected.push(i); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3458 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3459 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3460 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3461 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3462 return state; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3463 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3464 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3465 * sets the state of the tree. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3466 * @name set_state(state [, callback]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3467 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3468 * @param {Object} state the state to restore. Keep in mind this object is passed by reference and jstree will modify it. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3469 * @param {Function} callback an optional function to execute once the state is restored. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3470 * @trigger set_state.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3471 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3472 set_state : function (state, callback) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3473 if(state) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3474 if(state.core && state.core.selected && state.core.initial_selection === undefined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3475 state.core.initial_selection = this._data.core.selected.concat([]).sort().join(','); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3476 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3477 if(state.core) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3478 var res, n, t, _this, i; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3479 if(state.core.loaded) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3480 if(!this.settings.core.loaded_state || !$.isArray(state.core.loaded) || !state.core.loaded.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3481 delete state.core.loaded; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3482 this.set_state(state, callback); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3483 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3484 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3485 this._load_nodes(state.core.loaded, function (nodes) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3486 delete state.core.loaded; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3487 this.set_state(state, callback); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3488 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3489 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3490 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3491 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3492 if(state.core.open) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3493 if(!$.isArray(state.core.open) || !state.core.open.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3494 delete state.core.open; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3495 this.set_state(state, callback); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3496 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3497 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3498 this._load_nodes(state.core.open, function (nodes) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3499 this.open_node(nodes, false, 0); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3500 delete state.core.open; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3501 this.set_state(state, callback); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3502 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3503 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3504 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3505 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3506 if(state.core.scroll) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3507 if(state.core.scroll && state.core.scroll.left !== undefined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3508 this.element.scrollLeft(state.core.scroll.left); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3509 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3510 if(state.core.scroll && state.core.scroll.top !== undefined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3511 this.element.scrollTop(state.core.scroll.top); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3512 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3513 delete state.core.scroll; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3514 this.set_state(state, callback); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3515 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3516 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3517 if(state.core.selected) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3518 _this = this; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3519 if (state.core.initial_selection === undefined || |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3520 state.core.initial_selection === this._data.core.selected.concat([]).sort().join(',') |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3521 ) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3522 this.deselect_all(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3523 $.each(state.core.selected, function (i, v) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3524 _this.select_node(v, false, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3525 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3526 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3527 delete state.core.initial_selection; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3528 delete state.core.selected; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3529 this.set_state(state, callback); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3530 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3531 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3532 for(i in state) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3533 if(state.hasOwnProperty(i) && i !== "core" && $.inArray(i, this.settings.plugins) === -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3534 delete state[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3535 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3536 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3537 if($.isEmptyObject(state.core)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3538 delete state.core; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3539 this.set_state(state, callback); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3540 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3541 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3542 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3543 if($.isEmptyObject(state)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3544 state = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3545 if(callback) { callback.call(this); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3546 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3547 * triggered when a `set_state` call completes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3548 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3549 * @name set_state.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3550 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3551 this.trigger('set_state'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3552 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3553 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3554 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3555 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3556 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3557 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3558 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3559 * refreshes the tree - all nodes are reloaded with calls to `load_node`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3560 * @name refresh() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3561 * @param {Boolean} skip_loading an option to skip showing the loading indicator |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3562 * @param {Mixed} forget_state if set to `true` state will not be reapplied, if set to a function (receiving the current state as argument) the result of that function will be used as state |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3563 * @trigger refresh.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3564 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3565 refresh : function (skip_loading, forget_state) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3566 this._data.core.state = forget_state === true ? {} : this.get_state(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3567 if(forget_state && $.isFunction(forget_state)) { this._data.core.state = forget_state.call(this, this._data.core.state); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3568 this._cnt = 0; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3569 this._model.data = {}; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3570 this._model.data[$.jstree.root] = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3571 id : $.jstree.root, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3572 parent : null, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3573 parents : [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3574 children : [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3575 children_d : [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3576 state : { loaded : false } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3577 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3578 this._data.core.selected = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3579 this._data.core.last_clicked = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3580 this._data.core.focused = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3581 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3582 var c = this.get_container_ul()[0].className; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3583 if(!skip_loading) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3584 this.element.html("<"+"ul class='"+c+"' role='group'><"+"li class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='treeitem' id='j"+this._id+"_loading'><i class='jstree-icon jstree-ocl'></i><"+"a class='jstree-anchor' href='#'><i class='jstree-icon jstree-themeicon-hidden'></i>" + this.get_string("Loading ...") + "</a></li></ul>"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3585 this.element.attr('aria-activedescendant','j'+this._id+'_loading'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3586 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3587 this.load_node($.jstree.root, function (o, s) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3588 if(s) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3589 this.get_container_ul()[0].className = c; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3590 if(this._firstChild(this.get_container_ul()[0])) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3591 this.element.attr('aria-activedescendant',this._firstChild(this.get_container_ul()[0]).id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3592 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3593 this.set_state($.extend(true, {}, this._data.core.state), function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3594 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3595 * triggered when a `refresh` call completes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3596 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3597 * @name refresh.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3598 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3599 this.trigger('refresh'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3600 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3601 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3602 this._data.core.state = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3603 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3604 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3605 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3606 * refreshes a node in the tree (reload its children) all opened nodes inside that node are reloaded with calls to `load_node`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3607 * @name refresh_node(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3608 * @param {mixed} obj the node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3609 * @trigger refresh_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3610 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3611 refresh_node : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3612 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3613 if(!obj || obj.id === $.jstree.root) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3614 var opened = [], to_load = [], s = this._data.core.selected.concat([]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3615 to_load.push(obj.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3616 if(obj.state.opened === true) { opened.push(obj.id); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3617 this.get_node(obj, true).find('.jstree-open').each(function() { to_load.push(this.id); opened.push(this.id); }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3618 this._load_nodes(to_load, $.proxy(function (nodes) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3619 this.open_node(opened, false, 0); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3620 this.select_node(s); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3621 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3622 * triggered when a node is refreshed |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3623 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3624 * @name refresh_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3625 * @param {Object} node - the refreshed node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3626 * @param {Array} nodes - an array of the IDs of the nodes that were reloaded |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3627 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3628 this.trigger('refresh_node', { 'node' : obj, 'nodes' : nodes }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3629 }, this), false, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3630 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3631 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3632 * set (change) the ID of a node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3633 * @name set_id(obj, id) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3634 * @param {mixed} obj the node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3635 * @param {String} id the new ID |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3636 * @return {Boolean} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3637 * @trigger set_id.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3638 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3639 set_id : function (obj, id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3640 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3641 if(!obj || obj.id === $.jstree.root) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3642 var i, j, m = this._model.data, old = obj.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3643 id = id.toString(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3644 // update parents (replace current ID with new one in children and children_d) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3645 m[obj.parent].children[$.inArray(obj.id, m[obj.parent].children)] = id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3646 for(i = 0, j = obj.parents.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3647 m[obj.parents[i]].children_d[$.inArray(obj.id, m[obj.parents[i]].children_d)] = id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3648 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3649 // update children (replace current ID with new one in parent and parents) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3650 for(i = 0, j = obj.children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3651 m[obj.children[i]].parent = id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3652 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3653 for(i = 0, j = obj.children_d.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3654 m[obj.children_d[i]].parents[$.inArray(obj.id, m[obj.children_d[i]].parents)] = id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3655 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3656 i = $.inArray(obj.id, this._data.core.selected); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3657 if(i !== -1) { this._data.core.selected[i] = id; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3658 // update model and obj itself (obj.id, this._model.data[KEY]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3659 i = this.get_node(obj.id, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3660 if(i) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3661 i.attr('id', id); //.children('.jstree-anchor').attr('id', id + '_anchor').end().attr('aria-labelledby', id + '_anchor'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3662 if(this.element.attr('aria-activedescendant') === obj.id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3663 this.element.attr('aria-activedescendant', id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3664 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3665 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3666 delete m[obj.id]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3667 obj.id = id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3668 obj.li_attr.id = id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3669 m[id] = obj; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3670 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3671 * triggered when a node id value is changed |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3672 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3673 * @name set_id.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3674 * @param {Object} node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3675 * @param {String} old the old id |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3676 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3677 this.trigger('set_id',{ "node" : obj, "new" : obj.id, "old" : old }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3678 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3679 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3680 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3681 * get the text value of a node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3682 * @name get_text(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3683 * @param {mixed} obj the node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3684 * @return {String} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3685 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3686 get_text : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3687 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3688 return (!obj || obj.id === $.jstree.root) ? false : obj.text; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3689 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3690 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3691 * set the text value of a node. Used internally, please use `rename_node(obj, val)`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3692 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3693 * @name set_text(obj, val) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3694 * @param {mixed} obj the node, you can pass an array to set the text on multiple nodes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3695 * @param {String} val the new text value |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3696 * @return {Boolean} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3697 * @trigger set_text.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3698 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3699 set_text : function (obj, val) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3700 var t1, t2; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3701 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3702 obj = obj.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3703 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3704 this.set_text(obj[t1], val); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3705 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3706 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3707 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3708 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3709 if(!obj || obj.id === $.jstree.root) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3710 obj.text = val; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3711 if(this.get_node(obj, true).length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3712 this.redraw_node(obj.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3713 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3714 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3715 * triggered when a node text value is changed |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3716 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3717 * @name set_text.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3718 * @param {Object} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3719 * @param {String} text the new value |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3720 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3721 this.trigger('set_text',{ "obj" : obj, "text" : val }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3722 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3723 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3724 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3725 * gets a JSON representation of a node (or the whole tree) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3726 * @name get_json([obj, options]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3727 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3728 * @param {Object} options |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3729 * @param {Boolean} options.no_state do not return state information |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3730 * @param {Boolean} options.no_id do not return ID |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3731 * @param {Boolean} options.no_children do not include children |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3732 * @param {Boolean} options.no_data do not include node data |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3733 * @param {Boolean} options.no_li_attr do not include LI attributes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3734 * @param {Boolean} options.no_a_attr do not include A attributes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3735 * @param {Boolean} options.flat return flat JSON instead of nested |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3736 * @return {Object} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3737 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3738 get_json : function (obj, options, flat) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3739 obj = this.get_node(obj || $.jstree.root); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3740 if(!obj) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3741 if(options && options.flat && !flat) { flat = []; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3742 var tmp = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3743 'id' : obj.id, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3744 'text' : obj.text, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3745 'icon' : this.get_icon(obj), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3746 'li_attr' : $.extend(true, {}, obj.li_attr), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3747 'a_attr' : $.extend(true, {}, obj.a_attr), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3748 'state' : {}, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3749 'data' : options && options.no_data ? false : $.extend(true, $.isArray(obj.data)?[]:{}, obj.data) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3750 //( this.get_node(obj, true).length ? this.get_node(obj, true).data() : obj.data ), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3751 }, i, j; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3752 if(options && options.flat) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3753 tmp.parent = obj.parent; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3754 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3755 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3756 tmp.children = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3757 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3758 if(!options || !options.no_state) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3759 for(i in obj.state) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3760 if(obj.state.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3761 tmp.state[i] = obj.state[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3762 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3763 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3764 } else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3765 delete tmp.state; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3766 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3767 if(options && options.no_li_attr) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3768 delete tmp.li_attr; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3769 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3770 if(options && options.no_a_attr) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3771 delete tmp.a_attr; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3772 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3773 if(options && options.no_id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3774 delete tmp.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3775 if(tmp.li_attr && tmp.li_attr.id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3776 delete tmp.li_attr.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3777 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3778 if(tmp.a_attr && tmp.a_attr.id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3779 delete tmp.a_attr.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3780 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3781 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3782 if(options && options.flat && obj.id !== $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3783 flat.push(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3784 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3785 if(!options || !options.no_children) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3786 for(i = 0, j = obj.children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3787 if(options && options.flat) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3788 this.get_json(obj.children[i], options, flat); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3789 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3790 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3791 tmp.children.push(this.get_json(obj.children[i], options)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3792 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3793 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3794 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3795 return options && options.flat ? flat : (obj.id === $.jstree.root ? tmp.children : tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3796 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3797 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3798 * create a new node (do not confuse with load_node) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3799 * @name create_node([par, node, pos, callback, is_loaded]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3800 * @param {mixed} par the parent node (to create a root node use either "#" (string) or `null`) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3801 * @param {mixed} node the data for the new node (a valid JSON object, or a simple string with the name) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3802 * @param {mixed} pos the index at which to insert the node, "first" and "last" are also supported, default is "last" |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3803 * @param {Function} callback a function to be called once the node is created |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3804 * @param {Boolean} is_loaded internal argument indicating if the parent node was succesfully loaded |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3805 * @return {String} the ID of the newly create node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3806 * @trigger model.jstree, create_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3807 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3808 create_node : function (par, node, pos, callback, is_loaded) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3809 if(par === null) { par = $.jstree.root; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3810 par = this.get_node(par); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3811 if(!par) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3812 pos = pos === undefined ? "last" : pos; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3813 if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3814 return this.load_node(par, function () { this.create_node(par, node, pos, callback, true); }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3815 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3816 if(!node) { node = { "text" : this.get_string('New node') }; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3817 if(typeof node === "string") { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3818 node = { "text" : node }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3819 } else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3820 node = $.extend(true, {}, node); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3821 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3822 if(node.text === undefined) { node.text = this.get_string('New node'); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3823 var tmp, dpc, i, j; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3824 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3825 if(par.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3826 if(pos === "before") { pos = "first"; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3827 if(pos === "after") { pos = "last"; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3828 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3829 switch(pos) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3830 case "before": |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3831 tmp = this.get_node(par.parent); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3832 pos = $.inArray(par.id, tmp.children); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3833 par = tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3834 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3835 case "after" : |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3836 tmp = this.get_node(par.parent); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3837 pos = $.inArray(par.id, tmp.children) + 1; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3838 par = tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3839 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3840 case "inside": |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3841 case "first": |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3842 pos = 0; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3843 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3844 case "last": |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3845 pos = par.children.length; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3846 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3847 default: |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3848 if(!pos) { pos = 0; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3849 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3850 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3851 if(pos > par.children.length) { pos = par.children.length; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3852 if(!node.id) { node.id = true; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3853 if(!this.check("create_node", node, par, pos)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3854 this.settings.core.error.call(this, this._data.core.last_error); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3855 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3856 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3857 if(node.id === true) { delete node.id; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3858 node = this._parse_model_from_json(node, par.id, par.parents.concat()); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3859 if(!node) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3860 tmp = this.get_node(node); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3861 dpc = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3862 dpc.push(node); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3863 dpc = dpc.concat(tmp.children_d); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3864 this.trigger('model', { "nodes" : dpc, "parent" : par.id }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3865 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3866 par.children_d = par.children_d.concat(dpc); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3867 for(i = 0, j = par.parents.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3868 this._model.data[par.parents[i]].children_d = this._model.data[par.parents[i]].children_d.concat(dpc); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3869 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3870 node = tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3871 tmp = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3872 for(i = 0, j = par.children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3873 tmp[i >= pos ? i+1 : i] = par.children[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3874 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3875 tmp[pos] = node.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3876 par.children = tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3877 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3878 this.redraw_node(par, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3879 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3880 * triggered when a node is created |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3881 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3882 * @name create_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3883 * @param {Object} node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3884 * @param {String} parent the parent's ID |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3885 * @param {Number} position the position of the new node among the parent's children |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3886 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3887 this.trigger('create_node', { "node" : this.get_node(node), "parent" : par.id, "position" : pos }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3888 if(callback) { callback.call(this, this.get_node(node)); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3889 return node.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3890 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3891 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3892 * set the text value of a node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3893 * @name rename_node(obj, val) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3894 * @param {mixed} obj the node, you can pass an array to rename multiple nodes to the same name |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3895 * @param {String} val the new text value |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3896 * @return {Boolean} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3897 * @trigger rename_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3898 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3899 rename_node : function (obj, val) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3900 var t1, t2, old; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3901 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3902 obj = obj.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3903 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3904 this.rename_node(obj[t1], val); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3905 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3906 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3907 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3908 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3909 if(!obj || obj.id === $.jstree.root) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3910 old = obj.text; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3911 if(!this.check("rename_node", obj, this.get_parent(obj), val)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3912 this.settings.core.error.call(this, this._data.core.last_error); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3913 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3914 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3915 this.set_text(obj, val); // .apply(this, Array.prototype.slice.call(arguments)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3916 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3917 * triggered when a node is renamed |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3918 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3919 * @name rename_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3920 * @param {Object} node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3921 * @param {String} text the new value |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3922 * @param {String} old the old value |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3923 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3924 this.trigger('rename_node', { "node" : obj, "text" : val, "old" : old }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3925 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3926 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3927 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3928 * remove a node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3929 * @name delete_node(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3930 * @param {mixed} obj the node, you can pass an array to delete multiple nodes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3931 * @return {Boolean} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3932 * @trigger delete_node.jstree, changed.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3933 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3934 delete_node : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3935 var t1, t2, par, pos, tmp, i, j, k, l, c, top, lft; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3936 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3937 obj = obj.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3938 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3939 this.delete_node(obj[t1]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3940 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3941 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3942 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3943 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3944 if(!obj || obj.id === $.jstree.root) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3945 par = this.get_node(obj.parent); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3946 pos = $.inArray(obj.id, par.children); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3947 c = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3948 if(!this.check("delete_node", obj, par, pos)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3949 this.settings.core.error.call(this, this._data.core.last_error); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3950 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3951 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3952 if(pos !== -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3953 par.children = $.vakata.array_remove(par.children, pos); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3954 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3955 tmp = obj.children_d.concat([]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3956 tmp.push(obj.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3957 for(i = 0, j = obj.parents.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3958 this._model.data[obj.parents[i]].children_d = $.vakata.array_filter(this._model.data[obj.parents[i]].children_d, function (v) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3959 return $.inArray(v, tmp) === -1; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3960 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3961 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3962 for(k = 0, l = tmp.length; k < l; k++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3963 if(this._model.data[tmp[k]].state.selected) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3964 c = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3965 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3966 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3967 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3968 if (c) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3969 this._data.core.selected = $.vakata.array_filter(this._data.core.selected, function (v) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3970 return $.inArray(v, tmp) === -1; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3971 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3972 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3973 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3974 * triggered when a node is deleted |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3975 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3976 * @name delete_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3977 * @param {Object} node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3978 * @param {String} parent the parent's ID |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3979 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3980 this.trigger('delete_node', { "node" : obj, "parent" : par.id }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3981 if(c) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3982 this.trigger('changed', { 'action' : 'delete_node', 'node' : obj, 'selected' : this._data.core.selected, 'parent' : par.id }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3983 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3984 for(k = 0, l = tmp.length; k < l; k++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3985 delete this._model.data[tmp[k]]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3986 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3987 if($.inArray(this._data.core.focused, tmp) !== -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3988 this._data.core.focused = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3989 top = this.element[0].scrollTop; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3990 lft = this.element[0].scrollLeft; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3991 if(par.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3992 if (this._model.data[$.jstree.root].children[0]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3993 this.get_node(this._model.data[$.jstree.root].children[0], true).children('.jstree-anchor').focus(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3994 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3995 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3996 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3997 this.get_node(par, true).children('.jstree-anchor').focus(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3998 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
3999 this.element[0].scrollTop = top; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4000 this.element[0].scrollLeft = lft; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4001 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4002 this.redraw_node(par, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4003 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4004 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4005 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4006 * check if an operation is premitted on the tree. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4007 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4008 * @name check(chk, obj, par, pos) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4009 * @param {String} chk the operation to check, can be "create_node", "rename_node", "delete_node", "copy_node" or "move_node" |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4010 * @param {mixed} obj the node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4011 * @param {mixed} par the parent |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4012 * @param {mixed} pos the position to insert at, or if "rename_node" - the new name |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4013 * @param {mixed} more some various additional information, for example if a "move_node" operations is triggered by DND this will be the hovered node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4014 * @return {Boolean} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4015 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4016 check : function (chk, obj, par, pos, more) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4017 obj = obj && obj.id ? obj : this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4018 par = par && par.id ? par : this.get_node(par); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4019 var tmp = chk.match(/^move_node|copy_node|create_node$/i) ? par : obj, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4020 chc = this.settings.core.check_callback; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4021 if(chk === "move_node" || chk === "copy_node") { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4022 if((!more || !more.is_multi) && (obj.id === par.id || (chk === "move_node" && $.inArray(obj.id, par.children) === pos) || $.inArray(par.id, obj.children_d) !== -1)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4023 this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_01', 'reason' : 'Moving parent inside child', 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4024 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4025 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4026 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4027 if(tmp && tmp.data) { tmp = tmp.data; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4028 if(tmp && tmp.functions && (tmp.functions[chk] === false || tmp.functions[chk] === true)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4029 if(tmp.functions[chk] === false) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4030 this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_02', 'reason' : 'Node data prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4031 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4032 return tmp.functions[chk]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4033 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4034 if(chc === false || ($.isFunction(chc) && chc.call(this, chk, obj, par, pos, more) === false) || (chc && chc[chk] === false)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4035 this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_03', 'reason' : 'User config for core.check_callback prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4036 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4037 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4038 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4039 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4040 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4041 * get the last error |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4042 * @name last_error() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4043 * @return {Object} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4044 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4045 last_error : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4046 return this._data.core.last_error; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4047 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4048 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4049 * move a node to a new parent |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4050 * @name move_node(obj, par [, pos, callback, is_loaded]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4051 * @param {mixed} obj the node to move, pass an array to move multiple nodes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4052 * @param {mixed} par the new parent |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4053 * @param {mixed} pos the position to insert at (besides integer values, "first" and "last" are supported, as well as "before" and "after"), defaults to integer `0` |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4054 * @param {function} callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4055 * @param {Boolean} is_loaded internal parameter indicating if the parent node has been loaded |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4056 * @param {Boolean} skip_redraw internal parameter indicating if the tree should be redrawn |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4057 * @param {Boolean} instance internal parameter indicating if the node comes from another instance |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4058 * @trigger move_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4059 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4060 move_node : function (obj, par, pos, callback, is_loaded, skip_redraw, origin) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4061 var t1, t2, old_par, old_pos, new_par, old_ins, is_multi, dpc, tmp, i, j, k, l, p; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4062 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4063 par = this.get_node(par); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4064 pos = pos === undefined ? 0 : pos; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4065 if(!par) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4066 if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4067 return this.load_node(par, function () { this.move_node(obj, par, pos, callback, true, false, origin); }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4068 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4069 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4070 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4071 if(obj.length === 1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4072 obj = obj[0]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4073 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4074 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4075 //obj = obj.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4076 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4077 if((tmp = this.move_node(obj[t1], par, pos, callback, is_loaded, false, origin))) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4078 par = tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4079 pos = "after"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4080 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4081 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4082 this.redraw(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4083 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4084 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4085 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4086 obj = obj && obj.id ? obj : this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4087 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4088 if(!obj || obj.id === $.jstree.root) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4089 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4090 old_par = (obj.parent || $.jstree.root).toString(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4091 new_par = (!pos.toString().match(/^(before|after)$/) || par.id === $.jstree.root) ? par : this.get_node(par.parent); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4092 old_ins = origin ? origin : (this._model.data[obj.id] ? this : $.jstree.reference(obj.id)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4093 is_multi = !old_ins || !old_ins._id || (this._id !== old_ins._id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4094 old_pos = old_ins && old_ins._id && old_par && old_ins._model.data[old_par] && old_ins._model.data[old_par].children ? $.inArray(obj.id, old_ins._model.data[old_par].children) : -1; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4095 if(old_ins && old_ins._id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4096 obj = old_ins._model.data[obj.id]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4097 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4098 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4099 if(is_multi) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4100 if((tmp = this.copy_node(obj, par, pos, callback, is_loaded, false, origin))) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4101 if(old_ins) { old_ins.delete_node(obj); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4102 return tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4103 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4104 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4105 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4106 //var m = this._model.data; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4107 if(par.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4108 if(pos === "before") { pos = "first"; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4109 if(pos === "after") { pos = "last"; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4110 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4111 switch(pos) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4112 case "before": |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4113 pos = $.inArray(par.id, new_par.children); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4114 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4115 case "after" : |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4116 pos = $.inArray(par.id, new_par.children) + 1; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4117 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4118 case "inside": |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4119 case "first": |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4120 pos = 0; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4121 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4122 case "last": |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4123 pos = new_par.children.length; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4124 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4125 default: |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4126 if(!pos) { pos = 0; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4127 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4128 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4129 if(pos > new_par.children.length) { pos = new_par.children.length; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4130 if(!this.check("move_node", obj, new_par, pos, { 'core' : true, 'origin' : origin, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id) })) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4131 this.settings.core.error.call(this, this._data.core.last_error); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4132 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4133 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4134 if(obj.parent === new_par.id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4135 dpc = new_par.children.concat(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4136 tmp = $.inArray(obj.id, dpc); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4137 if(tmp !== -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4138 dpc = $.vakata.array_remove(dpc, tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4139 if(pos > tmp) { pos--; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4140 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4141 tmp = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4142 for(i = 0, j = dpc.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4143 tmp[i >= pos ? i+1 : i] = dpc[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4144 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4145 tmp[pos] = obj.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4146 new_par.children = tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4147 this._node_changed(new_par.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4148 this.redraw(new_par.id === $.jstree.root); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4149 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4150 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4151 // clean old parent and up |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4152 tmp = obj.children_d.concat(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4153 tmp.push(obj.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4154 for(i = 0, j = obj.parents.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4155 dpc = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4156 p = old_ins._model.data[obj.parents[i]].children_d; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4157 for(k = 0, l = p.length; k < l; k++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4158 if($.inArray(p[k], tmp) === -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4159 dpc.push(p[k]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4160 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4161 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4162 old_ins._model.data[obj.parents[i]].children_d = dpc; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4163 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4164 old_ins._model.data[old_par].children = $.vakata.array_remove_item(old_ins._model.data[old_par].children, obj.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4165 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4166 // insert into new parent and up |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4167 for(i = 0, j = new_par.parents.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4168 this._model.data[new_par.parents[i]].children_d = this._model.data[new_par.parents[i]].children_d.concat(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4169 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4170 dpc = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4171 for(i = 0, j = new_par.children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4172 dpc[i >= pos ? i+1 : i] = new_par.children[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4173 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4174 dpc[pos] = obj.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4175 new_par.children = dpc; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4176 new_par.children_d.push(obj.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4177 new_par.children_d = new_par.children_d.concat(obj.children_d); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4178 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4179 // update object |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4180 obj.parent = new_par.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4181 tmp = new_par.parents.concat(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4182 tmp.unshift(new_par.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4183 p = obj.parents.length; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4184 obj.parents = tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4185 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4186 // update object children |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4187 tmp = tmp.concat(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4188 for(i = 0, j = obj.children_d.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4189 this._model.data[obj.children_d[i]].parents = this._model.data[obj.children_d[i]].parents.slice(0,p*-1); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4190 Array.prototype.push.apply(this._model.data[obj.children_d[i]].parents, tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4191 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4192 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4193 if(old_par === $.jstree.root || new_par.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4194 this._model.force_full_redraw = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4195 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4196 if(!this._model.force_full_redraw) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4197 this._node_changed(old_par); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4198 this._node_changed(new_par.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4199 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4200 if(!skip_redraw) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4201 this.redraw(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4202 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4203 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4204 if(callback) { callback.call(this, obj, new_par, pos); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4205 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4206 * triggered when a node is moved |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4207 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4208 * @name move_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4209 * @param {Object} node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4210 * @param {String} parent the parent's ID |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4211 * @param {Number} position the position of the node among the parent's children |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4212 * @param {String} old_parent the old parent of the node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4213 * @param {Number} old_position the old position of the node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4214 * @param {Boolean} is_multi do the node and new parent belong to different instances |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4215 * @param {jsTree} old_instance the instance the node came from |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4216 * @param {jsTree} new_instance the instance of the new parent |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4217 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4218 this.trigger('move_node', { "node" : obj, "parent" : new_par.id, "position" : pos, "old_parent" : old_par, "old_position" : old_pos, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id), 'old_instance' : old_ins, 'new_instance' : this }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4219 return obj.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4220 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4221 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4222 * copy a node to a new parent |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4223 * @name copy_node(obj, par [, pos, callback, is_loaded]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4224 * @param {mixed} obj the node to copy, pass an array to copy multiple nodes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4225 * @param {mixed} par the new parent |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4226 * @param {mixed} pos the position to insert at (besides integer values, "first" and "last" are supported, as well as "before" and "after"), defaults to integer `0` |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4227 * @param {function} callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4228 * @param {Boolean} is_loaded internal parameter indicating if the parent node has been loaded |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4229 * @param {Boolean} skip_redraw internal parameter indicating if the tree should be redrawn |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4230 * @param {Boolean} instance internal parameter indicating if the node comes from another instance |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4231 * @trigger model.jstree copy_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4232 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4233 copy_node : function (obj, par, pos, callback, is_loaded, skip_redraw, origin) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4234 var t1, t2, dpc, tmp, i, j, node, old_par, new_par, old_ins, is_multi; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4235 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4236 par = this.get_node(par); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4237 pos = pos === undefined ? 0 : pos; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4238 if(!par) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4239 if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4240 return this.load_node(par, function () { this.copy_node(obj, par, pos, callback, true, false, origin); }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4241 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4242 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4243 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4244 if(obj.length === 1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4245 obj = obj[0]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4246 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4247 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4248 //obj = obj.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4249 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4250 if((tmp = this.copy_node(obj[t1], par, pos, callback, is_loaded, true, origin))) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4251 par = tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4252 pos = "after"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4253 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4254 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4255 this.redraw(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4256 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4257 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4258 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4259 obj = obj && obj.id ? obj : this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4260 if(!obj || obj.id === $.jstree.root) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4261 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4262 old_par = (obj.parent || $.jstree.root).toString(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4263 new_par = (!pos.toString().match(/^(before|after)$/) || par.id === $.jstree.root) ? par : this.get_node(par.parent); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4264 old_ins = origin ? origin : (this._model.data[obj.id] ? this : $.jstree.reference(obj.id)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4265 is_multi = !old_ins || !old_ins._id || (this._id !== old_ins._id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4266 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4267 if(old_ins && old_ins._id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4268 obj = old_ins._model.data[obj.id]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4269 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4270 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4271 if(par.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4272 if(pos === "before") { pos = "first"; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4273 if(pos === "after") { pos = "last"; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4274 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4275 switch(pos) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4276 case "before": |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4277 pos = $.inArray(par.id, new_par.children); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4278 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4279 case "after" : |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4280 pos = $.inArray(par.id, new_par.children) + 1; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4281 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4282 case "inside": |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4283 case "first": |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4284 pos = 0; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4285 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4286 case "last": |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4287 pos = new_par.children.length; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4288 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4289 default: |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4290 if(!pos) { pos = 0; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4291 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4292 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4293 if(pos > new_par.children.length) { pos = new_par.children.length; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4294 if(!this.check("copy_node", obj, new_par, pos, { 'core' : true, 'origin' : origin, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id) })) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4295 this.settings.core.error.call(this, this._data.core.last_error); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4296 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4297 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4298 node = old_ins ? old_ins.get_json(obj, { no_id : true, no_data : true, no_state : true }) : obj; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4299 if(!node) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4300 if(node.id === true) { delete node.id; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4301 node = this._parse_model_from_json(node, new_par.id, new_par.parents.concat()); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4302 if(!node) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4303 tmp = this.get_node(node); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4304 if(obj && obj.state && obj.state.loaded === false) { tmp.state.loaded = false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4305 dpc = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4306 dpc.push(node); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4307 dpc = dpc.concat(tmp.children_d); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4308 this.trigger('model', { "nodes" : dpc, "parent" : new_par.id }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4309 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4310 // insert into new parent and up |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4311 for(i = 0, j = new_par.parents.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4312 this._model.data[new_par.parents[i]].children_d = this._model.data[new_par.parents[i]].children_d.concat(dpc); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4313 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4314 dpc = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4315 for(i = 0, j = new_par.children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4316 dpc[i >= pos ? i+1 : i] = new_par.children[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4317 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4318 dpc[pos] = tmp.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4319 new_par.children = dpc; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4320 new_par.children_d.push(tmp.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4321 new_par.children_d = new_par.children_d.concat(tmp.children_d); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4322 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4323 if(new_par.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4324 this._model.force_full_redraw = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4325 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4326 if(!this._model.force_full_redraw) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4327 this._node_changed(new_par.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4328 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4329 if(!skip_redraw) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4330 this.redraw(new_par.id === $.jstree.root); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4331 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4332 if(callback) { callback.call(this, tmp, new_par, pos); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4333 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4334 * triggered when a node is copied |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4335 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4336 * @name copy_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4337 * @param {Object} node the copied node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4338 * @param {Object} original the original node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4339 * @param {String} parent the parent's ID |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4340 * @param {Number} position the position of the node among the parent's children |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4341 * @param {String} old_parent the old parent of the node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4342 * @param {Number} old_position the position of the original node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4343 * @param {Boolean} is_multi do the node and new parent belong to different instances |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4344 * @param {jsTree} old_instance the instance the node came from |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4345 * @param {jsTree} new_instance the instance of the new parent |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4346 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4347 this.trigger('copy_node', { "node" : tmp, "original" : obj, "parent" : new_par.id, "position" : pos, "old_parent" : old_par, "old_position" : old_ins && old_ins._id && old_par && old_ins._model.data[old_par] && old_ins._model.data[old_par].children ? $.inArray(obj.id, old_ins._model.data[old_par].children) : -1,'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id), 'old_instance' : old_ins, 'new_instance' : this }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4348 return tmp.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4349 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4350 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4351 * cut a node (a later call to `paste(obj)` would move the node) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4352 * @name cut(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4353 * @param {mixed} obj multiple objects can be passed using an array |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4354 * @trigger cut.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4355 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4356 cut : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4357 if(!obj) { obj = this._data.core.selected.concat(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4358 if(!$.isArray(obj)) { obj = [obj]; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4359 if(!obj.length) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4360 var tmp = [], o, t1, t2; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4361 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4362 o = this.get_node(obj[t1]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4363 if(o && o.id && o.id !== $.jstree.root) { tmp.push(o); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4364 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4365 if(!tmp.length) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4366 ccp_node = tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4367 ccp_inst = this; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4368 ccp_mode = 'move_node'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4369 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4370 * triggered when nodes are added to the buffer for moving |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4371 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4372 * @name cut.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4373 * @param {Array} node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4374 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4375 this.trigger('cut', { "node" : obj }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4376 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4377 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4378 * copy a node (a later call to `paste(obj)` would copy the node) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4379 * @name copy(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4380 * @param {mixed} obj multiple objects can be passed using an array |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4381 * @trigger copy.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4382 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4383 copy : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4384 if(!obj) { obj = this._data.core.selected.concat(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4385 if(!$.isArray(obj)) { obj = [obj]; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4386 if(!obj.length) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4387 var tmp = [], o, t1, t2; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4388 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4389 o = this.get_node(obj[t1]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4390 if(o && o.id && o.id !== $.jstree.root) { tmp.push(o); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4391 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4392 if(!tmp.length) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4393 ccp_node = tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4394 ccp_inst = this; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4395 ccp_mode = 'copy_node'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4396 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4397 * triggered when nodes are added to the buffer for copying |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4398 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4399 * @name copy.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4400 * @param {Array} node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4401 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4402 this.trigger('copy', { "node" : obj }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4403 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4404 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4405 * get the current buffer (any nodes that are waiting for a paste operation) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4406 * @name get_buffer() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4407 * @return {Object} an object consisting of `mode` ("copy_node" or "move_node"), `node` (an array of objects) and `inst` (the instance) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4408 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4409 get_buffer : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4410 return { 'mode' : ccp_mode, 'node' : ccp_node, 'inst' : ccp_inst }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4411 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4412 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4413 * check if there is something in the buffer to paste |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4414 * @name can_paste() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4415 * @return {Boolean} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4416 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4417 can_paste : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4418 return ccp_mode !== false && ccp_node !== false; // && ccp_inst._model.data[ccp_node]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4419 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4420 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4421 * copy or move the previously cut or copied nodes to a new parent |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4422 * @name paste(obj [, pos]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4423 * @param {mixed} obj the new parent |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4424 * @param {mixed} pos the position to insert at (besides integer, "first" and "last" are supported), defaults to integer `0` |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4425 * @trigger paste.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4426 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4427 paste : function (obj, pos) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4428 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4429 if(!obj || !ccp_mode || !ccp_mode.match(/^(copy_node|move_node)$/) || !ccp_node) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4430 if(this[ccp_mode](ccp_node, obj, pos, false, false, false, ccp_inst)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4431 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4432 * triggered when paste is invoked |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4433 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4434 * @name paste.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4435 * @param {String} parent the ID of the receiving node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4436 * @param {Array} node the nodes in the buffer |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4437 * @param {String} mode the performed operation - "copy_node" or "move_node" |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4438 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4439 this.trigger('paste', { "parent" : obj.id, "node" : ccp_node, "mode" : ccp_mode }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4440 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4441 ccp_node = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4442 ccp_mode = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4443 ccp_inst = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4444 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4445 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4446 * clear the buffer of previously copied or cut nodes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4447 * @name clear_buffer() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4448 * @trigger clear_buffer.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4449 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4450 clear_buffer : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4451 ccp_node = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4452 ccp_mode = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4453 ccp_inst = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4454 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4455 * triggered when the copy / cut buffer is cleared |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4456 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4457 * @name clear_buffer.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4458 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4459 this.trigger('clear_buffer'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4460 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4461 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4462 * put a node in edit mode (input field to rename the node) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4463 * @name edit(obj [, default_text, callback]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4464 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4465 * @param {String} default_text the text to populate the input with (if omitted or set to a non-string value the node's text value is used) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4466 * @param {Function} callback a function to be called once the text box is blurred, it is called in the instance's scope and receives the node, a status parameter (true if the rename is successful, false otherwise) and a boolean indicating if the user cancelled the edit. You can access the node's title using .text |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4467 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4468 edit : function (obj, default_text, callback) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4469 var rtl, w, a, s, t, h1, h2, fn, tmp, cancel = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4470 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4471 if(!obj) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4472 if(!this.check("edit", obj, this.get_parent(obj))) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4473 this.settings.core.error.call(this, this._data.core.last_error); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4474 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4475 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4476 tmp = obj; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4477 default_text = typeof default_text === 'string' ? default_text : obj.text; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4478 this.set_text(obj, ""); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4479 obj = this._open_to(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4480 tmp.text = default_text; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4481 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4482 rtl = this._data.core.rtl; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4483 w = this.element.width(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4484 this._data.core.focused = tmp.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4485 a = obj.children('.jstree-anchor').focus(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4486 s = $('<span>'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4487 /*! |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4488 oi = obj.children("i:visible"), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4489 ai = a.children("i:visible"), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4490 w1 = oi.width() * oi.length, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4491 w2 = ai.width() * ai.length, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4492 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4493 t = default_text; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4494 h1 = $("<"+"div />", { css : { "position" : "absolute", "top" : "-200px", "left" : (rtl ? "0px" : "-1000px"), "visibility" : "hidden" } }).appendTo("body"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4495 h2 = $("<"+"input />", { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4496 "value" : t, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4497 "class" : "jstree-rename-input", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4498 // "size" : t.length, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4499 "css" : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4500 "padding" : "0", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4501 "border" : "1px solid silver", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4502 "box-sizing" : "border-box", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4503 "display" : "inline-block", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4504 "height" : (this._data.core.li_height) + "px", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4505 "lineHeight" : (this._data.core.li_height) + "px", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4506 "width" : "150px" // will be set a bit further down |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4507 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4508 "blur" : $.proxy(function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4509 e.stopImmediatePropagation(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4510 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4511 var i = s.children(".jstree-rename-input"), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4512 v = i.val(), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4513 f = this.settings.core.force_text, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4514 nv; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4515 if(v === "") { v = t; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4516 h1.remove(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4517 s.replaceWith(a); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4518 s.remove(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4519 t = f ? t : $('<div></div>').append($.parseHTML(t)).html(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4520 this.set_text(obj, t); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4521 nv = !!this.rename_node(obj, f ? $('<div></div>').text(v).text() : $('<div></div>').append($.parseHTML(v)).html()); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4522 if(!nv) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4523 this.set_text(obj, t); // move this up? and fix #483 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4524 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4525 this._data.core.focused = tmp.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4526 setTimeout($.proxy(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4527 var node = this.get_node(tmp.id, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4528 if(node.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4529 this._data.core.focused = tmp.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4530 node.children('.jstree-anchor').focus(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4531 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4532 }, this), 0); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4533 if(callback) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4534 callback.call(this, tmp, nv, cancel); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4535 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4536 h2 = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4537 }, this), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4538 "keydown" : function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4539 var key = e.which; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4540 if(key === 27) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4541 cancel = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4542 this.value = t; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4543 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4544 if(key === 27 || key === 13 || key === 37 || key === 38 || key === 39 || key === 40 || key === 32) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4545 e.stopImmediatePropagation(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4546 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4547 if(key === 27 || key === 13) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4548 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4549 this.blur(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4550 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4551 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4552 "click" : function (e) { e.stopImmediatePropagation(); }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4553 "mousedown" : function (e) { e.stopImmediatePropagation(); }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4554 "keyup" : function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4555 h2.width(Math.min(h1.text("pW" + this.value).width(),w)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4556 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4557 "keypress" : function(e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4558 if(e.which === 13) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4559 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4560 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4561 fn = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4562 fontFamily : a.css('fontFamily') || '', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4563 fontSize : a.css('fontSize') || '', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4564 fontWeight : a.css('fontWeight') || '', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4565 fontStyle : a.css('fontStyle') || '', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4566 fontStretch : a.css('fontStretch') || '', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4567 fontVariant : a.css('fontVariant') || '', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4568 letterSpacing : a.css('letterSpacing') || '', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4569 wordSpacing : a.css('wordSpacing') || '' |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4570 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4571 s.attr('class', a.attr('class')).append(a.contents().clone()).append(h2); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4572 a.replaceWith(s); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4573 h1.css(fn); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4574 h2.css(fn).width(Math.min(h1.text("pW" + h2[0].value).width(),w))[0].select(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4575 $(document).one('mousedown.jstree touchstart.jstree dnd_start.vakata', function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4576 if (h2 && e.target !== h2) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4577 $(h2).blur(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4578 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4579 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4580 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4581 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4582 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4583 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4584 * changes the theme |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4585 * @name set_theme(theme_name [, theme_url]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4586 * @param {String} theme_name the name of the new theme to apply |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4587 * @param {mixed} theme_url the location of the CSS file for this theme. Omit or set to `false` if you manually included the file. Set to `true` to autoload from the `core.themes.dir` directory. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4588 * @trigger set_theme.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4589 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4590 set_theme : function (theme_name, theme_url) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4591 if(!theme_name) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4592 if(theme_url === true) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4593 var dir = this.settings.core.themes.dir; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4594 if(!dir) { dir = $.jstree.path + '/themes'; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4595 theme_url = dir + '/' + theme_name + '/style.css'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4596 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4597 if(theme_url && $.inArray(theme_url, themes_loaded) === -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4598 $('head').append('<'+'link rel="stylesheet" href="' + theme_url + '" type="text/css" />'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4599 themes_loaded.push(theme_url); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4600 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4601 if(this._data.core.themes.name) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4602 this.element.removeClass('jstree-' + this._data.core.themes.name); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4603 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4604 this._data.core.themes.name = theme_name; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4605 this.element.addClass('jstree-' + theme_name); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4606 this.element[this.settings.core.themes.responsive ? 'addClass' : 'removeClass' ]('jstree-' + theme_name + '-responsive'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4607 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4608 * triggered when a theme is set |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4609 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4610 * @name set_theme.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4611 * @param {String} theme the new theme |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4612 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4613 this.trigger('set_theme', { 'theme' : theme_name }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4614 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4615 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4616 * gets the name of the currently applied theme name |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4617 * @name get_theme() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4618 * @return {String} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4619 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4620 get_theme : function () { return this._data.core.themes.name; }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4621 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4622 * changes the theme variant (if the theme has variants) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4623 * @name set_theme_variant(variant_name) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4624 * @param {String|Boolean} variant_name the variant to apply (if `false` is used the current variant is removed) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4625 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4626 set_theme_variant : function (variant_name) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4627 if(this._data.core.themes.variant) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4628 this.element.removeClass('jstree-' + this._data.core.themes.name + '-' + this._data.core.themes.variant); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4629 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4630 this._data.core.themes.variant = variant_name; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4631 if(variant_name) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4632 this.element.addClass('jstree-' + this._data.core.themes.name + '-' + this._data.core.themes.variant); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4633 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4634 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4635 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4636 * gets the name of the currently applied theme variant |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4637 * @name get_theme() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4638 * @return {String} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4639 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4640 get_theme_variant : function () { return this._data.core.themes.variant; }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4641 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4642 * shows a striped background on the container (if the theme supports it) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4643 * @name show_stripes() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4644 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4645 show_stripes : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4646 this._data.core.themes.stripes = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4647 this.get_container_ul().addClass("jstree-striped"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4648 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4649 * triggered when stripes are shown |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4650 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4651 * @name show_stripes.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4652 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4653 this.trigger('show_stripes'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4654 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4655 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4656 * hides the striped background on the container |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4657 * @name hide_stripes() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4658 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4659 hide_stripes : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4660 this._data.core.themes.stripes = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4661 this.get_container_ul().removeClass("jstree-striped"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4662 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4663 * triggered when stripes are hidden |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4664 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4665 * @name hide_stripes.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4666 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4667 this.trigger('hide_stripes'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4668 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4669 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4670 * toggles the striped background on the container |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4671 * @name toggle_stripes() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4672 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4673 toggle_stripes : function () { if(this._data.core.themes.stripes) { this.hide_stripes(); } else { this.show_stripes(); } }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4674 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4675 * shows the connecting dots (if the theme supports it) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4676 * @name show_dots() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4677 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4678 show_dots : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4679 this._data.core.themes.dots = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4680 this.get_container_ul().removeClass("jstree-no-dots"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4681 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4682 * triggered when dots are shown |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4683 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4684 * @name show_dots.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4685 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4686 this.trigger('show_dots'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4687 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4688 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4689 * hides the connecting dots |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4690 * @name hide_dots() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4691 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4692 hide_dots : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4693 this._data.core.themes.dots = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4694 this.get_container_ul().addClass("jstree-no-dots"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4695 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4696 * triggered when dots are hidden |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4697 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4698 * @name hide_dots.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4699 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4700 this.trigger('hide_dots'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4701 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4702 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4703 * toggles the connecting dots |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4704 * @name toggle_dots() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4705 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4706 toggle_dots : function () { if(this._data.core.themes.dots) { this.hide_dots(); } else { this.show_dots(); } }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4707 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4708 * show the node icons |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4709 * @name show_icons() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4710 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4711 show_icons : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4712 this._data.core.themes.icons = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4713 this.get_container_ul().removeClass("jstree-no-icons"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4714 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4715 * triggered when icons are shown |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4716 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4717 * @name show_icons.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4718 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4719 this.trigger('show_icons'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4720 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4721 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4722 * hide the node icons |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4723 * @name hide_icons() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4724 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4725 hide_icons : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4726 this._data.core.themes.icons = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4727 this.get_container_ul().addClass("jstree-no-icons"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4728 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4729 * triggered when icons are hidden |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4730 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4731 * @name hide_icons.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4732 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4733 this.trigger('hide_icons'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4734 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4735 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4736 * toggle the node icons |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4737 * @name toggle_icons() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4738 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4739 toggle_icons : function () { if(this._data.core.themes.icons) { this.hide_icons(); } else { this.show_icons(); } }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4740 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4741 * show the node ellipsis |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4742 * @name show_icons() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4743 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4744 show_ellipsis : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4745 this._data.core.themes.ellipsis = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4746 this.get_container_ul().addClass("jstree-ellipsis"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4747 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4748 * triggered when ellisis is shown |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4749 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4750 * @name show_ellipsis.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4751 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4752 this.trigger('show_ellipsis'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4753 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4754 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4755 * hide the node ellipsis |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4756 * @name hide_ellipsis() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4757 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4758 hide_ellipsis : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4759 this._data.core.themes.ellipsis = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4760 this.get_container_ul().removeClass("jstree-ellipsis"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4761 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4762 * triggered when ellisis is hidden |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4763 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4764 * @name hide_ellipsis.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4765 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4766 this.trigger('hide_ellipsis'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4767 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4768 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4769 * toggle the node ellipsis |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4770 * @name toggle_icons() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4771 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4772 toggle_ellipsis : function () { if(this._data.core.themes.ellipsis) { this.hide_ellipsis(); } else { this.show_ellipsis(); } }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4773 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4774 * set the node icon for a node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4775 * @name set_icon(obj, icon) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4776 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4777 * @param {String} icon the new icon - can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4778 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4779 set_icon : function (obj, icon) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4780 var t1, t2, dom, old; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4781 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4782 obj = obj.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4783 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4784 this.set_icon(obj[t1], icon); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4785 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4786 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4787 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4788 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4789 if(!obj || obj.id === $.jstree.root) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4790 old = obj.icon; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4791 obj.icon = icon === true || icon === null || icon === undefined || icon === '' ? true : icon; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4792 dom = this.get_node(obj, true).children(".jstree-anchor").children(".jstree-themeicon"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4793 if(icon === false) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4794 dom.removeClass('jstree-themeicon-custom ' + old).css("background","").removeAttr("rel"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4795 this.hide_icon(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4796 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4797 else if(icon === true || icon === null || icon === undefined || icon === '') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4798 dom.removeClass('jstree-themeicon-custom ' + old).css("background","").removeAttr("rel"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4799 if(old === false) { this.show_icon(obj); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4800 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4801 else if(icon.indexOf("/") === -1 && icon.indexOf(".") === -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4802 dom.removeClass(old).css("background",""); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4803 dom.addClass(icon + ' jstree-themeicon-custom').attr("rel",icon); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4804 if(old === false) { this.show_icon(obj); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4805 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4806 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4807 dom.removeClass(old).css("background",""); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4808 dom.addClass('jstree-themeicon-custom').css("background", "url('" + icon + "') center center no-repeat").attr("rel",icon); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4809 if(old === false) { this.show_icon(obj); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4810 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4811 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4812 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4813 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4814 * get the node icon for a node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4815 * @name get_icon(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4816 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4817 * @return {String} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4818 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4819 get_icon : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4820 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4821 return (!obj || obj.id === $.jstree.root) ? false : obj.icon; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4822 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4823 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4824 * hide the icon on an individual node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4825 * @name hide_icon(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4826 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4827 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4828 hide_icon : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4829 var t1, t2; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4830 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4831 obj = obj.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4832 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4833 this.hide_icon(obj[t1]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4834 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4835 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4836 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4837 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4838 if(!obj || obj === $.jstree.root) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4839 obj.icon = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4840 this.get_node(obj, true).children(".jstree-anchor").children(".jstree-themeicon").addClass('jstree-themeicon-hidden'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4841 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4842 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4843 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4844 * show the icon on an individual node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4845 * @name show_icon(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4846 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4847 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4848 show_icon : function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4849 var t1, t2, dom; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4850 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4851 obj = obj.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4852 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4853 this.show_icon(obj[t1]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4854 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4855 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4856 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4857 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4858 if(!obj || obj === $.jstree.root) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4859 dom = this.get_node(obj, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4860 obj.icon = dom.length ? dom.children(".jstree-anchor").children(".jstree-themeicon").attr('rel') : true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4861 if(!obj.icon) { obj.icon = true; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4862 dom.children(".jstree-anchor").children(".jstree-themeicon").removeClass('jstree-themeicon-hidden'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4863 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4864 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4865 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4866 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4867 // helpers |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4868 $.vakata = {}; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4869 // collect attributes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4870 $.vakata.attributes = function(node, with_values) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4871 node = $(node)[0]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4872 var attr = with_values ? {} : []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4873 if(node && node.attributes) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4874 $.each(node.attributes, function (i, v) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4875 if($.inArray(v.name.toLowerCase(),['style','contenteditable','hasfocus','tabindex']) !== -1) { return; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4876 if(v.value !== null && $.trim(v.value) !== '') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4877 if(with_values) { attr[v.name] = v.value; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4878 else { attr.push(v.name); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4879 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4880 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4881 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4882 return attr; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4883 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4884 $.vakata.array_unique = function(array) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4885 var a = [], i, j, l, o = {}; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4886 for(i = 0, l = array.length; i < l; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4887 if(o[array[i]] === undefined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4888 a.push(array[i]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4889 o[array[i]] = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4890 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4891 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4892 return a; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4893 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4894 // remove item from array |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4895 $.vakata.array_remove = function(array, from) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4896 array.splice(from, 1); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4897 return array; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4898 //var rest = array.slice((to || from) + 1 || array.length); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4899 //array.length = from < 0 ? array.length + from : from; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4900 //array.push.apply(array, rest); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4901 //return array; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4902 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4903 // remove item from array |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4904 $.vakata.array_remove_item = function(array, item) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4905 var tmp = $.inArray(item, array); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4906 return tmp !== -1 ? $.vakata.array_remove(array, tmp) : array; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4907 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4908 $.vakata.array_filter = function(c,a,b,d,e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4909 if (c.filter) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4910 return c.filter(a, b); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4911 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4912 d=[]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4913 for (e in c) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4914 if (~~e+''===e+'' && e>=0 && a.call(b,c[e],+e,c)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4915 d.push(c[e]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4916 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4917 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4918 return d; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4919 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4920 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4921 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4922 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4923 * ### Changed plugin |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4924 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4925 * 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. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4926 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4927 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4928 $.jstree.plugins.changed = function (options, parent) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4929 var last = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4930 this.trigger = function (ev, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4931 var i, j; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4932 if(!data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4933 data = {}; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4934 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4935 if(ev.replace('.jstree','') === 'changed') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4936 data.changed = { selected : [], deselected : [] }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4937 var tmp = {}; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4938 for(i = 0, j = last.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4939 tmp[last[i]] = 1; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4940 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4941 for(i = 0, j = data.selected.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4942 if(!tmp[data.selected[i]]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4943 data.changed.selected.push(data.selected[i]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4944 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4945 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4946 tmp[data.selected[i]] = 2; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4947 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4948 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4949 for(i = 0, j = last.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4950 if(tmp[last[i]] === 1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4951 data.changed.deselected.push(last[i]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4952 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4953 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4954 last = data.selected.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4955 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4956 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4957 * triggered when selection changes (the "changed" plugin enhances the original event with more data) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4958 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4959 * @name changed.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4960 * @param {Object} node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4961 * @param {Object} action the action that caused the selection to change |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4962 * @param {Array} selected the current selection |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4963 * @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 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4964 * @param {Object} event the event (if any) that triggered this changed event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4965 * @plugin changed |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4966 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4967 parent.trigger.call(this, ev, data); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4968 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4969 this.refresh = function (skip_loading, forget_state) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4970 last = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4971 return parent.refresh.apply(this, arguments); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4972 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4973 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4974 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4975 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4976 * ### Checkbox plugin |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4977 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4978 * This plugin renders checkbox icons in front of each node, making multiple selection much easier. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4979 * It also supports tri-state behavior, meaning that if a node has a few of its children checked it will be rendered as undetermined, and state will be propagated up. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4980 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4981 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4982 var _i = document.createElement('I'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4983 _i.className = 'jstree-icon jstree-checkbox'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4984 _i.setAttribute('role', 'presentation'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4985 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4986 * stores all defaults for the checkbox plugin |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4987 * @name $.jstree.defaults.checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4988 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4989 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4990 $.jstree.defaults.checkbox = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4991 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4992 * a boolean indicating if checkboxes should be visible (can be changed at a later time using `show_checkboxes()` and `hide_checkboxes`). Defaults to `true`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4993 * @name $.jstree.defaults.checkbox.visible |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4994 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4995 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4996 visible : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4997 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4998 * a boolean indicating if checkboxes should cascade down and have an undetermined state. Defaults to `true`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
4999 * @name $.jstree.defaults.checkbox.three_state |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5000 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5001 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5002 three_state : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5003 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5004 * a boolean indicating if clicking anywhere on the node should act as clicking on the checkbox. Defaults to `true`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5005 * @name $.jstree.defaults.checkbox.whole_node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5006 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5007 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5008 whole_node : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5009 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5010 * a boolean indicating if the selected style of a node should be kept, or removed. Defaults to `true`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5011 * @name $.jstree.defaults.checkbox.keep_selected_style |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5012 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5013 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5014 keep_selected_style : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5015 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5016 * This setting controls how cascading and undetermined nodes are applied. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5017 * If 'up' is in the string - cascading up is enabled, if 'down' is in the string - cascading down is enabled, if 'undetermined' is in the string - undetermined nodes will be used. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5018 * If `three_state` is set to `true` this setting is automatically set to 'up+down+undetermined'. Defaults to ''. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5019 * @name $.jstree.defaults.checkbox.cascade |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5020 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5021 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5022 cascade : '', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5023 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5024 * This setting controls if checkbox are bound to the general tree selection or to an internal array maintained by the checkbox plugin. Defaults to `true`, only set to `false` if you know exactly what you are doing. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5025 * @name $.jstree.defaults.checkbox.tie_selection |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5026 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5027 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5028 tie_selection : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5029 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5030 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5031 * This setting controls if cascading down affects disabled checkboxes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5032 * @name $.jstree.defaults.checkbox.cascade_to_disabled |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5033 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5034 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5035 cascade_to_disabled : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5036 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5037 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5038 * This setting controls if cascading down affects hidden checkboxes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5039 * @name $.jstree.defaults.checkbox.cascade_to_hidden |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5040 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5041 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5042 cascade_to_hidden : true |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5043 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5044 $.jstree.plugins.checkbox = function (options, parent) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5045 this.bind = function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5046 parent.bind.call(this); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5047 this._data.checkbox.uto = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5048 this._data.checkbox.selected = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5049 if(this.settings.checkbox.three_state) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5050 this.settings.checkbox.cascade = 'up+down+undetermined'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5051 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5052 this.element |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5053 .on("init.jstree", $.proxy(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5054 this._data.checkbox.visible = this.settings.checkbox.visible; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5055 if(!this.settings.checkbox.keep_selected_style) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5056 this.element.addClass('jstree-checkbox-no-clicked'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5057 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5058 if(this.settings.checkbox.tie_selection) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5059 this.element.addClass('jstree-checkbox-selection'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5060 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5061 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5062 .on("loading.jstree", $.proxy(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5063 this[ this._data.checkbox.visible ? 'show_checkboxes' : 'hide_checkboxes' ](); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5064 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5065 if(this.settings.checkbox.cascade.indexOf('undetermined') !== -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5066 this.element |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5067 .on('changed.jstree uncheck_node.jstree check_node.jstree uncheck_all.jstree check_all.jstree move_node.jstree copy_node.jstree redraw.jstree open_node.jstree', $.proxy(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5068 // only if undetermined is in setting |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5069 if(this._data.checkbox.uto) { clearTimeout(this._data.checkbox.uto); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5070 this._data.checkbox.uto = setTimeout($.proxy(this._undetermined, this), 50); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5071 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5072 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5073 if(!this.settings.checkbox.tie_selection) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5074 this.element |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5075 .on('model.jstree', $.proxy(function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5076 var m = this._model.data, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5077 p = m[data.parent], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5078 dpc = data.nodes, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5079 i, j; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5080 for(i = 0, j = dpc.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5081 m[dpc[i]].state.checked = m[dpc[i]].state.checked || (m[dpc[i]].original && m[dpc[i]].original.state && m[dpc[i]].original.state.checked); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5082 if(m[dpc[i]].state.checked) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5083 this._data.checkbox.selected.push(dpc[i]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5084 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5085 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5086 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5087 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5088 if(this.settings.checkbox.cascade.indexOf('up') !== -1 || this.settings.checkbox.cascade.indexOf('down') !== -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5089 this.element |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5090 .on('model.jstree', $.proxy(function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5091 var m = this._model.data, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5092 p = m[data.parent], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5093 dpc = data.nodes, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5094 chd = [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5095 c, i, j, k, l, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5096 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5097 if(s.indexOf('down') !== -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5098 // apply down |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5099 if(p.state[ t ? 'selected' : 'checked' ]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5100 for(i = 0, j = dpc.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5101 m[dpc[i]].state[ t ? 'selected' : 'checked' ] = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5102 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5103 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5104 this._data[ t ? 'core' : 'checkbox' ].selected = this._data[ t ? 'core' : 'checkbox' ].selected.concat(dpc); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5105 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5106 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5107 for(i = 0, j = dpc.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5108 if(m[dpc[i]].state[ t ? 'selected' : 'checked' ]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5109 for(k = 0, l = m[dpc[i]].children_d.length; k < l; k++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5110 m[m[dpc[i]].children_d[k]].state[ t ? 'selected' : 'checked' ] = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5111 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5112 this._data[ t ? 'core' : 'checkbox' ].selected = this._data[ t ? 'core' : 'checkbox' ].selected.concat(m[dpc[i]].children_d); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5113 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5114 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5115 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5116 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5117 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5118 if(s.indexOf('up') !== -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5119 // apply up |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5120 for(i = 0, j = p.children_d.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5121 if(!m[p.children_d[i]].children.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5122 chd.push(m[p.children_d[i]].parent); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5123 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5124 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5125 chd = $.vakata.array_unique(chd); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5126 for(k = 0, l = chd.length; k < l; k++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5127 p = m[chd[k]]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5128 while(p && p.id !== $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5129 c = 0; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5130 for(i = 0, j = p.children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5131 c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5132 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5133 if(c === j) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5134 p.state[ t ? 'selected' : 'checked' ] = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5135 this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5136 tmp = this.get_node(p, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5137 if(tmp && tmp.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5138 tmp.attr('aria-selected', true).children('.jstree-anchor').addClass( t ? 'jstree-clicked' : 'jstree-checked'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5139 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5140 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5141 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5142 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5143 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5144 p = this.get_node(p.parent); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5145 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5146 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5147 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5148 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5149 this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_unique(this._data[ t ? 'core' : 'checkbox' ].selected); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5150 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5151 .on(this.settings.checkbox.tie_selection ? 'select_node.jstree' : 'check_node.jstree', $.proxy(function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5152 var self = this, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5153 obj = data.node, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5154 m = this._model.data, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5155 par = this.get_node(obj.parent), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5156 i, j, c, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5157 sel = {}, cur = this._data[ t ? 'core' : 'checkbox' ].selected; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5158 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5159 for (i = 0, j = cur.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5160 sel[cur[i]] = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5161 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5162 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5163 // apply down |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5164 if(s.indexOf('down') !== -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5165 //this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_unique(this._data[ t ? 'core' : 'checkbox' ].selected.concat(obj.children_d)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5166 var selectedIds = this._cascade_new_checked_state(obj.id, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5167 var temp = obj.children_d.concat(obj.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5168 for (i = 0, j = temp.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5169 if (selectedIds.indexOf(temp[i]) > -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5170 sel[temp[i]] = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5171 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5172 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5173 delete sel[temp[i]]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5174 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5175 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5176 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5177 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5178 // apply up |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5179 if(s.indexOf('up') !== -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5180 while(par && par.id !== $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5181 c = 0; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5182 for(i = 0, j = par.children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5183 c += m[par.children[i]].state[ t ? 'selected' : 'checked' ]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5184 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5185 if(c === j) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5186 par.state[ t ? 'selected' : 'checked' ] = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5187 sel[par.id] = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5188 //this._data[ t ? 'core' : 'checkbox' ].selected.push(par.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5189 tmp = this.get_node(par, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5190 if(tmp && tmp.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5191 tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5192 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5193 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5194 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5195 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5196 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5197 par = this.get_node(par.parent); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5198 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5199 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5200 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5201 cur = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5202 for (i in sel) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5203 if (sel.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5204 cur.push(i); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5205 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5206 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5207 this._data[ t ? 'core' : 'checkbox' ].selected = cur; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5208 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5209 .on(this.settings.checkbox.tie_selection ? 'deselect_all.jstree' : 'uncheck_all.jstree', $.proxy(function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5210 var obj = this.get_node($.jstree.root), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5211 m = this._model.data, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5212 i, j, tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5213 for(i = 0, j = obj.children_d.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5214 tmp = m[obj.children_d[i]]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5215 if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5216 tmp.original.state.undetermined = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5217 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5218 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5219 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5220 .on(this.settings.checkbox.tie_selection ? 'deselect_node.jstree' : 'uncheck_node.jstree', $.proxy(function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5221 var self = this, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5222 obj = data.node, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5223 dom = this.get_node(obj, true), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5224 i, j, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5225 cur = this._data[ t ? 'core' : 'checkbox' ].selected, sel = {}, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5226 stillSelectedIds = [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5227 allIds = obj.children_d.concat(obj.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5228 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5229 // apply down |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5230 if(s.indexOf('down') !== -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5231 var selectedIds = this._cascade_new_checked_state(obj.id, false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5232 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5233 cur = cur.filter(function(id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5234 return allIds.indexOf(id) === -1 || selectedIds.indexOf(id) > -1; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5235 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5236 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5237 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5238 // only apply up if cascade up is enabled and if this node is not selected |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5239 // (if all child nodes are disabled and cascade_to_disabled === false then this node will till be selected). |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5240 if(s.indexOf('up') !== -1 && cur.indexOf(obj.id) === -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5241 for(i = 0, j = obj.parents.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5242 tmp = this._model.data[obj.parents[i]]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5243 tmp.state[ t ? 'selected' : 'checked' ] = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5244 if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5245 tmp.original.state.undetermined = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5246 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5247 tmp = this.get_node(obj.parents[i], true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5248 if(tmp && tmp.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5249 tmp.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5250 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5251 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5252 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5253 cur = cur.filter(function(id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5254 return obj.parents.indexOf(id) === -1; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5255 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5256 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5257 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5258 this._data[ t ? 'core' : 'checkbox' ].selected = cur; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5259 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5260 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5261 if(this.settings.checkbox.cascade.indexOf('up') !== -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5262 this.element |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5263 .on('delete_node.jstree', $.proxy(function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5264 // apply up (whole handler) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5265 var p = this.get_node(data.parent), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5266 m = this._model.data, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5267 i, j, c, tmp, t = this.settings.checkbox.tie_selection; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5268 while(p && p.id !== $.jstree.root && !p.state[ t ? 'selected' : 'checked' ]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5269 c = 0; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5270 for(i = 0, j = p.children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5271 c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5272 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5273 if(j > 0 && c === j) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5274 p.state[ t ? 'selected' : 'checked' ] = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5275 this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5276 tmp = this.get_node(p, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5277 if(tmp && tmp.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5278 tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5279 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5280 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5281 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5282 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5283 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5284 p = this.get_node(p.parent); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5285 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5286 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5287 .on('move_node.jstree', $.proxy(function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5288 // apply up (whole handler) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5289 var is_multi = data.is_multi, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5290 old_par = data.old_parent, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5291 new_par = this.get_node(data.parent), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5292 m = this._model.data, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5293 p, c, i, j, tmp, t = this.settings.checkbox.tie_selection; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5294 if(!is_multi) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5295 p = this.get_node(old_par); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5296 while(p && p.id !== $.jstree.root && !p.state[ t ? 'selected' : 'checked' ]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5297 c = 0; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5298 for(i = 0, j = p.children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5299 c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5300 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5301 if(j > 0 && c === j) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5302 p.state[ t ? 'selected' : 'checked' ] = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5303 this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5304 tmp = this.get_node(p, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5305 if(tmp && tmp.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5306 tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5307 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5308 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5309 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5310 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5311 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5312 p = this.get_node(p.parent); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5313 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5314 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5315 p = new_par; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5316 while(p && p.id !== $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5317 c = 0; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5318 for(i = 0, j = p.children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5319 c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5320 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5321 if(c === j) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5322 if(!p.state[ t ? 'selected' : 'checked' ]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5323 p.state[ t ? 'selected' : 'checked' ] = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5324 this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5325 tmp = this.get_node(p, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5326 if(tmp && tmp.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5327 tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5328 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5329 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5330 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5331 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5332 if(p.state[ t ? 'selected' : 'checked' ]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5333 p.state[ t ? 'selected' : 'checked' ] = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5334 this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_remove_item(this._data[ t ? 'core' : 'checkbox' ].selected, p.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5335 tmp = this.get_node(p, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5336 if(tmp && tmp.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5337 tmp.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5338 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5339 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5340 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5341 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5342 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5343 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5344 p = this.get_node(p.parent); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5345 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5346 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5347 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5348 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5349 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5350 * get an array of all nodes whose state is "undetermined" |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5351 * @name get_undetermined([full]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5352 * @param {boolean} full: if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5353 * @return {Array} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5354 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5355 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5356 this.get_undetermined = function (full) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5357 if (this.settings.checkbox.cascade.indexOf('undetermined') === -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5358 return []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5359 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5360 var i, j, k, l, o = {}, m = this._model.data, t = this.settings.checkbox.tie_selection, s = this._data[ t ? 'core' : 'checkbox' ].selected, p = [], tt = this, r = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5361 for(i = 0, j = s.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5362 if(m[s[i]] && m[s[i]].parents) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5363 for(k = 0, l = m[s[i]].parents.length; k < l; k++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5364 if(o[m[s[i]].parents[k]] !== undefined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5365 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5366 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5367 if(m[s[i]].parents[k] !== $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5368 o[m[s[i]].parents[k]] = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5369 p.push(m[s[i]].parents[k]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5370 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5371 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5372 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5373 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5374 // attempt for server side undetermined state |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5375 this.element.find('.jstree-closed').not(':has(.jstree-children)') |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5376 .each(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5377 var tmp = tt.get_node(this), tmp2; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5378 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5379 if(!tmp) { return; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5380 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5381 if(!tmp.state.loaded) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5382 if(tmp.original && tmp.original.state && tmp.original.state.undetermined && tmp.original.state.undetermined === true) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5383 if(o[tmp.id] === undefined && tmp.id !== $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5384 o[tmp.id] = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5385 p.push(tmp.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5386 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5387 for(k = 0, l = tmp.parents.length; k < l; k++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5388 if(o[tmp.parents[k]] === undefined && tmp.parents[k] !== $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5389 o[tmp.parents[k]] = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5390 p.push(tmp.parents[k]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5391 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5392 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5393 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5394 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5395 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5396 for(i = 0, j = tmp.children_d.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5397 tmp2 = m[tmp.children_d[i]]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5398 if(!tmp2.state.loaded && tmp2.original && tmp2.original.state && tmp2.original.state.undetermined && tmp2.original.state.undetermined === true) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5399 if(o[tmp2.id] === undefined && tmp2.id !== $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5400 o[tmp2.id] = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5401 p.push(tmp2.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5402 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5403 for(k = 0, l = tmp2.parents.length; k < l; k++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5404 if(o[tmp2.parents[k]] === undefined && tmp2.parents[k] !== $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5405 o[tmp2.parents[k]] = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5406 p.push(tmp2.parents[k]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5407 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5408 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5409 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5410 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5411 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5412 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5413 for (i = 0, j = p.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5414 if(!m[p[i]].state[ t ? 'selected' : 'checked' ]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5415 r.push(full ? m[p[i]] : p[i]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5416 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5417 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5418 return r; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5419 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5420 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5421 * set the undetermined state where and if necessary. Used internally. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5422 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5423 * @name _undetermined() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5424 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5425 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5426 this._undetermined = function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5427 if(this.element === null) { return; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5428 var p = this.get_undetermined(false), i, j, s; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5429 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5430 this.element.find('.jstree-undetermined').removeClass('jstree-undetermined'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5431 for (i = 0, j = p.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5432 s = this.get_node(p[i], true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5433 if(s && s.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5434 s.children('.jstree-anchor').children('.jstree-checkbox').addClass('jstree-undetermined'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5435 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5436 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5437 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5438 this.redraw_node = function(obj, deep, is_callback, force_render) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5439 obj = parent.redraw_node.apply(this, arguments); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5440 if(obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5441 var i, j, tmp = null, icon = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5442 for(i = 0, j = obj.childNodes.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5443 if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5444 tmp = obj.childNodes[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5445 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5446 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5447 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5448 if(tmp) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5449 if(!this.settings.checkbox.tie_selection && this._model.data[obj.id].state.checked) { tmp.className += ' jstree-checked'; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5450 icon = _i.cloneNode(false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5451 if(this._model.data[obj.id].state.checkbox_disabled) { icon.className += ' jstree-checkbox-disabled'; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5452 tmp.insertBefore(icon, tmp.childNodes[0]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5453 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5454 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5455 if(!is_callback && this.settings.checkbox.cascade.indexOf('undetermined') !== -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5456 if(this._data.checkbox.uto) { clearTimeout(this._data.checkbox.uto); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5457 this._data.checkbox.uto = setTimeout($.proxy(this._undetermined, this), 50); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5458 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5459 return obj; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5460 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5461 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5462 * show the node checkbox icons |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5463 * @name show_checkboxes() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5464 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5465 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5466 this.show_checkboxes = function () { this._data.core.themes.checkboxes = true; this.get_container_ul().removeClass("jstree-no-checkboxes"); }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5467 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5468 * hide the node checkbox icons |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5469 * @name hide_checkboxes() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5470 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5471 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5472 this.hide_checkboxes = function () { this._data.core.themes.checkboxes = false; this.get_container_ul().addClass("jstree-no-checkboxes"); }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5473 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5474 * toggle the node icons |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5475 * @name toggle_checkboxes() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5476 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5477 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5478 this.toggle_checkboxes = function () { if(this._data.core.themes.checkboxes) { this.hide_checkboxes(); } else { this.show_checkboxes(); } }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5479 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5480 * checks if a node is in an undetermined state |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5481 * @name is_undetermined(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5482 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5483 * @return {Boolean} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5484 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5485 this.is_undetermined = function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5486 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5487 var s = this.settings.checkbox.cascade, i, j, t = this.settings.checkbox.tie_selection, d = this._data[ t ? 'core' : 'checkbox' ].selected, m = this._model.data; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5488 if(!obj || obj.state[ t ? 'selected' : 'checked' ] === true || s.indexOf('undetermined') === -1 || (s.indexOf('down') === -1 && s.indexOf('up') === -1)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5489 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5490 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5491 if(!obj.state.loaded && obj.original.state.undetermined === true) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5492 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5493 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5494 for(i = 0, j = obj.children_d.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5495 if($.inArray(obj.children_d[i], d) !== -1 || (!m[obj.children_d[i]].state.loaded && m[obj.children_d[i]].original.state.undetermined)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5496 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5497 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5498 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5499 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5500 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5501 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5502 * disable a node's checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5503 * @name disable_checkbox(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5504 * @param {mixed} obj an array can be used too |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5505 * @trigger disable_checkbox.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5506 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5507 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5508 this.disable_checkbox = function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5509 var t1, t2, dom; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5510 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5511 obj = obj.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5512 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5513 this.disable_checkbox(obj[t1]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5514 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5515 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5516 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5517 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5518 if(!obj || obj.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5519 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5520 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5521 dom = this.get_node(obj, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5522 if(!obj.state.checkbox_disabled) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5523 obj.state.checkbox_disabled = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5524 if(dom && dom.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5525 dom.children('.jstree-anchor').children('.jstree-checkbox').addClass('jstree-checkbox-disabled'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5526 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5527 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5528 * triggered when an node's checkbox is disabled |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5529 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5530 * @name disable_checkbox.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5531 * @param {Object} node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5532 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5533 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5534 this.trigger('disable_checkbox', { 'node' : obj }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5535 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5536 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5537 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5538 * enable a node's checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5539 * @name disable_checkbox(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5540 * @param {mixed} obj an array can be used too |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5541 * @trigger enable_checkbox.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5542 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5543 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5544 this.enable_checkbox = function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5545 var t1, t2, dom; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5546 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5547 obj = obj.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5548 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5549 this.enable_checkbox(obj[t1]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5550 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5551 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5552 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5553 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5554 if(!obj || obj.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5555 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5556 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5557 dom = this.get_node(obj, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5558 if(obj.state.checkbox_disabled) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5559 obj.state.checkbox_disabled = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5560 if(dom && dom.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5561 dom.children('.jstree-anchor').children('.jstree-checkbox').removeClass('jstree-checkbox-disabled'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5562 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5563 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5564 * triggered when an node's checkbox is enabled |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5565 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5566 * @name enable_checkbox.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5567 * @param {Object} node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5568 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5569 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5570 this.trigger('enable_checkbox', { 'node' : obj }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5571 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5572 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5573 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5574 this.activate_node = function (obj, e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5575 if($(e.target).hasClass('jstree-checkbox-disabled')) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5576 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5577 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5578 if(this.settings.checkbox.tie_selection && (this.settings.checkbox.whole_node || $(e.target).hasClass('jstree-checkbox'))) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5579 e.ctrlKey = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5580 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5581 if(this.settings.checkbox.tie_selection || (!this.settings.checkbox.whole_node && !$(e.target).hasClass('jstree-checkbox'))) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5582 return parent.activate_node.call(this, obj, e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5583 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5584 if(this.is_disabled(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5585 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5586 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5587 if(this.is_checked(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5588 this.uncheck_node(obj, e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5589 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5590 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5591 this.check_node(obj, e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5592 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5593 this.trigger('activate_node', { 'node' : this.get_node(obj) }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5594 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5595 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5596 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5597 * Cascades checked state to a node and all its descendants. This function does NOT affect hidden and disabled nodes (or their descendants). |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5598 * However if these unaffected nodes are already selected their ids will be included in the returned array. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5599 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5600 * @param {string} id the node ID |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5601 * @param {bool} checkedState should the nodes be checked or not |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5602 * @returns {Array} Array of all node id's (in this tree branch) that are checked. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5603 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5604 this._cascade_new_checked_state = function (id, checkedState) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5605 var self = this; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5606 var t = this.settings.checkbox.tie_selection; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5607 var node = this._model.data[id]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5608 var selectedNodeIds = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5609 var selectedChildrenIds = [], i, j, selectedChildIds; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5610 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5611 if ( |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5612 (this.settings.checkbox.cascade_to_disabled || !node.state.disabled) && |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5613 (this.settings.checkbox.cascade_to_hidden || !node.state.hidden) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5614 ) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5615 //First try and check/uncheck the children |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5616 if (node.children) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5617 for (i = 0, j = node.children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5618 var childId = node.children[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5619 selectedChildIds = self._cascade_new_checked_state(childId, checkedState); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5620 selectedNodeIds = selectedNodeIds.concat(selectedChildIds); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5621 if (selectedChildIds.indexOf(childId) > -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5622 selectedChildrenIds.push(childId); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5623 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5624 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5625 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5626 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5627 var dom = self.get_node(node, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5628 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5629 //A node's state is undetermined if some but not all of it's children are checked/selected . |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5630 var undetermined = selectedChildrenIds.length > 0 && selectedChildrenIds.length < node.children.length; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5631 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5632 if(node.original && node.original.state && node.original.state.undetermined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5633 node.original.state.undetermined = undetermined; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5634 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5635 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5636 //If a node is undetermined then remove selected class |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5637 if (undetermined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5638 node.state[ t ? 'selected' : 'checked' ] = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5639 dom.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5640 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5641 //Otherwise, if the checkedState === true (i.e. the node is being checked now) and all of the node's children are checked (if it has any children), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5642 //check the node and style it correctly. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5643 else if (checkedState && selectedChildrenIds.length === node.children.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5644 node.state[ t ? 'selected' : 'checked' ] = checkedState; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5645 selectedNodeIds.push(node.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5646 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5647 dom.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5648 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5649 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5650 node.state[ t ? 'selected' : 'checked' ] = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5651 dom.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5652 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5653 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5654 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5655 selectedChildIds = this.get_checked_descendants(id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5656 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5657 if (node.state[ t ? 'selected' : 'checked' ]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5658 selectedChildIds.push(node.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5659 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5660 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5661 selectedNodeIds = selectedNodeIds.concat(selectedChildIds); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5662 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5663 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5664 return selectedNodeIds; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5665 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5666 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5667 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5668 * Gets ids of nodes selected in branch (of tree) specified by id (does not include the node specified by id) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5669 * @name get_checked_descendants(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5670 * @param {string} id the node ID |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5671 * @return {Array} array of IDs |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5672 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5673 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5674 this.get_checked_descendants = function (id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5675 var self = this; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5676 var t = self.settings.checkbox.tie_selection; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5677 var node = self._model.data[id]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5678 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5679 return node.children_d.filter(function(_id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5680 return self._model.data[_id].state[ t ? 'selected' : 'checked' ]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5681 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5682 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5683 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5684 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5685 * check a node (only if tie_selection in checkbox settings is false, otherwise select_node will be called internally) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5686 * @name check_node(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5687 * @param {mixed} obj an array can be used to check multiple nodes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5688 * @trigger check_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5689 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5690 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5691 this.check_node = function (obj, e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5692 if(this.settings.checkbox.tie_selection) { return this.select_node(obj, false, true, e); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5693 var dom, t1, t2, th; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5694 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5695 obj = obj.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5696 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5697 this.check_node(obj[t1], e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5698 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5699 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5700 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5701 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5702 if(!obj || obj.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5703 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5704 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5705 dom = this.get_node(obj, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5706 if(!obj.state.checked) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5707 obj.state.checked = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5708 this._data.checkbox.selected.push(obj.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5709 if(dom && dom.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5710 dom.children('.jstree-anchor').addClass('jstree-checked'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5711 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5712 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5713 * triggered when an node is checked (only if tie_selection in checkbox settings is false) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5714 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5715 * @name check_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5716 * @param {Object} node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5717 * @param {Array} selected the current selection |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5718 * @param {Object} event the event (if any) that triggered this check_node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5719 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5720 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5721 this.trigger('check_node', { 'node' : obj, 'selected' : this._data.checkbox.selected, 'event' : e }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5722 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5723 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5724 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5725 * uncheck a node (only if tie_selection in checkbox settings is false, otherwise deselect_node will be called internally) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5726 * @name uncheck_node(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5727 * @param {mixed} obj an array can be used to uncheck multiple nodes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5728 * @trigger uncheck_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5729 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5730 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5731 this.uncheck_node = function (obj, e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5732 if(this.settings.checkbox.tie_selection) { return this.deselect_node(obj, false, e); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5733 var t1, t2, dom; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5734 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5735 obj = obj.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5736 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5737 this.uncheck_node(obj[t1], e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5738 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5739 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5740 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5741 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5742 if(!obj || obj.id === $.jstree.root) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5743 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5744 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5745 dom = this.get_node(obj, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5746 if(obj.state.checked) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5747 obj.state.checked = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5748 this._data.checkbox.selected = $.vakata.array_remove_item(this._data.checkbox.selected, obj.id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5749 if(dom.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5750 dom.children('.jstree-anchor').removeClass('jstree-checked'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5751 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5752 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5753 * triggered when an node is unchecked (only if tie_selection in checkbox settings is false) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5754 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5755 * @name uncheck_node.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5756 * @param {Object} node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5757 * @param {Array} selected the current selection |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5758 * @param {Object} event the event (if any) that triggered this uncheck_node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5759 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5760 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5761 this.trigger('uncheck_node', { 'node' : obj, 'selected' : this._data.checkbox.selected, 'event' : e }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5762 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5763 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5764 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5765 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5766 * checks all nodes in the tree (only if tie_selection in checkbox settings is false, otherwise select_all will be called internally) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5767 * @name check_all() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5768 * @trigger check_all.jstree, changed.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5769 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5770 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5771 this.check_all = function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5772 if(this.settings.checkbox.tie_selection) { return this.select_all(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5773 var tmp = this._data.checkbox.selected.concat([]), i, j; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5774 this._data.checkbox.selected = this._model.data[$.jstree.root].children_d.concat(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5775 for(i = 0, j = this._data.checkbox.selected.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5776 if(this._model.data[this._data.checkbox.selected[i]]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5777 this._model.data[this._data.checkbox.selected[i]].state.checked = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5778 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5779 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5780 this.redraw(true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5781 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5782 * triggered when all nodes are checked (only if tie_selection in checkbox settings is false) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5783 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5784 * @name check_all.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5785 * @param {Array} selected the current selection |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5786 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5787 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5788 this.trigger('check_all', { 'selected' : this._data.checkbox.selected }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5789 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5790 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5791 * uncheck all checked nodes (only if tie_selection in checkbox settings is false, otherwise deselect_all will be called internally) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5792 * @name uncheck_all() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5793 * @trigger uncheck_all.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5794 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5795 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5796 this.uncheck_all = function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5797 if(this.settings.checkbox.tie_selection) { return this.deselect_all(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5798 var tmp = this._data.checkbox.selected.concat([]), i, j; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5799 for(i = 0, j = this._data.checkbox.selected.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5800 if(this._model.data[this._data.checkbox.selected[i]]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5801 this._model.data[this._data.checkbox.selected[i]].state.checked = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5802 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5803 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5804 this._data.checkbox.selected = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5805 this.element.find('.jstree-checked').removeClass('jstree-checked'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5806 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5807 * triggered when all nodes are unchecked (only if tie_selection in checkbox settings is false) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5808 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5809 * @name uncheck_all.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5810 * @param {Object} node the previous selection |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5811 * @param {Array} selected the current selection |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5812 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5813 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5814 this.trigger('uncheck_all', { 'selected' : this._data.checkbox.selected, 'node' : tmp }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5815 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5816 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5817 * checks if a node is checked (if tie_selection is on in the settings this function will return the same as is_selected) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5818 * @name is_checked(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5819 * @param {mixed} obj |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5820 * @return {Boolean} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5821 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5822 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5823 this.is_checked = function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5824 if(this.settings.checkbox.tie_selection) { return this.is_selected(obj); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5825 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5826 if(!obj || obj.id === $.jstree.root) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5827 return obj.state.checked; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5828 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5829 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5830 * get an array of all checked nodes (if tie_selection is on in the settings this function will return the same as get_selected) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5831 * @name get_checked([full]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5832 * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5833 * @return {Array} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5834 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5835 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5836 this.get_checked = function (full) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5837 if(this.settings.checkbox.tie_selection) { return this.get_selected(full); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5838 return full ? $.map(this._data.checkbox.selected, $.proxy(function (i) { return this.get_node(i); }, this)) : this._data.checkbox.selected; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5839 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5840 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5841 * get an array of all top level checked nodes (ignoring children of checked nodes) (if tie_selection is on in the settings this function will return the same as get_top_selected) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5842 * @name get_top_checked([full]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5843 * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5844 * @return {Array} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5845 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5846 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5847 this.get_top_checked = function (full) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5848 if(this.settings.checkbox.tie_selection) { return this.get_top_selected(full); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5849 var tmp = this.get_checked(true), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5850 obj = {}, i, j, k, l; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5851 for(i = 0, j = tmp.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5852 obj[tmp[i].id] = tmp[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5853 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5854 for(i = 0, j = tmp.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5855 for(k = 0, l = tmp[i].children_d.length; k < l; k++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5856 if(obj[tmp[i].children_d[k]]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5857 delete obj[tmp[i].children_d[k]]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5858 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5859 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5860 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5861 tmp = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5862 for(i in obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5863 if(obj.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5864 tmp.push(i); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5865 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5866 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5867 return full ? $.map(tmp, $.proxy(function (i) { return this.get_node(i); }, this)) : tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5868 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5869 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5870 * get an array of all bottom level checked nodes (ignoring selected parents) (if tie_selection is on in the settings this function will return the same as get_bottom_selected) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5871 * @name get_bottom_checked([full]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5872 * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5873 * @return {Array} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5874 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5875 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5876 this.get_bottom_checked = function (full) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5877 if(this.settings.checkbox.tie_selection) { return this.get_bottom_selected(full); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5878 var tmp = this.get_checked(true), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5879 obj = [], i, j; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5880 for(i = 0, j = tmp.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5881 if(!tmp[i].children.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5882 obj.push(tmp[i].id); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5883 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5884 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5885 return full ? $.map(obj, $.proxy(function (i) { return this.get_node(i); }, this)) : obj; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5886 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5887 this.load_node = function (obj, callback) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5888 var k, l, i, j, c, tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5889 if(!$.isArray(obj) && !this.settings.checkbox.tie_selection) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5890 tmp = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5891 if(tmp && tmp.state.loaded) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5892 for(k = 0, l = tmp.children_d.length; k < l; k++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5893 if(this._model.data[tmp.children_d[k]].state.checked) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5894 c = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5895 this._data.checkbox.selected = $.vakata.array_remove_item(this._data.checkbox.selected, tmp.children_d[k]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5896 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5897 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5898 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5899 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5900 return parent.load_node.apply(this, arguments); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5901 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5902 this.get_state = function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5903 var state = parent.get_state.apply(this, arguments); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5904 if(this.settings.checkbox.tie_selection) { return state; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5905 state.checkbox = this._data.checkbox.selected.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5906 return state; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5907 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5908 this.set_state = function (state, callback) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5909 var res = parent.set_state.apply(this, arguments); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5910 if(res && state.checkbox) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5911 if(!this.settings.checkbox.tie_selection) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5912 this.uncheck_all(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5913 var _this = this; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5914 $.each(state.checkbox, function (i, v) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5915 _this.check_node(v); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5916 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5917 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5918 delete state.checkbox; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5919 this.set_state(state, callback); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5920 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5921 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5922 return res; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5923 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5924 this.refresh = function (skip_loading, forget_state) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5925 if(!this.settings.checkbox.tie_selection) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5926 this._data.checkbox.selected = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5927 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5928 return parent.refresh.apply(this, arguments); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5929 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5930 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5931 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5932 // include the checkbox plugin by default |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5933 // $.jstree.defaults.plugins.push("checkbox"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5934 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5935 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5936 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5937 * ### Conditionalselect plugin |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5938 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5939 * This plugin allows defining a callback to allow or deny node selection by user input (activate node method). |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5940 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5941 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5942 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5943 * a callback (function) which is invoked in the instance's scope and receives two arguments - the node and the event that triggered the `activate_node` call. Returning false prevents working with the node, returning true allows invoking activate_node. Defaults to returning `true`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5944 * @name $.jstree.defaults.checkbox.visible |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5945 * @plugin checkbox |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5946 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5947 $.jstree.defaults.conditionalselect = function () { return true; }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5948 $.jstree.plugins.conditionalselect = function (options, parent) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5949 // own function |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5950 this.activate_node = function (obj, e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5951 if(this.settings.conditionalselect.call(this, this.get_node(obj), e)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5952 return parent.activate_node.call(this, obj, e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5953 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5954 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5955 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5956 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5957 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5958 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5959 * ### Contextmenu plugin |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5960 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5961 * Shows a context menu when a node is right-clicked. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5962 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5963 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5964 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5965 * stores all defaults for the contextmenu plugin |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5966 * @name $.jstree.defaults.contextmenu |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5967 * @plugin contextmenu |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5968 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5969 $.jstree.defaults.contextmenu = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5970 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5971 * a boolean indicating if the node should be selected when the context menu is invoked on it. Defaults to `true`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5972 * @name $.jstree.defaults.contextmenu.select_node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5973 * @plugin contextmenu |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5974 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5975 select_node : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5976 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5977 * a boolean indicating if the menu should be shown aligned with the node. Defaults to `true`, otherwise the mouse coordinates are used. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5978 * @name $.jstree.defaults.contextmenu.show_at_node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5979 * @plugin contextmenu |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5980 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5981 show_at_node : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5982 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5983 * an object of actions, or a function that accepts a node and a callback function and calls the callback function with an object of actions available for that node (you can also return the items too). |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5984 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5985 * Each action consists of a key (a unique name) and a value which is an object with the following properties (only label and action are required). Once a menu item is activated the `action` function will be invoked with an object containing the following keys: item - the contextmenu item definition as seen below, reference - the DOM node that was used (the tree node), element - the contextmenu DOM element, position - an object with x/y properties indicating the position of the menu. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5986 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5987 * * `separator_before` - a boolean indicating if there should be a separator before this item |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5988 * * `separator_after` - a boolean indicating if there should be a separator after this item |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5989 * * `_disabled` - a boolean indicating if this action should be disabled |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5990 * * `label` - a string - the name of the action (could be a function returning a string) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5991 * * `title` - a string - an optional tooltip for the item |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5992 * * `action` - a function to be executed if this item is chosen, the function will receive |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5993 * * `icon` - a string, can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5994 * * `shortcut` - keyCode which will trigger the action if the menu is open (for example `113` for rename, which equals F2) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5995 * * `shortcut_label` - shortcut label (like for example `F2` for rename) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5996 * * `submenu` - an object with the same structure as $.jstree.defaults.contextmenu.items which can be used to create a submenu - each key will be rendered as a separate option in a submenu that will appear once the current item is hovered |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5997 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5998 * @name $.jstree.defaults.contextmenu.items |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
5999 * @plugin contextmenu |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6000 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6001 items : function (o, cb) { // Could be an object directly |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6002 return { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6003 "create" : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6004 "separator_before" : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6005 "separator_after" : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6006 "_disabled" : false, //(this.check("create_node", data.reference, {}, "last")), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6007 "label" : "Create", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6008 "action" : function (data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6009 var inst = $.jstree.reference(data.reference), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6010 obj = inst.get_node(data.reference); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6011 inst.create_node(obj, {}, "last", function (new_node) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6012 try { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6013 inst.edit(new_node); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6014 } catch (ex) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6015 setTimeout(function () { inst.edit(new_node); },0); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6016 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6017 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6018 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6019 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6020 "rename" : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6021 "separator_before" : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6022 "separator_after" : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6023 "_disabled" : false, //(this.check("rename_node", data.reference, this.get_parent(data.reference), "")), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6024 "label" : "Rename", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6025 /*! |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6026 "shortcut" : 113, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6027 "shortcut_label" : 'F2', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6028 "icon" : "glyphicon glyphicon-leaf", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6029 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6030 "action" : function (data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6031 var inst = $.jstree.reference(data.reference), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6032 obj = inst.get_node(data.reference); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6033 inst.edit(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6034 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6035 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6036 "remove" : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6037 "separator_before" : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6038 "icon" : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6039 "separator_after" : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6040 "_disabled" : false, //(this.check("delete_node", data.reference, this.get_parent(data.reference), "")), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6041 "label" : "Delete", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6042 "action" : function (data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6043 var inst = $.jstree.reference(data.reference), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6044 obj = inst.get_node(data.reference); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6045 if(inst.is_selected(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6046 inst.delete_node(inst.get_selected()); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6047 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6048 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6049 inst.delete_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6050 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6051 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6052 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6053 "ccp" : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6054 "separator_before" : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6055 "icon" : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6056 "separator_after" : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6057 "label" : "Edit", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6058 "action" : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6059 "submenu" : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6060 "cut" : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6061 "separator_before" : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6062 "separator_after" : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6063 "label" : "Cut", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6064 "action" : function (data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6065 var inst = $.jstree.reference(data.reference), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6066 obj = inst.get_node(data.reference); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6067 if(inst.is_selected(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6068 inst.cut(inst.get_top_selected()); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6069 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6070 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6071 inst.cut(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6072 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6073 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6074 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6075 "copy" : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6076 "separator_before" : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6077 "icon" : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6078 "separator_after" : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6079 "label" : "Copy", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6080 "action" : function (data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6081 var inst = $.jstree.reference(data.reference), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6082 obj = inst.get_node(data.reference); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6083 if(inst.is_selected(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6084 inst.copy(inst.get_top_selected()); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6085 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6086 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6087 inst.copy(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6088 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6089 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6090 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6091 "paste" : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6092 "separator_before" : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6093 "icon" : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6094 "_disabled" : function (data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6095 return !$.jstree.reference(data.reference).can_paste(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6096 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6097 "separator_after" : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6098 "label" : "Paste", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6099 "action" : function (data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6100 var inst = $.jstree.reference(data.reference), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6101 obj = inst.get_node(data.reference); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6102 inst.paste(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6103 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6104 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6105 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6106 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6107 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6108 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6109 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6110 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6111 $.jstree.plugins.contextmenu = function (options, parent) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6112 this.bind = function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6113 parent.bind.call(this); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6114 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6115 var last_ts = 0, cto = null, ex, ey; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6116 this.element |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6117 .on("init.jstree loading.jstree ready.jstree", $.proxy(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6118 this.get_container_ul().addClass('jstree-contextmenu'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6119 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6120 .on("contextmenu.jstree", ".jstree-anchor", $.proxy(function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6121 if (e.target.tagName.toLowerCase() === 'input') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6122 return; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6123 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6124 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6125 last_ts = e.ctrlKey ? +new Date() : 0; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6126 if(data || cto) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6127 last_ts = (+new Date()) + 10000; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6128 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6129 if(cto) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6130 clearTimeout(cto); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6131 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6132 if(!this.is_loading(e.currentTarget)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6133 this.show_contextmenu(e.currentTarget, e.pageX, e.pageY, e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6134 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6135 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6136 .on("click.jstree", ".jstree-anchor", $.proxy(function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6137 if(this._data.contextmenu.visible && (!last_ts || (+new Date()) - last_ts > 250)) { // work around safari & macOS ctrl+click |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6138 $.vakata.context.hide(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6139 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6140 last_ts = 0; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6141 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6142 .on("touchstart.jstree", ".jstree-anchor", function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6143 if(!e.originalEvent || !e.originalEvent.changedTouches || !e.originalEvent.changedTouches[0]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6144 return; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6145 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6146 ex = e.originalEvent.changedTouches[0].clientX; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6147 ey = e.originalEvent.changedTouches[0].clientY; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6148 cto = setTimeout(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6149 $(e.currentTarget).trigger('contextmenu', true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6150 }, 750); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6151 }) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6152 .on('touchmove.vakata.jstree', function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6153 if(cto && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0] && (Math.abs(ex - e.originalEvent.changedTouches[0].clientX) > 10 || Math.abs(ey - e.originalEvent.changedTouches[0].clientY) > 10)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6154 clearTimeout(cto); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6155 $.vakata.context.hide(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6156 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6157 }) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6158 .on('touchend.vakata.jstree', function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6159 if(cto) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6160 clearTimeout(cto); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6161 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6162 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6163 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6164 /*! |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6165 if(!('oncontextmenu' in document.body) && ('ontouchstart' in document.body)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6166 var el = null, tm = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6167 this.element |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6168 .on("touchstart", ".jstree-anchor", function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6169 el = e.currentTarget; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6170 tm = +new Date(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6171 $(document).one("touchend", function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6172 e.target = document.elementFromPoint(e.originalEvent.targetTouches[0].pageX - window.pageXOffset, e.originalEvent.targetTouches[0].pageY - window.pageYOffset); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6173 e.currentTarget = e.target; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6174 tm = ((+(new Date())) - tm); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6175 if(e.target === el && tm > 600 && tm < 1000) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6176 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6177 $(el).trigger('contextmenu', e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6178 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6179 el = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6180 tm = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6181 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6182 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6183 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6184 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6185 $(document).on("context_hide.vakata.jstree", $.proxy(function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6186 this._data.contextmenu.visible = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6187 $(data.reference).removeClass('jstree-context'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6188 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6189 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6190 this.teardown = function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6191 if(this._data.contextmenu.visible) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6192 $.vakata.context.hide(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6193 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6194 parent.teardown.call(this); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6195 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6196 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6197 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6198 * prepare and show the context menu for a node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6199 * @name show_contextmenu(obj [, x, y]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6200 * @param {mixed} obj the node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6201 * @param {Number} x the x-coordinate relative to the document to show the menu at |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6202 * @param {Number} y the y-coordinate relative to the document to show the menu at |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6203 * @param {Object} e the event if available that triggered the contextmenu |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6204 * @plugin contextmenu |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6205 * @trigger show_contextmenu.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6206 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6207 this.show_contextmenu = function (obj, x, y, e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6208 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6209 if(!obj || obj.id === $.jstree.root) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6210 var s = this.settings.contextmenu, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6211 d = this.get_node(obj, true), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6212 a = d.children(".jstree-anchor"), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6213 o = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6214 i = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6215 if(s.show_at_node || x === undefined || y === undefined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6216 o = a.offset(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6217 x = o.left; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6218 y = o.top + this._data.core.li_height; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6219 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6220 if(this.settings.contextmenu.select_node && !this.is_selected(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6221 this.activate_node(obj, e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6222 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6223 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6224 i = s.items; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6225 if($.isFunction(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6226 i = i.call(this, obj, $.proxy(function (i) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6227 this._show_contextmenu(obj, x, y, i); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6228 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6229 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6230 if($.isPlainObject(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6231 this._show_contextmenu(obj, x, y, i); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6232 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6233 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6234 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6235 * show the prepared context menu for a node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6236 * @name _show_contextmenu(obj, x, y, i) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6237 * @param {mixed} obj the node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6238 * @param {Number} x the x-coordinate relative to the document to show the menu at |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6239 * @param {Number} y the y-coordinate relative to the document to show the menu at |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6240 * @param {Number} i the object of items to show |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6241 * @plugin contextmenu |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6242 * @trigger show_contextmenu.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6243 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6244 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6245 this._show_contextmenu = function (obj, x, y, i) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6246 var d = this.get_node(obj, true), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6247 a = d.children(".jstree-anchor"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6248 $(document).one("context_show.vakata.jstree", $.proxy(function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6249 var cls = 'jstree-contextmenu jstree-' + this.get_theme() + '-contextmenu'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6250 $(data.element).addClass(cls); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6251 a.addClass('jstree-context'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6252 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6253 this._data.contextmenu.visible = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6254 $.vakata.context.show(a, { 'x' : x, 'y' : y }, i); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6255 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6256 * triggered when the contextmenu is shown for a node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6257 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6258 * @name show_contextmenu.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6259 * @param {Object} node the node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6260 * @param {Number} x the x-coordinate of the menu relative to the document |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6261 * @param {Number} y the y-coordinate of the menu relative to the document |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6262 * @plugin contextmenu |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6263 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6264 this.trigger('show_contextmenu', { "node" : obj, "x" : x, "y" : y }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6265 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6266 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6267 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6268 // contextmenu helper |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6269 (function ($) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6270 var right_to_left = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6271 vakata_context = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6272 element : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6273 reference : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6274 position_x : 0, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6275 position_y : 0, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6276 items : [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6277 html : "", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6278 is_visible : false |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6279 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6280 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6281 $.vakata.context = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6282 settings : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6283 hide_onmouseleave : 0, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6284 icons : true |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6285 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6286 _trigger : function (event_name) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6287 $(document).triggerHandler("context_" + event_name + ".vakata", { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6288 "reference" : vakata_context.reference, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6289 "element" : vakata_context.element, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6290 "position" : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6291 "x" : vakata_context.position_x, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6292 "y" : vakata_context.position_y |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6293 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6294 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6295 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6296 _execute : function (i) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6297 i = vakata_context.items[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6298 return i && (!i._disabled || ($.isFunction(i._disabled) && !i._disabled({ "item" : i, "reference" : vakata_context.reference, "element" : vakata_context.element }))) && i.action ? i.action.call(null, { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6299 "item" : i, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6300 "reference" : vakata_context.reference, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6301 "element" : vakata_context.element, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6302 "position" : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6303 "x" : vakata_context.position_x, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6304 "y" : vakata_context.position_y |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6305 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6306 }) : false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6307 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6308 _parse : function (o, is_callback) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6309 if(!o) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6310 if(!is_callback) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6311 vakata_context.html = ""; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6312 vakata_context.items = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6313 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6314 var str = "", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6315 sep = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6316 tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6317 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6318 if(is_callback) { str += "<"+"ul>"; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6319 $.each(o, function (i, val) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6320 if(!val) { return true; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6321 vakata_context.items.push(val); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6322 if(!sep && val.separator_before) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6323 str += "<"+"li class='vakata-context-separator'><"+"a href='#' " + ($.vakata.context.settings.icons ? '' : 'style="margin-left:0px;"') + "> <"+"/a><"+"/li>"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6324 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6325 sep = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6326 str += "<"+"li class='" + (val._class || "") + (val._disabled === true || ($.isFunction(val._disabled) && val._disabled({ "item" : val, "reference" : vakata_context.reference, "element" : vakata_context.element })) ? " vakata-contextmenu-disabled " : "") + "' "+(val.shortcut?" data-shortcut='"+val.shortcut+"' ":'')+">"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6327 str += "<"+"a href='#' rel='" + (vakata_context.items.length - 1) + "' " + (val.title ? "title='" + val.title + "'" : "") + ">"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6328 if($.vakata.context.settings.icons) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6329 str += "<"+"i "; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6330 if(val.icon) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6331 if(val.icon.indexOf("/") !== -1 || val.icon.indexOf(".") !== -1) { str += " style='background:url(\"" + val.icon + "\") center center no-repeat' "; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6332 else { str += " class='" + val.icon + "' "; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6333 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6334 str += "><"+"/i><"+"span class='vakata-contextmenu-sep'> <"+"/span>"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6335 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6336 str += ($.isFunction(val.label) ? val.label({ "item" : i, "reference" : vakata_context.reference, "element" : vakata_context.element }) : val.label) + (val.shortcut?' <span class="vakata-contextmenu-shortcut vakata-contextmenu-shortcut-'+val.shortcut+'">'+ (val.shortcut_label || '') +'</span>':'') + "<"+"/a>"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6337 if(val.submenu) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6338 tmp = $.vakata.context._parse(val.submenu, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6339 if(tmp) { str += tmp; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6340 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6341 str += "<"+"/li>"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6342 if(val.separator_after) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6343 str += "<"+"li class='vakata-context-separator'><"+"a href='#' " + ($.vakata.context.settings.icons ? '' : 'style="margin-left:0px;"') + "> <"+"/a><"+"/li>"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6344 sep = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6345 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6346 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6347 str = str.replace(/<li class\='vakata-context-separator'\><\/li\>$/,""); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6348 if(is_callback) { str += "</ul>"; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6349 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6350 * triggered on the document when the contextmenu is parsed (HTML is built) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6351 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6352 * @plugin contextmenu |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6353 * @name context_parse.vakata |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6354 * @param {jQuery} reference the element that was right clicked |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6355 * @param {jQuery} element the DOM element of the menu itself |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6356 * @param {Object} position the x & y coordinates of the menu |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6357 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6358 if(!is_callback) { vakata_context.html = str; $.vakata.context._trigger("parse"); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6359 return str.length > 10 ? str : false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6360 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6361 _show_submenu : function (o) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6362 o = $(o); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6363 if(!o.length || !o.children("ul").length) { return; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6364 var e = o.children("ul"), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6365 xl = o.offset().left, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6366 x = xl + o.outerWidth(), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6367 y = o.offset().top, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6368 w = e.width(), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6369 h = e.height(), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6370 dw = $(window).width() + $(window).scrollLeft(), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6371 dh = $(window).height() + $(window).scrollTop(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6372 // може да се спести е една проверка - дали няма някой от класовете вече нагоре |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6373 if(right_to_left) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6374 o[x - (w + 10 + o.outerWidth()) < 0 ? "addClass" : "removeClass"]("vakata-context-left"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6375 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6376 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6377 o[x + w > dw && xl > dw - x ? "addClass" : "removeClass"]("vakata-context-right"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6378 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6379 if(y + h + 10 > dh) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6380 e.css("bottom","-1px"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6381 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6382 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6383 //if does not fit - stick it to the side |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6384 if (o.hasClass('vakata-context-right')) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6385 if (xl < w) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6386 e.css("margin-right", xl - w); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6387 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6388 } else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6389 if (dw - x < w) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6390 e.css("margin-left", dw - x - w); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6391 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6392 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6393 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6394 e.show(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6395 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6396 show : function (reference, position, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6397 var o, e, x, y, w, h, dw, dh, cond = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6398 if(vakata_context.element && vakata_context.element.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6399 vakata_context.element.width(''); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6400 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6401 switch(cond) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6402 case (!position && !reference): |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6403 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6404 case (!!position && !!reference): |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6405 vakata_context.reference = reference; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6406 vakata_context.position_x = position.x; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6407 vakata_context.position_y = position.y; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6408 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6409 case (!position && !!reference): |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6410 vakata_context.reference = reference; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6411 o = reference.offset(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6412 vakata_context.position_x = o.left + reference.outerHeight(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6413 vakata_context.position_y = o.top; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6414 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6415 case (!!position && !reference): |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6416 vakata_context.position_x = position.x; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6417 vakata_context.position_y = position.y; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6418 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6419 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6420 if(!!reference && !data && $(reference).data('vakata_contextmenu')) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6421 data = $(reference).data('vakata_contextmenu'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6422 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6423 if($.vakata.context._parse(data)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6424 vakata_context.element.html(vakata_context.html); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6425 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6426 if(vakata_context.items.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6427 vakata_context.element.appendTo("body"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6428 e = vakata_context.element; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6429 x = vakata_context.position_x; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6430 y = vakata_context.position_y; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6431 w = e.width(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6432 h = e.height(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6433 dw = $(window).width() + $(window).scrollLeft(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6434 dh = $(window).height() + $(window).scrollTop(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6435 if(right_to_left) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6436 x -= (e.outerWidth() - $(reference).outerWidth()); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6437 if(x < $(window).scrollLeft() + 20) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6438 x = $(window).scrollLeft() + 20; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6439 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6440 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6441 if(x + w + 20 > dw) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6442 x = dw - (w + 20); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6443 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6444 if(y + h + 20 > dh) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6445 y = dh - (h + 20); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6446 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6447 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6448 vakata_context.element |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6449 .css({ "left" : x, "top" : y }) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6450 .show() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6451 .find('a').first().focus().parent().addClass("vakata-context-hover"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6452 vakata_context.is_visible = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6453 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6454 * triggered on the document when the contextmenu is shown |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6455 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6456 * @plugin contextmenu |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6457 * @name context_show.vakata |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6458 * @param {jQuery} reference the element that was right clicked |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6459 * @param {jQuery} element the DOM element of the menu itself |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6460 * @param {Object} position the x & y coordinates of the menu |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6461 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6462 $.vakata.context._trigger("show"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6463 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6464 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6465 hide : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6466 if(vakata_context.is_visible) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6467 vakata_context.element.hide().find("ul").hide().end().find(':focus').blur().end().detach(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6468 vakata_context.is_visible = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6469 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6470 * triggered on the document when the contextmenu is hidden |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6471 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6472 * @plugin contextmenu |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6473 * @name context_hide.vakata |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6474 * @param {jQuery} reference the element that was right clicked |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6475 * @param {jQuery} element the DOM element of the menu itself |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6476 * @param {Object} position the x & y coordinates of the menu |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6477 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6478 $.vakata.context._trigger("hide"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6479 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6480 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6481 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6482 $(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6483 right_to_left = $("body").css("direction") === "rtl"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6484 var to = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6485 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6486 vakata_context.element = $("<ul class='vakata-context'></ul>"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6487 vakata_context.element |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6488 .on("mouseenter", "li", function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6489 e.stopImmediatePropagation(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6490 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6491 if($.contains(this, e.relatedTarget)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6492 // премахнато заради delegate mouseleave по-долу |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6493 // $(this).find(".vakata-context-hover").removeClass("vakata-context-hover"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6494 return; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6495 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6496 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6497 if(to) { clearTimeout(to); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6498 vakata_context.element.find(".vakata-context-hover").removeClass("vakata-context-hover").end(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6499 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6500 $(this) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6501 .siblings().find("ul").hide().end().end() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6502 .parentsUntil(".vakata-context", "li").addBack().addClass("vakata-context-hover"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6503 $.vakata.context._show_submenu(this); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6504 }) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6505 // тестово - дали не натоварва? |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6506 .on("mouseleave", "li", function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6507 if($.contains(this, e.relatedTarget)) { return; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6508 $(this).find(".vakata-context-hover").addBack().removeClass("vakata-context-hover"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6509 }) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6510 .on("mouseleave", function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6511 $(this).find(".vakata-context-hover").removeClass("vakata-context-hover"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6512 if($.vakata.context.settings.hide_onmouseleave) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6513 to = setTimeout( |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6514 (function (t) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6515 return function () { $.vakata.context.hide(); }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6516 }(this)), $.vakata.context.settings.hide_onmouseleave); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6517 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6518 }) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6519 .on("click", "a", function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6520 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6521 //}) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6522 //.on("mouseup", "a", function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6523 if(!$(this).blur().parent().hasClass("vakata-context-disabled") && $.vakata.context._execute($(this).attr("rel")) !== false) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6524 $.vakata.context.hide(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6525 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6526 }) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6527 .on('keydown', 'a', function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6528 var o = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6529 switch(e.which) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6530 case 13: |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6531 case 32: |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6532 e.type = "click"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6533 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6534 $(e.currentTarget).trigger(e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6535 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6536 case 37: |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6537 if(vakata_context.is_visible) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6538 vakata_context.element.find(".vakata-context-hover").last().closest("li").first().find("ul").hide().find(".vakata-context-hover").removeClass("vakata-context-hover").end().end().children('a').focus(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6539 e.stopImmediatePropagation(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6540 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6541 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6542 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6543 case 38: |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6544 if(vakata_context.is_visible) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6545 o = vakata_context.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").prevAll("li:not(.vakata-context-separator)").first(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6546 if(!o.length) { o = vakata_context.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").last(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6547 o.addClass("vakata-context-hover").children('a').focus(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6548 e.stopImmediatePropagation(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6549 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6550 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6551 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6552 case 39: |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6553 if(vakata_context.is_visible) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6554 vakata_context.element.find(".vakata-context-hover").last().children("ul").show().children("li:not(.vakata-context-separator)").removeClass("vakata-context-hover").first().addClass("vakata-context-hover").children('a').focus(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6555 e.stopImmediatePropagation(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6556 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6557 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6558 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6559 case 40: |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6560 if(vakata_context.is_visible) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6561 o = vakata_context.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").nextAll("li:not(.vakata-context-separator)").first(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6562 if(!o.length) { o = vakata_context.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").first(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6563 o.addClass("vakata-context-hover").children('a').focus(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6564 e.stopImmediatePropagation(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6565 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6566 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6567 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6568 case 27: |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6569 $.vakata.context.hide(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6570 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6571 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6572 default: |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6573 //console.log(e.which); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6574 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6575 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6576 }) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6577 .on('keydown', function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6578 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6579 var a = vakata_context.element.find('.vakata-contextmenu-shortcut-' + e.which).parent(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6580 if(a.parent().not('.vakata-context-disabled')) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6581 a.click(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6582 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6583 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6584 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6585 $(document) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6586 .on("mousedown.vakata.jstree", function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6587 if(vakata_context.is_visible && vakata_context.element[0] !== e.target && !$.contains(vakata_context.element[0], e.target)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6588 $.vakata.context.hide(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6589 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6590 }) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6591 .on("context_show.vakata.jstree", function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6592 vakata_context.element.find("li:has(ul)").children("a").addClass("vakata-context-parent"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6593 if(right_to_left) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6594 vakata_context.element.addClass("vakata-context-rtl").css("direction", "rtl"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6595 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6596 // also apply a RTL class? |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6597 vakata_context.element.find("ul").hide().end(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6598 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6599 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6600 }($)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6601 // $.jstree.defaults.plugins.push("contextmenu"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6602 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6603 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6604 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6605 * ### Drag'n'drop plugin |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6606 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6607 * Enables dragging and dropping of nodes in the tree, resulting in a move or copy operations. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6608 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6609 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6610 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6611 * stores all defaults for the drag'n'drop plugin |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6612 * @name $.jstree.defaults.dnd |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6613 * @plugin dnd |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6614 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6615 $.jstree.defaults.dnd = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6616 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6617 * a boolean indicating if a copy should be possible while dragging (by pressint the meta key or Ctrl). Defaults to `true`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6618 * @name $.jstree.defaults.dnd.copy |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6619 * @plugin dnd |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6620 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6621 copy : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6622 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6623 * a number indicating how long a node should remain hovered while dragging to be opened. Defaults to `500`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6624 * @name $.jstree.defaults.dnd.open_timeout |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6625 * @plugin dnd |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6626 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6627 open_timeout : 500, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6628 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6629 * a function invoked each time a node is about to be dragged, invoked in the tree's scope and receives the nodes about to be dragged as an argument (array) and the event that started the drag - return `false` to prevent dragging |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6630 * @name $.jstree.defaults.dnd.is_draggable |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6631 * @plugin dnd |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6632 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6633 is_draggable : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6634 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6635 * a boolean indicating if checks should constantly be made while the user is dragging the node (as opposed to checking only on drop), default is `true` |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6636 * @name $.jstree.defaults.dnd.check_while_dragging |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6637 * @plugin dnd |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6638 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6639 check_while_dragging : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6640 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6641 * a boolean indicating if nodes from this tree should only be copied with dnd (as opposed to moved), default is `false` |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6642 * @name $.jstree.defaults.dnd.always_copy |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6643 * @plugin dnd |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6644 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6645 always_copy : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6646 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6647 * when dropping a node "inside", this setting indicates the position the node should go to - it can be an integer or a string: "first" (same as 0) or "last", default is `0` |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6648 * @name $.jstree.defaults.dnd.inside_pos |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6649 * @plugin dnd |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6650 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6651 inside_pos : 0, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6652 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6653 * when starting the drag on a node that is selected this setting controls if all selected nodes are dragged or only the single node, default is `true`, which means all selected nodes are dragged when the drag is started on a selected node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6654 * @name $.jstree.defaults.dnd.drag_selection |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6655 * @plugin dnd |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6656 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6657 drag_selection : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6658 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6659 * controls whether dnd works on touch devices. If left as boolean true dnd will work the same as in desktop browsers, which in some cases may impair scrolling. If set to boolean false dnd will not work on touch devices. There is a special third option - string "selected" which means only selected nodes can be dragged on touch devices. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6660 * @name $.jstree.defaults.dnd.touch |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6661 * @plugin dnd |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6662 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6663 touch : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6664 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6665 * controls whether items can be dropped anywhere on the node, not just on the anchor, by default only the node anchor is a valid drop target. Works best with the wholerow plugin. If enabled on mobile depending on the interface it might be hard for the user to cancel the drop, since the whole tree container will be a valid drop target. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6666 * @name $.jstree.defaults.dnd.large_drop_target |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6667 * @plugin dnd |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6668 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6669 large_drop_target : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6670 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6671 * controls whether a drag can be initiated from any part of the node and not just the text/icon part, works best with the wholerow plugin. Keep in mind it can cause problems with tree scrolling on mobile depending on the interface - in that case set the touch option to "selected". |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6672 * @name $.jstree.defaults.dnd.large_drag_target |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6673 * @plugin dnd |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6674 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6675 large_drag_target : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6676 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6677 * controls whether use HTML5 dnd api instead of classical. That will allow better integration of dnd events with other HTML5 controls. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6678 * @reference http://caniuse.com/#feat=dragndrop |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6679 * @name $.jstree.defaults.dnd.use_html5 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6680 * @plugin dnd |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6681 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6682 use_html5: false |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6683 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6684 var drg, elm; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6685 // TODO: now check works by checking for each node individually, how about max_children, unique, etc? |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6686 $.jstree.plugins.dnd = function (options, parent) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6687 this.init = function (el, options) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6688 parent.init.call(this, el, options); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6689 this.settings.dnd.use_html5 = this.settings.dnd.use_html5 && ('draggable' in document.createElement('span')); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6690 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6691 this.bind = function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6692 parent.bind.call(this); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6693 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6694 this.element |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6695 .on(this.settings.dnd.use_html5 ? 'dragstart.jstree' : 'mousedown.jstree touchstart.jstree', this.settings.dnd.large_drag_target ? '.jstree-node' : '.jstree-anchor', $.proxy(function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6696 if(this.settings.dnd.large_drag_target && $(e.target).closest('.jstree-node')[0] !== e.currentTarget) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6697 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6698 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6699 if(e.type === "touchstart" && (!this.settings.dnd.touch || (this.settings.dnd.touch === 'selected' && !$(e.currentTarget).closest('.jstree-node').children('.jstree-anchor').hasClass('jstree-clicked')))) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6700 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6701 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6702 var obj = this.get_node(e.target), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6703 mlt = this.is_selected(obj) && this.settings.dnd.drag_selection ? this.get_top_selected().length : 1, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6704 txt = (mlt > 1 ? mlt + ' ' + this.get_string('nodes') : this.get_text(e.currentTarget)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6705 if(this.settings.core.force_text) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6706 txt = $.vakata.html.escape(txt); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6707 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6708 if(obj && obj.id && obj.id !== $.jstree.root && (e.which === 1 || e.type === "touchstart" || e.type === "dragstart") && |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6709 (this.settings.dnd.is_draggable === true || ($.isFunction(this.settings.dnd.is_draggable) && this.settings.dnd.is_draggable.call(this, (mlt > 1 ? this.get_top_selected(true) : [obj]), e))) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6710 ) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6711 drg = { 'jstree' : true, 'origin' : this, 'obj' : this.get_node(obj,true), 'nodes' : mlt > 1 ? this.get_top_selected() : [obj.id] }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6712 elm = e.currentTarget; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6713 if (this.settings.dnd.use_html5) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6714 $.vakata.dnd._trigger('start', e, { 'helper': $(), 'element': elm, 'data': drg }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6715 } else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6716 this.element.trigger('mousedown.jstree'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6717 return $.vakata.dnd.start(e, drg, '<div id="jstree-dnd" class="jstree-' + this.get_theme() + ' jstree-' + this.get_theme() + '-' + this.get_theme_variant() + ' ' + ( this.settings.core.themes.responsive ? ' jstree-dnd-responsive' : '' ) + '"><i class="jstree-icon jstree-er"></i>' + txt + '<ins class="jstree-copy" style="display:none;">+</ins></div>'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6718 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6719 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6720 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6721 if (this.settings.dnd.use_html5) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6722 this.element |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6723 .on('dragover.jstree', function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6724 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6725 $.vakata.dnd._trigger('move', e, { 'helper': $(), 'element': elm, 'data': drg }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6726 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6727 }) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6728 //.on('dragenter.jstree', this.settings.dnd.large_drop_target ? '.jstree-node' : '.jstree-anchor', $.proxy(function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6729 // e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6730 // $.vakata.dnd._trigger('move', e, { 'helper': $(), 'element': elm, 'data': drg }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6731 // return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6732 // }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6733 .on('drop.jstree', $.proxy(function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6734 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6735 $.vakata.dnd._trigger('stop', e, { 'helper': $(), 'element': elm, 'data': drg }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6736 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6737 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6738 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6739 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6740 this.redraw_node = function(obj, deep, callback, force_render) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6741 obj = parent.redraw_node.apply(this, arguments); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6742 if (obj && this.settings.dnd.use_html5) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6743 if (this.settings.dnd.large_drag_target) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6744 obj.setAttribute('draggable', true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6745 } else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6746 var i, j, tmp = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6747 for(i = 0, j = obj.childNodes.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6748 if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6749 tmp = obj.childNodes[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6750 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6751 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6752 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6753 if(tmp) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6754 tmp.setAttribute('draggable', true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6755 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6756 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6757 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6758 return obj; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6759 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6760 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6761 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6762 $(function() { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6763 // bind only once for all instances |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6764 var lastmv = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6765 laster = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6766 lastev = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6767 opento = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6768 marker = $('<div id="jstree-marker"> </div>').hide(); //.appendTo('body'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6769 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6770 $(document) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6771 .on('dnd_start.vakata.jstree', function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6772 lastmv = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6773 lastev = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6774 if(!data || !data.data || !data.data.jstree) { return; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6775 marker.appendTo('body'); //.show(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6776 }) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6777 .on('dnd_move.vakata.jstree', function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6778 var isDifferentNode = data.event.target !== lastev.target; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6779 if(opento) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6780 if (!data.event || data.event.type !== 'dragover' || isDifferentNode) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6781 clearTimeout(opento); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6782 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6783 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6784 if(!data || !data.data || !data.data.jstree) { return; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6785 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6786 // if we are hovering the marker image do nothing (can happen on "inside" drags) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6787 if(data.event.target.id && data.event.target.id === 'jstree-marker') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6788 return; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6789 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6790 lastev = data.event; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6791 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6792 var ins = $.jstree.reference(data.event.target), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6793 ref = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6794 off = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6795 rel = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6796 tmp, l, t, h, p, i, o, ok, t1, t2, op, ps, pr, ip, tm, is_copy, pn; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6797 // if we are over an instance |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6798 if(ins && ins._data && ins._data.dnd) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6799 marker.attr('class', 'jstree-' + ins.get_theme() + ( ins.settings.core.themes.responsive ? ' jstree-dnd-responsive' : '' )); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6800 is_copy = data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6801 data.helper |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6802 .children().attr('class', 'jstree-' + ins.get_theme() + ' jstree-' + ins.get_theme() + '-' + ins.get_theme_variant() + ' ' + ( ins.settings.core.themes.responsive ? ' jstree-dnd-responsive' : '' )) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6803 .find('.jstree-copy').first()[ is_copy ? 'show' : 'hide' ](); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6804 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6805 // if are hovering the container itself add a new root node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6806 //console.log(data.event); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6807 if( (data.event.target === ins.element[0] || data.event.target === ins.get_container_ul()[0]) && ins.get_container_ul().children().length === 0) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6808 ok = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6809 for(t1 = 0, t2 = data.data.nodes.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6810 ok = ok && ins.check( (data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey)) ) ? "copy_node" : "move_node"), (data.data.origin && data.data.origin !== ins ? data.data.origin.get_node(data.data.nodes[t1]) : data.data.nodes[t1]), $.jstree.root, 'last', { 'dnd' : true, 'ref' : ins.get_node($.jstree.root), 'pos' : 'i', 'origin' : data.data.origin, 'is_multi' : (data.data.origin && data.data.origin !== ins), 'is_foreign' : (!data.data.origin) }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6811 if(!ok) { break; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6812 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6813 if(ok) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6814 lastmv = { 'ins' : ins, 'par' : $.jstree.root, 'pos' : 'last' }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6815 marker.hide(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6816 data.helper.find('.jstree-icon').first().removeClass('jstree-er').addClass('jstree-ok'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6817 if (data.event.originalEvent && data.event.originalEvent.dataTransfer) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6818 data.event.originalEvent.dataTransfer.dropEffect = is_copy ? 'copy' : 'move'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6819 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6820 return; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6821 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6822 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6823 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6824 // if we are hovering a tree node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6825 ref = ins.settings.dnd.large_drop_target ? $(data.event.target).closest('.jstree-node').children('.jstree-anchor') : $(data.event.target).closest('.jstree-anchor'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6826 if(ref && ref.length && ref.parent().is('.jstree-closed, .jstree-open, .jstree-leaf')) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6827 off = ref.offset(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6828 rel = (data.event.pageY !== undefined ? data.event.pageY : data.event.originalEvent.pageY) - off.top; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6829 h = ref.outerHeight(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6830 if(rel < h / 3) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6831 o = ['b', 'i', 'a']; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6832 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6833 else if(rel > h - h / 3) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6834 o = ['a', 'i', 'b']; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6835 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6836 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6837 o = rel > h / 2 ? ['i', 'a', 'b'] : ['i', 'b', 'a']; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6838 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6839 $.each(o, function (j, v) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6840 switch(v) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6841 case 'b': |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6842 l = off.left - 6; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6843 t = off.top; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6844 p = ins.get_parent(ref); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6845 i = ref.parent().index(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6846 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6847 case 'i': |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6848 ip = ins.settings.dnd.inside_pos; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6849 tm = ins.get_node(ref.parent()); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6850 l = off.left - 2; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6851 t = off.top + h / 2 + 1; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6852 p = tm.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6853 i = ip === 'first' ? 0 : (ip === 'last' ? tm.children.length : Math.min(ip, tm.children.length)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6854 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6855 case 'a': |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6856 l = off.left - 6; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6857 t = off.top + h; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6858 p = ins.get_parent(ref); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6859 i = ref.parent().index() + 1; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6860 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6861 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6862 ok = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6863 for(t1 = 0, t2 = data.data.nodes.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6864 op = data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))) ? "copy_node" : "move_node"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6865 ps = i; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6866 if(op === "move_node" && v === 'a' && (data.data.origin && data.data.origin === ins) && p === ins.get_parent(data.data.nodes[t1])) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6867 pr = ins.get_node(p); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6868 if(ps > $.inArray(data.data.nodes[t1], pr.children)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6869 ps -= 1; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6870 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6871 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6872 ok = ok && ( (ins && ins.settings && ins.settings.dnd && ins.settings.dnd.check_while_dragging === false) || ins.check(op, (data.data.origin && data.data.origin !== ins ? data.data.origin.get_node(data.data.nodes[t1]) : data.data.nodes[t1]), p, ps, { 'dnd' : true, 'ref' : ins.get_node(ref.parent()), 'pos' : v, 'origin' : data.data.origin, 'is_multi' : (data.data.origin && data.data.origin !== ins), 'is_foreign' : (!data.data.origin) }) ); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6873 if(!ok) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6874 if(ins && ins.last_error) { laster = ins.last_error(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6875 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6876 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6877 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6878 if(v === 'i' && ref.parent().is('.jstree-closed') && ins.settings.dnd.open_timeout) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6879 if (!data.event || data.event.type !== 'dragover' || isDifferentNode) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6880 if (opento) { clearTimeout(opento); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6881 opento = setTimeout((function (x, z) { return function () { x.open_node(z); }; }(ins, ref)), ins.settings.dnd.open_timeout); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6882 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6883 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6884 if(ok) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6885 pn = ins.get_node(p, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6886 if (!pn.hasClass('.jstree-dnd-parent')) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6887 $('.jstree-dnd-parent').removeClass('jstree-dnd-parent'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6888 pn.addClass('jstree-dnd-parent'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6889 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6890 lastmv = { 'ins' : ins, 'par' : p, 'pos' : v === 'i' && ip === 'last' && i === 0 && !ins.is_loaded(tm) ? 'last' : i }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6891 marker.css({ 'left' : l + 'px', 'top' : t + 'px' }).show(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6892 data.helper.find('.jstree-icon').first().removeClass('jstree-er').addClass('jstree-ok'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6893 if (data.event.originalEvent && data.event.originalEvent.dataTransfer) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6894 data.event.originalEvent.dataTransfer.dropEffect = is_copy ? 'copy' : 'move'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6895 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6896 laster = {}; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6897 o = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6898 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6899 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6900 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6901 if(o === true) { return; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6902 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6903 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6904 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6905 $('.jstree-dnd-parent').removeClass('jstree-dnd-parent'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6906 lastmv = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6907 data.helper.find('.jstree-icon').removeClass('jstree-ok').addClass('jstree-er'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6908 if (data.event.originalEvent && data.event.originalEvent.dataTransfer) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6909 data.event.originalEvent.dataTransfer.dropEffect = 'none'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6910 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6911 marker.hide(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6912 }) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6913 .on('dnd_scroll.vakata.jstree', function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6914 if(!data || !data.data || !data.data.jstree) { return; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6915 marker.hide(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6916 lastmv = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6917 lastev = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6918 data.helper.find('.jstree-icon').first().removeClass('jstree-ok').addClass('jstree-er'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6919 }) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6920 .on('dnd_stop.vakata.jstree', function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6921 $('.jstree-dnd-parent').removeClass('jstree-dnd-parent'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6922 if(opento) { clearTimeout(opento); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6923 if(!data || !data.data || !data.data.jstree) { return; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6924 marker.hide().detach(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6925 var i, j, nodes = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6926 if(lastmv) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6927 for(i = 0, j = data.data.nodes.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6928 nodes[i] = data.data.origin ? data.data.origin.get_node(data.data.nodes[i]) : data.data.nodes[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6929 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6930 lastmv.ins[ data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))) ? 'copy_node' : 'move_node' ](nodes, lastmv.par, lastmv.pos, false, false, false, data.data.origin); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6931 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6932 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6933 i = $(data.event.target).closest('.jstree'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6934 if(i.length && laster && laster.error && laster.error === 'check') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6935 i = i.jstree(true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6936 if(i) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6937 i.settings.core.error.call(this, laster); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6938 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6939 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6940 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6941 lastev = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6942 lastmv = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6943 }) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6944 .on('keyup.jstree keydown.jstree', function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6945 data = $.vakata.dnd._get(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6946 if(data && data.data && data.data.jstree) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6947 if (e.type === "keyup" && e.which === 27) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6948 if (opento) { clearTimeout(opento); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6949 lastmv = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6950 laster = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6951 lastev = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6952 opento = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6953 marker.hide().detach(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6954 $.vakata.dnd._clean(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6955 } else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6956 data.helper.find('.jstree-copy').first()[ data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (e.metaKey || e.ctrlKey))) ? 'show' : 'hide' ](); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6957 if(lastev) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6958 lastev.metaKey = e.metaKey; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6959 lastev.ctrlKey = e.ctrlKey; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6960 $.vakata.dnd._trigger('move', lastev); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6961 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6962 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6963 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6964 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6965 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6966 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6967 // helpers |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6968 (function ($) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6969 $.vakata.html = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6970 div : $('<div />'), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6971 escape : function (str) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6972 return $.vakata.html.div.text(str).html(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6973 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6974 strip : function (str) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6975 return $.vakata.html.div.empty().append($.parseHTML(str)).text(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6976 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6977 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6978 // private variable |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6979 var vakata_dnd = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6980 element : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6981 target : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6982 is_down : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6983 is_drag : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6984 helper : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6985 helper_w: 0, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6986 data : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6987 init_x : 0, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6988 init_y : 0, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6989 scroll_l: 0, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6990 scroll_t: 0, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6991 scroll_e: false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6992 scroll_i: false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6993 is_touch: false |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6994 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6995 $.vakata.dnd = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6996 settings : { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6997 scroll_speed : 10, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6998 scroll_proximity : 20, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
6999 helper_left : 5, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7000 helper_top : 10, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7001 threshold : 5, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7002 threshold_touch : 10 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7003 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7004 _trigger : function (event_name, e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7005 if (data === undefined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7006 data = $.vakata.dnd._get(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7007 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7008 data.event = e; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7009 $(document).triggerHandler("dnd_" + event_name + ".vakata", data); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7010 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7011 _get : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7012 return { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7013 "data" : vakata_dnd.data, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7014 "element" : vakata_dnd.element, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7015 "helper" : vakata_dnd.helper |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7016 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7017 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7018 _clean : function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7019 if(vakata_dnd.helper) { vakata_dnd.helper.remove(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7020 if(vakata_dnd.scroll_i) { clearInterval(vakata_dnd.scroll_i); vakata_dnd.scroll_i = false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7021 vakata_dnd = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7022 element : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7023 target : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7024 is_down : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7025 is_drag : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7026 helper : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7027 helper_w: 0, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7028 data : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7029 init_x : 0, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7030 init_y : 0, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7031 scroll_l: 0, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7032 scroll_t: 0, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7033 scroll_e: false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7034 scroll_i: false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7035 is_touch: false |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7036 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7037 $(document).off("mousemove.vakata.jstree touchmove.vakata.jstree", $.vakata.dnd.drag); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7038 $(document).off("mouseup.vakata.jstree touchend.vakata.jstree", $.vakata.dnd.stop); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7039 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7040 _scroll : function (init_only) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7041 if(!vakata_dnd.scroll_e || (!vakata_dnd.scroll_l && !vakata_dnd.scroll_t)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7042 if(vakata_dnd.scroll_i) { clearInterval(vakata_dnd.scroll_i); vakata_dnd.scroll_i = false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7043 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7044 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7045 if(!vakata_dnd.scroll_i) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7046 vakata_dnd.scroll_i = setInterval($.vakata.dnd._scroll, 100); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7047 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7048 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7049 if(init_only === true) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7050 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7051 var i = vakata_dnd.scroll_e.scrollTop(), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7052 j = vakata_dnd.scroll_e.scrollLeft(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7053 vakata_dnd.scroll_e.scrollTop(i + vakata_dnd.scroll_t * $.vakata.dnd.settings.scroll_speed); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7054 vakata_dnd.scroll_e.scrollLeft(j + vakata_dnd.scroll_l * $.vakata.dnd.settings.scroll_speed); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7055 if(i !== vakata_dnd.scroll_e.scrollTop() || j !== vakata_dnd.scroll_e.scrollLeft()) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7056 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7057 * triggered on the document when a drag causes an element to scroll |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7058 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7059 * @plugin dnd |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7060 * @name dnd_scroll.vakata |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7061 * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7062 * @param {DOM} element the DOM element being dragged |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7063 * @param {jQuery} helper the helper shown next to the mouse |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7064 * @param {jQuery} event the element that is scrolling |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7065 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7066 $.vakata.dnd._trigger("scroll", vakata_dnd.scroll_e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7067 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7068 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7069 start : function (e, data, html) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7070 if(e.type === "touchstart" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7071 e.pageX = e.originalEvent.changedTouches[0].pageX; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7072 e.pageY = e.originalEvent.changedTouches[0].pageY; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7073 e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7074 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7075 if(vakata_dnd.is_drag) { $.vakata.dnd.stop({}); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7076 try { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7077 e.currentTarget.unselectable = "on"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7078 e.currentTarget.onselectstart = function() { return false; }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7079 if(e.currentTarget.style) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7080 e.currentTarget.style.touchAction = "none"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7081 e.currentTarget.style.msTouchAction = "none"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7082 e.currentTarget.style.MozUserSelect = "none"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7083 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7084 } catch(ignore) { } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7085 vakata_dnd.init_x = e.pageX; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7086 vakata_dnd.init_y = e.pageY; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7087 vakata_dnd.data = data; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7088 vakata_dnd.is_down = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7089 vakata_dnd.element = e.currentTarget; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7090 vakata_dnd.target = e.target; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7091 vakata_dnd.is_touch = e.type === "touchstart"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7092 if(html !== false) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7093 vakata_dnd.helper = $("<div id='vakata-dnd'></div>").html(html).css({ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7094 "display" : "block", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7095 "margin" : "0", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7096 "padding" : "0", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7097 "position" : "absolute", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7098 "top" : "-2000px", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7099 "lineHeight" : "16px", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7100 "zIndex" : "10000" |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7101 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7102 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7103 $(document).on("mousemove.vakata.jstree touchmove.vakata.jstree", $.vakata.dnd.drag); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7104 $(document).on("mouseup.vakata.jstree touchend.vakata.jstree", $.vakata.dnd.stop); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7105 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7106 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7107 drag : function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7108 if(e.type === "touchmove" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7109 e.pageX = e.originalEvent.changedTouches[0].pageX; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7110 e.pageY = e.originalEvent.changedTouches[0].pageY; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7111 e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7112 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7113 if(!vakata_dnd.is_down) { return; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7114 if(!vakata_dnd.is_drag) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7115 if( |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7116 Math.abs(e.pageX - vakata_dnd.init_x) > (vakata_dnd.is_touch ? $.vakata.dnd.settings.threshold_touch : $.vakata.dnd.settings.threshold) || |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7117 Math.abs(e.pageY - vakata_dnd.init_y) > (vakata_dnd.is_touch ? $.vakata.dnd.settings.threshold_touch : $.vakata.dnd.settings.threshold) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7118 ) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7119 if(vakata_dnd.helper) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7120 vakata_dnd.helper.appendTo("body"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7121 vakata_dnd.helper_w = vakata_dnd.helper.outerWidth(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7122 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7123 vakata_dnd.is_drag = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7124 $(vakata_dnd.target).one('click.vakata', false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7125 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7126 * triggered on the document when a drag starts |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7127 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7128 * @plugin dnd |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7129 * @name dnd_start.vakata |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7130 * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7131 * @param {DOM} element the DOM element being dragged |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7132 * @param {jQuery} helper the helper shown next to the mouse |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7133 * @param {Object} event the event that caused the start (probably mousemove) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7134 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7135 $.vakata.dnd._trigger("start", e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7136 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7137 else { return; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7138 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7139 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7140 var d = false, w = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7141 dh = false, wh = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7142 dw = false, ww = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7143 dt = false, dl = false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7144 ht = false, hl = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7145 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7146 vakata_dnd.scroll_t = 0; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7147 vakata_dnd.scroll_l = 0; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7148 vakata_dnd.scroll_e = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7149 $($(e.target).parentsUntil("body").addBack().get().reverse()) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7150 .filter(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7151 return (/^auto|scroll$/).test($(this).css("overflow")) && |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7152 (this.scrollHeight > this.offsetHeight || this.scrollWidth > this.offsetWidth); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7153 }) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7154 .each(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7155 var t = $(this), o = t.offset(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7156 if(this.scrollHeight > this.offsetHeight) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7157 if(o.top + t.height() - e.pageY < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = 1; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7158 if(e.pageY - o.top < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = -1; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7159 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7160 if(this.scrollWidth > this.offsetWidth) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7161 if(o.left + t.width() - e.pageX < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = 1; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7162 if(e.pageX - o.left < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = -1; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7163 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7164 if(vakata_dnd.scroll_t || vakata_dnd.scroll_l) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7165 vakata_dnd.scroll_e = $(this); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7166 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7167 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7168 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7169 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7170 if(!vakata_dnd.scroll_e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7171 d = $(document); w = $(window); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7172 dh = d.height(); wh = w.height(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7173 dw = d.width(); ww = w.width(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7174 dt = d.scrollTop(); dl = d.scrollLeft(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7175 if(dh > wh && e.pageY - dt < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = -1; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7176 if(dh > wh && wh - (e.pageY - dt) < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = 1; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7177 if(dw > ww && e.pageX - dl < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = -1; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7178 if(dw > ww && ww - (e.pageX - dl) < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = 1; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7179 if(vakata_dnd.scroll_t || vakata_dnd.scroll_l) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7180 vakata_dnd.scroll_e = d; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7181 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7182 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7183 if(vakata_dnd.scroll_e) { $.vakata.dnd._scroll(true); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7184 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7185 if(vakata_dnd.helper) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7186 ht = parseInt(e.pageY + $.vakata.dnd.settings.helper_top, 10); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7187 hl = parseInt(e.pageX + $.vakata.dnd.settings.helper_left, 10); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7188 if(dh && ht + 25 > dh) { ht = dh - 50; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7189 if(dw && hl + vakata_dnd.helper_w > dw) { hl = dw - (vakata_dnd.helper_w + 2); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7190 vakata_dnd.helper.css({ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7191 left : hl + "px", |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7192 top : ht + "px" |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7193 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7194 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7195 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7196 * triggered on the document when a drag is in progress |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7197 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7198 * @plugin dnd |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7199 * @name dnd_move.vakata |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7200 * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7201 * @param {DOM} element the DOM element being dragged |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7202 * @param {jQuery} helper the helper shown next to the mouse |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7203 * @param {Object} event the event that caused this to trigger (most likely mousemove) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7204 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7205 $.vakata.dnd._trigger("move", e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7206 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7207 }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7208 stop : function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7209 if(e.type === "touchend" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7210 e.pageX = e.originalEvent.changedTouches[0].pageX; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7211 e.pageY = e.originalEvent.changedTouches[0].pageY; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7212 e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7213 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7214 if(vakata_dnd.is_drag) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7215 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7216 * triggered on the document when a drag stops (the dragged element is dropped) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7217 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7218 * @plugin dnd |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7219 * @name dnd_stop.vakata |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7220 * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7221 * @param {DOM} element the DOM element being dragged |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7222 * @param {jQuery} helper the helper shown next to the mouse |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7223 * @param {Object} event the event that caused the stop |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7224 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7225 if (e.target !== vakata_dnd.target) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7226 $(vakata_dnd.target).off('click.vakata'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7227 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7228 $.vakata.dnd._trigger("stop", e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7229 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7230 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7231 if(e.type === "touchend" && e.target === vakata_dnd.target) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7232 var to = setTimeout(function () { $(e.target).click(); }, 100); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7233 $(e.target).one('click', function() { if(to) { clearTimeout(to); } }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7234 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7235 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7236 $.vakata.dnd._clean(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7237 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7238 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7239 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7240 }($)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7241 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7242 // include the dnd plugin by default |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7243 // $.jstree.defaults.plugins.push("dnd"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7244 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7245 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7246 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7247 * ### Massload plugin |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7248 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7249 * Adds massload functionality to jsTree, so that multiple nodes can be loaded in a single request (only useful with lazy loading). |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7250 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7251 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7252 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7253 * massload configuration |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7254 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7255 * It is possible to set this to a standard jQuery-like AJAX config. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7256 * In addition to the standard jQuery ajax options here you can supply functions for `data` and `url`, the functions will be run in the current instance's scope and a param will be passed indicating which node IDs need to be loaded, the return value of those functions will be used. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7257 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7258 * You can also set this to a function, that function will receive the node IDs being loaded as argument and a second param which is a function (callback) which should be called with the result. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7259 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7260 * Both the AJAX and the function approach rely on the same return value - an object where the keys are the node IDs, and the value is the children of that node as an array. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7261 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7262 * { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7263 * "id1" : [{ "text" : "Child of ID1", "id" : "c1" }, { "text" : "Another child of ID1", "id" : "c2" }], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7264 * "id2" : [{ "text" : "Child of ID2", "id" : "c3" }] |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7265 * } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7266 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7267 * @name $.jstree.defaults.massload |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7268 * @plugin massload |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7269 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7270 $.jstree.defaults.massload = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7271 $.jstree.plugins.massload = function (options, parent) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7272 this.init = function (el, options) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7273 this._data.massload = {}; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7274 parent.init.call(this, el, options); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7275 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7276 this._load_nodes = function (nodes, callback, is_callback, force_reload) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7277 var s = this.settings.massload, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7278 nodesString = JSON.stringify(nodes), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7279 toLoad = [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7280 m = this._model.data, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7281 i, j, dom; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7282 if (!is_callback) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7283 for(i = 0, j = nodes.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7284 if(!m[nodes[i]] || ( (!m[nodes[i]].state.loaded && !m[nodes[i]].state.failed) || force_reload) ) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7285 toLoad.push(nodes[i]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7286 dom = this.get_node(nodes[i], true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7287 if (dom && dom.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7288 dom.addClass("jstree-loading").attr('aria-busy',true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7289 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7290 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7291 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7292 this._data.massload = {}; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7293 if (toLoad.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7294 if($.isFunction(s)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7295 return s.call(this, toLoad, $.proxy(function (data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7296 var i, j; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7297 if(data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7298 for(i in data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7299 if(data.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7300 this._data.massload[i] = data[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7301 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7302 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7303 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7304 for(i = 0, j = nodes.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7305 dom = this.get_node(nodes[i], true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7306 if (dom && dom.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7307 dom.removeClass("jstree-loading").attr('aria-busy',false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7308 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7309 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7310 parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7311 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7312 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7313 if(typeof s === 'object' && s && s.url) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7314 s = $.extend(true, {}, s); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7315 if($.isFunction(s.url)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7316 s.url = s.url.call(this, toLoad); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7317 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7318 if($.isFunction(s.data)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7319 s.data = s.data.call(this, toLoad); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7320 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7321 return $.ajax(s) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7322 .done($.proxy(function (data,t,x) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7323 var i, j; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7324 if(data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7325 for(i in data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7326 if(data.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7327 this._data.massload[i] = data[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7328 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7329 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7330 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7331 for(i = 0, j = nodes.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7332 dom = this.get_node(nodes[i], true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7333 if (dom && dom.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7334 dom.removeClass("jstree-loading").attr('aria-busy',false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7335 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7336 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7337 parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7338 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7339 .fail($.proxy(function (f) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7340 parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7341 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7342 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7343 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7344 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7345 return parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7346 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7347 this._load_node = function (obj, callback) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7348 var data = this._data.massload[obj.id], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7349 rslt = null, dom; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7350 if(data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7351 rslt = this[typeof data === 'string' ? '_append_html_data' : '_append_json_data']( |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7352 obj, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7353 typeof data === 'string' ? $($.parseHTML(data)).filter(function () { return this.nodeType !== 3; }) : data, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7354 function (status) { callback.call(this, status); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7355 ); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7356 dom = this.get_node(obj.id, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7357 if (dom && dom.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7358 dom.removeClass("jstree-loading").attr('aria-busy',false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7359 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7360 delete this._data.massload[obj.id]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7361 return rslt; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7362 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7363 return parent._load_node.call(this, obj, callback); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7364 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7365 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7366 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7367 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7368 * ### Search plugin |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7369 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7370 * Adds search functionality to jsTree. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7371 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7372 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7373 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7374 * stores all defaults for the search plugin |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7375 * @name $.jstree.defaults.search |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7376 * @plugin search |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7377 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7378 $.jstree.defaults.search = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7379 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7380 * a jQuery-like AJAX config, which jstree uses if a server should be queried for results. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7381 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7382 * A `str` (which is the search string) parameter will be added with the request, an optional `inside` parameter will be added if the search is limited to a node id. The expected result is a JSON array with nodes that need to be opened so that matching nodes will be revealed. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7383 * Leave this setting as `false` to not query the server. You can also set this to a function, which will be invoked in the instance's scope and receive 3 parameters - the search string, the callback to call with the array of nodes to load, and the optional node ID to limit the search to |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7384 * @name $.jstree.defaults.search.ajax |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7385 * @plugin search |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7386 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7387 ajax : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7388 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7389 * Indicates if the search should be fuzzy or not (should `chnd3` match `child node 3`). Default is `false`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7390 * @name $.jstree.defaults.search.fuzzy |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7391 * @plugin search |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7392 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7393 fuzzy : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7394 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7395 * Indicates if the search should be case sensitive. Default is `false`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7396 * @name $.jstree.defaults.search.case_sensitive |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7397 * @plugin search |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7398 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7399 case_sensitive : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7400 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7401 * Indicates if the tree should be filtered (by default) to show only matching nodes (keep in mind this can be a heavy on large trees in old browsers). |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7402 * This setting can be changed at runtime when calling the search method. Default is `false`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7403 * @name $.jstree.defaults.search.show_only_matches |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7404 * @plugin search |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7405 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7406 show_only_matches : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7407 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7408 * Indicates if the children of matched element are shown (when show_only_matches is true) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7409 * This setting can be changed at runtime when calling the search method. Default is `false`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7410 * @name $.jstree.defaults.search.show_only_matches_children |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7411 * @plugin search |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7412 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7413 show_only_matches_children : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7414 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7415 * Indicates if all nodes opened to reveal the search result, should be closed when the search is cleared or a new search is performed. Default is `true`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7416 * @name $.jstree.defaults.search.close_opened_onclear |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7417 * @plugin search |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7418 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7419 close_opened_onclear : true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7420 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7421 * Indicates if only leaf nodes should be included in search results. Default is `false`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7422 * @name $.jstree.defaults.search.search_leaves_only |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7423 * @plugin search |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7424 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7425 search_leaves_only : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7426 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7427 * If set to a function it wil be called in the instance's scope with two arguments - search string and node (where node will be every node in the structure, so use with caution). |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7428 * If the function returns a truthy value the node will be considered a match (it might not be displayed if search_only_leaves is set to true and the node is not a leaf). Default is `false`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7429 * @name $.jstree.defaults.search.search_callback |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7430 * @plugin search |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7431 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7432 search_callback : false |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7433 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7434 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7435 $.jstree.plugins.search = function (options, parent) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7436 this.bind = function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7437 parent.bind.call(this); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7438 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7439 this._data.search.str = ""; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7440 this._data.search.dom = $(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7441 this._data.search.res = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7442 this._data.search.opn = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7443 this._data.search.som = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7444 this._data.search.smc = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7445 this._data.search.hdn = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7446 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7447 this.element |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7448 .on("search.jstree", $.proxy(function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7449 if(this._data.search.som && data.res.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7450 var m = this._model.data, i, j, p = [], k, l; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7451 for(i = 0, j = data.res.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7452 if(m[data.res[i]] && !m[data.res[i]].state.hidden) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7453 p.push(data.res[i]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7454 p = p.concat(m[data.res[i]].parents); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7455 if(this._data.search.smc) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7456 for (k = 0, l = m[data.res[i]].children_d.length; k < l; k++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7457 if (m[m[data.res[i]].children_d[k]] && !m[m[data.res[i]].children_d[k]].state.hidden) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7458 p.push(m[data.res[i]].children_d[k]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7459 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7460 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7461 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7462 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7463 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7464 p = $.vakata.array_remove_item($.vakata.array_unique(p), $.jstree.root); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7465 this._data.search.hdn = this.hide_all(true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7466 this.show_node(p, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7467 this.redraw(true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7468 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7469 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7470 .on("clear_search.jstree", $.proxy(function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7471 if(this._data.search.som && data.res.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7472 this.show_node(this._data.search.hdn, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7473 this.redraw(true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7474 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7475 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7476 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7477 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7478 * used to search the tree nodes for a given string |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7479 * @name search(str [, skip_async]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7480 * @param {String} str the search string |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7481 * @param {Boolean} skip_async if set to true server will not be queried even if configured |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7482 * @param {Boolean} show_only_matches if set to true only matching nodes will be shown (keep in mind this can be very slow on large trees or old browsers) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7483 * @param {mixed} inside an optional node to whose children to limit the search |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7484 * @param {Boolean} append if set to true the results of this search are appended to the previous search |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7485 * @plugin search |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7486 * @trigger search.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7487 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7488 this.search = function (str, skip_async, show_only_matches, inside, append, show_only_matches_children) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7489 if(str === false || $.trim(str.toString()) === "") { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7490 return this.clear_search(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7491 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7492 inside = this.get_node(inside); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7493 inside = inside && inside.id ? inside.id : null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7494 str = str.toString(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7495 var s = this.settings.search, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7496 a = s.ajax ? s.ajax : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7497 m = this._model.data, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7498 f = null, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7499 r = [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7500 p = [], i, j; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7501 if(this._data.search.res.length && !append) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7502 this.clear_search(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7503 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7504 if(show_only_matches === undefined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7505 show_only_matches = s.show_only_matches; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7506 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7507 if(show_only_matches_children === undefined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7508 show_only_matches_children = s.show_only_matches_children; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7509 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7510 if(!skip_async && a !== false) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7511 if($.isFunction(a)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7512 return a.call(this, str, $.proxy(function (d) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7513 if(d && d.d) { d = d.d; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7514 this._load_nodes(!$.isArray(d) ? [] : $.vakata.array_unique(d), function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7515 this.search(str, true, show_only_matches, inside, append, show_only_matches_children); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7516 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7517 }, this), inside); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7518 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7519 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7520 a = $.extend({}, a); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7521 if(!a.data) { a.data = {}; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7522 a.data.str = str; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7523 if(inside) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7524 a.data.inside = inside; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7525 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7526 if (this._data.search.lastRequest) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7527 this._data.search.lastRequest.abort(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7528 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7529 this._data.search.lastRequest = $.ajax(a) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7530 .fail($.proxy(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7531 this._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'search', 'id' : 'search_01', 'reason' : 'Could not load search parents', 'data' : JSON.stringify(a) }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7532 this.settings.core.error.call(this, this._data.core.last_error); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7533 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7534 .done($.proxy(function (d) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7535 if(d && d.d) { d = d.d; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7536 this._load_nodes(!$.isArray(d) ? [] : $.vakata.array_unique(d), function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7537 this.search(str, true, show_only_matches, inside, append, show_only_matches_children); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7538 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7539 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7540 return this._data.search.lastRequest; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7541 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7542 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7543 if(!append) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7544 this._data.search.str = str; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7545 this._data.search.dom = $(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7546 this._data.search.res = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7547 this._data.search.opn = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7548 this._data.search.som = show_only_matches; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7549 this._data.search.smc = show_only_matches_children; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7550 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7551 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7552 f = new $.vakata.search(str, true, { caseSensitive : s.case_sensitive, fuzzy : s.fuzzy }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7553 $.each(m[inside ? inside : $.jstree.root].children_d, function (ii, i) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7554 var v = m[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7555 if(v.text && !v.state.hidden && (!s.search_leaves_only || (v.state.loaded && v.children.length === 0)) && ( (s.search_callback && s.search_callback.call(this, str, v)) || (!s.search_callback && f.search(v.text).isMatch) ) ) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7556 r.push(i); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7557 p = p.concat(v.parents); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7558 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7559 }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7560 if(r.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7561 p = $.vakata.array_unique(p); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7562 for(i = 0, j = p.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7563 if(p[i] !== $.jstree.root && m[p[i]] && this.open_node(p[i], null, 0) === true) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7564 this._data.search.opn.push(p[i]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7565 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7566 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7567 if(!append) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7568 this._data.search.dom = $(this.element[0].querySelectorAll('#' + $.map(r, function (v) { return "0123456789".indexOf(v[0]) !== -1 ? '\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\$&') : v.replace($.jstree.idregex,'\\$&'); }).join(', #'))); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7569 this._data.search.res = r; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7570 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7571 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7572 this._data.search.dom = this._data.search.dom.add($(this.element[0].querySelectorAll('#' + $.map(r, function (v) { return "0123456789".indexOf(v[0]) !== -1 ? '\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\$&') : v.replace($.jstree.idregex,'\\$&'); }).join(', #')))); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7573 this._data.search.res = $.vakata.array_unique(this._data.search.res.concat(r)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7574 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7575 this._data.search.dom.children(".jstree-anchor").addClass('jstree-search'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7576 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7577 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7578 * triggered after search is complete |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7579 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7580 * @name search.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7581 * @param {jQuery} nodes a jQuery collection of matching nodes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7582 * @param {String} str the search string |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7583 * @param {Array} res a collection of objects represeing the matching nodes |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7584 * @plugin search |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7585 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7586 this.trigger('search', { nodes : this._data.search.dom, str : str, res : this._data.search.res, show_only_matches : show_only_matches }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7587 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7588 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7589 * used to clear the last search (removes classes and shows all nodes if filtering is on) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7590 * @name clear_search() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7591 * @plugin search |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7592 * @trigger clear_search.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7593 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7594 this.clear_search = function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7595 if(this.settings.search.close_opened_onclear) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7596 this.close_node(this._data.search.opn, 0); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7597 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7598 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7599 * triggered after search is complete |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7600 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7601 * @name clear_search.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7602 * @param {jQuery} nodes a jQuery collection of matching nodes (the result from the last search) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7603 * @param {String} str the search string (the last search string) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7604 * @param {Array} res a collection of objects represeing the matching nodes (the result from the last search) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7605 * @plugin search |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7606 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7607 this.trigger('clear_search', { 'nodes' : this._data.search.dom, str : this._data.search.str, res : this._data.search.res }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7608 if(this._data.search.res.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7609 this._data.search.dom = $(this.element[0].querySelectorAll('#' + $.map(this._data.search.res, function (v) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7610 return "0123456789".indexOf(v[0]) !== -1 ? '\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\$&') : v.replace($.jstree.idregex,'\\$&'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7611 }).join(', #'))); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7612 this._data.search.dom.children(".jstree-anchor").removeClass("jstree-search"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7613 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7614 this._data.search.str = ""; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7615 this._data.search.res = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7616 this._data.search.opn = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7617 this._data.search.dom = $(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7618 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7619 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7620 this.redraw_node = function(obj, deep, callback, force_render) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7621 obj = parent.redraw_node.apply(this, arguments); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7622 if(obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7623 if($.inArray(obj.id, this._data.search.res) !== -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7624 var i, j, tmp = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7625 for(i = 0, j = obj.childNodes.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7626 if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7627 tmp = obj.childNodes[i]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7628 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7629 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7630 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7631 if(tmp) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7632 tmp.className += ' jstree-search'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7633 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7634 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7635 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7636 return obj; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7637 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7638 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7639 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7640 // helpers |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7641 (function ($) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7642 // from http://kiro.me/projects/fuse.html |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7643 $.vakata.search = function(pattern, txt, options) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7644 options = options || {}; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7645 options = $.extend({}, $.vakata.search.defaults, options); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7646 if(options.fuzzy !== false) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7647 options.fuzzy = true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7648 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7649 pattern = options.caseSensitive ? pattern : pattern.toLowerCase(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7650 var MATCH_LOCATION = options.location, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7651 MATCH_DISTANCE = options.distance, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7652 MATCH_THRESHOLD = options.threshold, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7653 patternLen = pattern.length, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7654 matchmask, pattern_alphabet, match_bitapScore, search; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7655 if(patternLen > 32) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7656 options.fuzzy = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7657 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7658 if(options.fuzzy) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7659 matchmask = 1 << (patternLen - 1); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7660 pattern_alphabet = (function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7661 var mask = {}, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7662 i = 0; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7663 for (i = 0; i < patternLen; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7664 mask[pattern.charAt(i)] = 0; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7665 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7666 for (i = 0; i < patternLen; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7667 mask[pattern.charAt(i)] |= 1 << (patternLen - i - 1); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7668 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7669 return mask; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7670 }()); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7671 match_bitapScore = function (e, x) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7672 var accuracy = e / patternLen, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7673 proximity = Math.abs(MATCH_LOCATION - x); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7674 if(!MATCH_DISTANCE) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7675 return proximity ? 1.0 : accuracy; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7676 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7677 return accuracy + (proximity / MATCH_DISTANCE); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7678 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7679 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7680 search = function (text) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7681 text = options.caseSensitive ? text : text.toLowerCase(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7682 if(pattern === text || text.indexOf(pattern) !== -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7683 return { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7684 isMatch: true, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7685 score: 0 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7686 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7687 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7688 if(!options.fuzzy) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7689 return { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7690 isMatch: false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7691 score: 1 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7692 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7693 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7694 var i, j, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7695 textLen = text.length, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7696 scoreThreshold = MATCH_THRESHOLD, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7697 bestLoc = text.indexOf(pattern, MATCH_LOCATION), |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7698 binMin, binMid, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7699 binMax = patternLen + textLen, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7700 lastRd, start, finish, rd, charMatch, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7701 score = 1, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7702 locations = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7703 if (bestLoc !== -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7704 scoreThreshold = Math.min(match_bitapScore(0, bestLoc), scoreThreshold); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7705 bestLoc = text.lastIndexOf(pattern, MATCH_LOCATION + patternLen); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7706 if (bestLoc !== -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7707 scoreThreshold = Math.min(match_bitapScore(0, bestLoc), scoreThreshold); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7708 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7709 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7710 bestLoc = -1; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7711 for (i = 0; i < patternLen; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7712 binMin = 0; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7713 binMid = binMax; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7714 while (binMin < binMid) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7715 if (match_bitapScore(i, MATCH_LOCATION + binMid) <= scoreThreshold) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7716 binMin = binMid; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7717 } else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7718 binMax = binMid; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7719 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7720 binMid = Math.floor((binMax - binMin) / 2 + binMin); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7721 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7722 binMax = binMid; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7723 start = Math.max(1, MATCH_LOCATION - binMid + 1); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7724 finish = Math.min(MATCH_LOCATION + binMid, textLen) + patternLen; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7725 rd = new Array(finish + 2); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7726 rd[finish + 1] = (1 << i) - 1; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7727 for (j = finish; j >= start; j--) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7728 charMatch = pattern_alphabet[text.charAt(j - 1)]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7729 if (i === 0) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7730 rd[j] = ((rd[j + 1] << 1) | 1) & charMatch; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7731 } else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7732 rd[j] = ((rd[j + 1] << 1) | 1) & charMatch | (((lastRd[j + 1] | lastRd[j]) << 1) | 1) | lastRd[j + 1]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7733 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7734 if (rd[j] & matchmask) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7735 score = match_bitapScore(i, j - 1); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7736 if (score <= scoreThreshold) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7737 scoreThreshold = score; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7738 bestLoc = j - 1; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7739 locations.push(bestLoc); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7740 if (bestLoc > MATCH_LOCATION) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7741 start = Math.max(1, 2 * MATCH_LOCATION - bestLoc); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7742 } else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7743 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7744 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7745 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7746 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7747 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7748 if (match_bitapScore(i + 1, MATCH_LOCATION) > scoreThreshold) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7749 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7750 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7751 lastRd = rd; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7752 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7753 return { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7754 isMatch: bestLoc >= 0, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7755 score: score |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7756 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7757 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7758 return txt === true ? { 'search' : search } : search(txt); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7759 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7760 $.vakata.search.defaults = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7761 location : 0, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7762 distance : 100, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7763 threshold : 0.6, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7764 fuzzy : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7765 caseSensitive : false |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7766 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7767 }($)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7768 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7769 // include the search plugin by default |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7770 // $.jstree.defaults.plugins.push("search"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7771 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7772 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7773 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7774 * ### Sort plugin |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7775 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7776 * Automatically sorts all siblings in the tree according to a sorting function. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7777 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7778 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7779 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7780 * the settings function used to sort the nodes. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7781 * It is executed in the tree's context, accepts two nodes as arguments and should return `1` or `-1`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7782 * @name $.jstree.defaults.sort |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7783 * @plugin sort |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7784 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7785 $.jstree.defaults.sort = function (a, b) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7786 //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); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7787 return this.get_text(a) > this.get_text(b) ? 1 : -1; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7788 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7789 $.jstree.plugins.sort = function (options, parent) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7790 this.bind = function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7791 parent.bind.call(this); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7792 this.element |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7793 .on("model.jstree", $.proxy(function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7794 this.sort(data.parent, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7795 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7796 .on("rename_node.jstree create_node.jstree", $.proxy(function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7797 this.sort(data.parent || data.node.parent, false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7798 this.redraw_node(data.parent || data.node.parent, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7799 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7800 .on("move_node.jstree copy_node.jstree", $.proxy(function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7801 this.sort(data.parent, false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7802 this.redraw_node(data.parent, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7803 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7804 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7805 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7806 * used to sort a node's children |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7807 * @private |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7808 * @name sort(obj [, deep]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7809 * @param {mixed} obj the node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7810 * @param {Boolean} deep if set to `true` nodes are sorted recursively. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7811 * @plugin sort |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7812 * @trigger search.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7813 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7814 this.sort = function (obj, deep) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7815 var i, j; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7816 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7817 if(obj && obj.children && obj.children.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7818 obj.children.sort($.proxy(this.settings.sort, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7819 if(deep) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7820 for(i = 0, j = obj.children_d.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7821 this.sort(obj.children_d[i], false); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7822 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7823 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7824 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7825 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7826 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7827 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7828 // include the sort plugin by default |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7829 // $.jstree.defaults.plugins.push("sort"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7830 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7831 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7832 * ### State plugin |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7833 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7834 * Saves the state of the tree (selected nodes, opened nodes) on the user's computer using available options (localStorage, cookies, etc) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7835 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7836 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7837 var to = false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7838 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7839 * stores all defaults for the state plugin |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7840 * @name $.jstree.defaults.state |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7841 * @plugin state |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7842 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7843 $.jstree.defaults.state = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7844 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7845 * A string for the key to use when saving the current tree (change if using multiple trees in your project). Defaults to `jstree`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7846 * @name $.jstree.defaults.state.key |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7847 * @plugin state |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7848 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7849 key : 'jstree', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7850 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7851 * A space separated list of events that trigger a state save. Defaults to `changed.jstree open_node.jstree close_node.jstree`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7852 * @name $.jstree.defaults.state.events |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7853 * @plugin state |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7854 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7855 events : 'changed.jstree open_node.jstree close_node.jstree check_node.jstree uncheck_node.jstree', |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7856 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7857 * Time in milliseconds after which the state will expire. Defaults to 'false' meaning - no expire. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7858 * @name $.jstree.defaults.state.ttl |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7859 * @plugin state |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7860 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7861 ttl : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7862 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7863 * A function that will be executed prior to restoring state with one argument - the state object. Can be used to clear unwanted parts of the state. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7864 * @name $.jstree.defaults.state.filter |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7865 * @plugin state |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7866 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7867 filter : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7868 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7869 * Should loaded nodes be restored (setting this to true means that it is possible that the whole tree will be loaded for some users - use with caution). Defaults to `false` |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7870 * @name $.jstree.defaults.state.preserve_loaded |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7871 * @plugin state |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7872 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7873 preserve_loaded : false |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7874 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7875 $.jstree.plugins.state = function (options, parent) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7876 this.bind = function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7877 parent.bind.call(this); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7878 var bind = $.proxy(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7879 this.element.on(this.settings.state.events, $.proxy(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7880 if(to) { clearTimeout(to); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7881 to = setTimeout($.proxy(function () { this.save_state(); }, this), 100); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7882 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7883 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7884 * triggered when the state plugin is finished restoring the state (and immediately after ready if there is no state to restore). |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7885 * @event |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7886 * @name state_ready.jstree |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7887 * @plugin state |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7888 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7889 this.trigger('state_ready'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7890 }, this); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7891 this.element |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7892 .on("ready.jstree", $.proxy(function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7893 this.element.one("restore_state.jstree", bind); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7894 if(!this.restore_state()) { bind(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7895 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7896 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7897 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7898 * save the state |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7899 * @name save_state() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7900 * @plugin state |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7901 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7902 this.save_state = function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7903 var tm = this.get_state(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7904 if (!this.settings.state.preserve_loaded) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7905 delete tm.core.loaded; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7906 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7907 var st = { 'state' : tm, 'ttl' : this.settings.state.ttl, 'sec' : +(new Date()) }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7908 $.vakata.storage.set(this.settings.state.key, JSON.stringify(st)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7909 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7910 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7911 * restore the state from the user's computer |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7912 * @name restore_state() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7913 * @plugin state |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7914 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7915 this.restore_state = function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7916 var k = $.vakata.storage.get(this.settings.state.key); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7917 if(!!k) { try { k = JSON.parse(k); } catch(ex) { return false; } } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7918 if(!!k && k.ttl && k.sec && +(new Date()) - k.sec > k.ttl) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7919 if(!!k && k.state) { k = k.state; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7920 if(!!k && $.isFunction(this.settings.state.filter)) { k = this.settings.state.filter.call(this, k); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7921 if(!!k) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7922 if (!this.settings.state.preserve_loaded) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7923 delete k.core.loaded; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7924 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7925 this.element.one("set_state.jstree", function (e, data) { data.instance.trigger('restore_state', { 'state' : $.extend(true, {}, k) }); }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7926 this.set_state(k); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7927 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7928 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7929 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7930 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7931 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7932 * clear the state on the user's computer |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7933 * @name clear_state() |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7934 * @plugin state |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7935 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7936 this.clear_state = function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7937 return $.vakata.storage.del(this.settings.state.key); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7938 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7939 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7940 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7941 (function ($, undefined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7942 $.vakata.storage = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7943 // simply specifying the functions in FF throws an error |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7944 set : function (key, val) { return window.localStorage.setItem(key, val); }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7945 get : function (key) { return window.localStorage.getItem(key); }, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7946 del : function (key) { return window.localStorage.removeItem(key); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7947 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7948 }($)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7949 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7950 // include the state plugin by default |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7951 // $.jstree.defaults.plugins.push("state"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7952 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7953 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7954 * ### Types plugin |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7955 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7956 * Makes it possible to add predefined types for groups of nodes, which make it possible to easily control nesting rules and icon for each group. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7957 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7958 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7959 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7960 * An object storing all types as key value pairs, where the key is the type name and the value is an object that could contain following keys (all optional). |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7961 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7962 * * `max_children` the maximum number of immediate children this node type can have. Do not specify or set to `-1` for unlimited. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7963 * * `max_depth` the maximum number of nesting this node type can have. A value of `1` would mean that the node can have children, but no grandchildren. Do not specify or set to `-1` for unlimited. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7964 * * `valid_children` an array of node type strings, that nodes of this type can have as children. Do not specify or set to `-1` for no limits. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7965 * * `icon` a string - can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class. Omit to use the default icon from your theme. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7966 * * `li_attr` an object of values which will be used to add HTML attributes on the resulting LI DOM node (merged with the node's own data) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7967 * * `a_attr` an object of values which will be used to add HTML attributes on the resulting A DOM node (merged with the node's own data) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7968 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7969 * There are two predefined types: |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7970 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7971 * * `#` represents the root of the tree, for example `max_children` would control the maximum number of root nodes. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7972 * * `default` represents the default node - any settings here will be applied to all nodes that do not have a type specified. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7973 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7974 * @name $.jstree.defaults.types |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7975 * @plugin types |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7976 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7977 $.jstree.defaults.types = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7978 'default' : {} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7979 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7980 $.jstree.defaults.types[$.jstree.root] = {}; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7981 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7982 $.jstree.plugins.types = function (options, parent) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7983 this.init = function (el, options) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7984 var i, j; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7985 if(options && options.types && options.types['default']) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7986 for(i in options.types) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7987 if(i !== "default" && i !== $.jstree.root && options.types.hasOwnProperty(i)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7988 for(j in options.types['default']) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7989 if(options.types['default'].hasOwnProperty(j) && options.types[i][j] === undefined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7990 options.types[i][j] = options.types['default'][j]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7991 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7992 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7993 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7994 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7995 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7996 parent.init.call(this, el, options); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7997 this._model.data[$.jstree.root].type = $.jstree.root; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7998 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
7999 this.refresh = function (skip_loading, forget_state) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8000 parent.refresh.call(this, skip_loading, forget_state); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8001 this._model.data[$.jstree.root].type = $.jstree.root; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8002 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8003 this.bind = function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8004 this.element |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8005 .on('model.jstree', $.proxy(function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8006 var m = this._model.data, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8007 dpc = data.nodes, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8008 t = this.settings.types, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8009 i, j, c = 'default', k; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8010 for(i = 0, j = dpc.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8011 c = 'default'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8012 if(m[dpc[i]].original && m[dpc[i]].original.type && t[m[dpc[i]].original.type]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8013 c = m[dpc[i]].original.type; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8014 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8015 if(m[dpc[i]].data && m[dpc[i]].data.jstree && m[dpc[i]].data.jstree.type && t[m[dpc[i]].data.jstree.type]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8016 c = m[dpc[i]].data.jstree.type; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8017 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8018 m[dpc[i]].type = c; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8019 if(m[dpc[i]].icon === true && t[c].icon !== undefined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8020 m[dpc[i]].icon = t[c].icon; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8021 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8022 if(t[c].li_attr !== undefined && typeof t[c].li_attr === 'object') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8023 for (k in t[c].li_attr) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8024 if (t[c].li_attr.hasOwnProperty(k)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8025 if (k === 'id') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8026 continue; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8027 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8028 else if (m[dpc[i]].li_attr[k] === undefined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8029 m[dpc[i]].li_attr[k] = t[c].li_attr[k]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8030 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8031 else if (k === 'class') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8032 m[dpc[i]].li_attr['class'] = t[c].li_attr['class'] + ' ' + m[dpc[i]].li_attr['class']; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8033 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8034 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8035 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8036 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8037 if(t[c].a_attr !== undefined && typeof t[c].a_attr === 'object') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8038 for (k in t[c].a_attr) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8039 if (t[c].a_attr.hasOwnProperty(k)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8040 if (k === 'id') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8041 continue; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8042 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8043 else if (m[dpc[i]].a_attr[k] === undefined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8044 m[dpc[i]].a_attr[k] = t[c].a_attr[k]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8045 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8046 else if (k === 'href' && m[dpc[i]].a_attr[k] === '#') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8047 m[dpc[i]].a_attr['href'] = t[c].a_attr['href']; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8048 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8049 else if (k === 'class') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8050 m[dpc[i]].a_attr['class'] = t[c].a_attr['class'] + ' ' + m[dpc[i]].a_attr['class']; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8051 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8052 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8053 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8054 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8055 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8056 m[$.jstree.root].type = $.jstree.root; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8057 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8058 parent.bind.call(this); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8059 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8060 this.get_json = function (obj, options, flat) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8061 var i, j, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8062 m = this._model.data, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8063 opt = options ? $.extend(true, {}, options, {no_id:false}) : {}, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8064 tmp = parent.get_json.call(this, obj, opt, flat); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8065 if(tmp === false) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8066 if($.isArray(tmp)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8067 for(i = 0, j = tmp.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8068 tmp[i].type = tmp[i].id && m[tmp[i].id] && m[tmp[i].id].type ? m[tmp[i].id].type : "default"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8069 if(options && options.no_id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8070 delete tmp[i].id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8071 if(tmp[i].li_attr && tmp[i].li_attr.id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8072 delete tmp[i].li_attr.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8073 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8074 if(tmp[i].a_attr && tmp[i].a_attr.id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8075 delete tmp[i].a_attr.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8076 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8077 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8078 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8079 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8080 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8081 tmp.type = tmp.id && m[tmp.id] && m[tmp.id].type ? m[tmp.id].type : "default"; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8082 if(options && options.no_id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8083 tmp = this._delete_ids(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8084 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8085 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8086 return tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8087 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8088 this._delete_ids = function (tmp) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8089 if($.isArray(tmp)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8090 for(var i = 0, j = tmp.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8091 tmp[i] = this._delete_ids(tmp[i]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8092 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8093 return tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8094 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8095 delete tmp.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8096 if(tmp.li_attr && tmp.li_attr.id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8097 delete tmp.li_attr.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8098 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8099 if(tmp.a_attr && tmp.a_attr.id) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8100 delete tmp.a_attr.id; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8101 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8102 if(tmp.children && $.isArray(tmp.children)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8103 tmp.children = this._delete_ids(tmp.children); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8104 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8105 return tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8106 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8107 this.check = function (chk, obj, par, pos, more) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8108 if(parent.check.call(this, chk, obj, par, pos, more) === false) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8109 obj = obj && obj.id ? obj : this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8110 par = par && par.id ? par : this.get_node(par); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8111 var m = obj && obj.id ? (more && more.origin ? more.origin : $.jstree.reference(obj.id)) : null, tmp, d, i, j; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8112 m = m && m._model && m._model.data ? m._model.data : null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8113 switch(chk) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8114 case "create_node": |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8115 case "move_node": |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8116 case "copy_node": |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8117 if(chk !== 'move_node' || $.inArray(obj.id, par.children) === -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8118 tmp = this.get_rules(par); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8119 if(tmp.max_children !== undefined && tmp.max_children !== -1 && tmp.max_children === par.children.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8120 this._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_01', 'reason' : 'max_children prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8121 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8122 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8123 if(tmp.valid_children !== undefined && tmp.valid_children !== -1 && $.inArray((obj.type || 'default'), tmp.valid_children) === -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8124 this._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_02', 'reason' : 'valid_children prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8125 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8126 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8127 if(m && obj.children_d && obj.parents) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8128 d = 0; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8129 for(i = 0, j = obj.children_d.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8130 d = Math.max(d, m[obj.children_d[i]].parents.length); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8131 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8132 d = d - obj.parents.length + 1; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8133 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8134 if(d <= 0 || d === undefined) { d = 1; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8135 do { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8136 if(tmp.max_depth !== undefined && tmp.max_depth !== -1 && tmp.max_depth < d) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8137 this._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_03', 'reason' : 'max_depth prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8138 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8139 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8140 par = this.get_node(par.parent); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8141 tmp = this.get_rules(par); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8142 d++; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8143 } while(par); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8144 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8145 break; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8146 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8147 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8148 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8149 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8150 * used to retrieve the type settings object for a node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8151 * @name get_rules(obj) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8152 * @param {mixed} obj the node to find the rules for |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8153 * @return {Object} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8154 * @plugin types |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8155 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8156 this.get_rules = function (obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8157 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8158 if(!obj) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8159 var tmp = this.get_type(obj, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8160 if(tmp.max_depth === undefined) { tmp.max_depth = -1; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8161 if(tmp.max_children === undefined) { tmp.max_children = -1; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8162 if(tmp.valid_children === undefined) { tmp.valid_children = -1; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8163 return tmp; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8164 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8165 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8166 * used to retrieve the type string or settings object for a node |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8167 * @name get_type(obj [, rules]) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8168 * @param {mixed} obj the node to find the rules for |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8169 * @param {Boolean} rules if set to `true` instead of a string the settings object will be returned |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8170 * @return {String|Object} |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8171 * @plugin types |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8172 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8173 this.get_type = function (obj, rules) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8174 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8175 return (!obj) ? false : ( rules ? $.extend({ 'type' : obj.type }, this.settings.types[obj.type]) : obj.type); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8176 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8177 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8178 * used to change a node's type |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8179 * @name set_type(obj, type) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8180 * @param {mixed} obj the node to change |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8181 * @param {String} type the new type |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8182 * @plugin types |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8183 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8184 this.set_type = function (obj, type) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8185 var m = this._model.data, t, t1, t2, old_type, old_icon, k, d, a; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8186 if($.isArray(obj)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8187 obj = obj.slice(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8188 for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8189 this.set_type(obj[t1], type); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8190 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8191 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8192 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8193 t = this.settings.types; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8194 obj = this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8195 if(!t[type] || !obj) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8196 d = this.get_node(obj, true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8197 if (d && d.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8198 a = d.children('.jstree-anchor'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8199 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8200 old_type = obj.type; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8201 old_icon = this.get_icon(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8202 obj.type = type; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8203 if(old_icon === true || !t[old_type] || (t[old_type].icon !== undefined && old_icon === t[old_type].icon)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8204 this.set_icon(obj, t[type].icon !== undefined ? t[type].icon : true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8205 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8206 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8207 // remove old type props |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8208 if(t[old_type] && t[old_type].li_attr !== undefined && typeof t[old_type].li_attr === 'object') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8209 for (k in t[old_type].li_attr) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8210 if (t[old_type].li_attr.hasOwnProperty(k)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8211 if (k === 'id') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8212 continue; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8213 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8214 else if (k === 'class') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8215 m[obj.id].li_attr['class'] = (m[obj.id].li_attr['class'] || '').replace(t[old_type].li_attr[k], ''); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8216 if (d) { d.removeClass(t[old_type].li_attr[k]); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8217 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8218 else if (m[obj.id].li_attr[k] === t[old_type].li_attr[k]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8219 m[obj.id].li_attr[k] = null; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8220 if (d) { d.removeAttr(k); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8221 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8222 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8223 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8224 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8225 if(t[old_type] && t[old_type].a_attr !== undefined && typeof t[old_type].a_attr === 'object') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8226 for (k in t[old_type].a_attr) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8227 if (t[old_type].a_attr.hasOwnProperty(k)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8228 if (k === 'id') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8229 continue; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8230 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8231 else if (k === 'class') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8232 m[obj.id].a_attr['class'] = (m[obj.id].a_attr['class'] || '').replace(t[old_type].a_attr[k], ''); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8233 if (a) { a.removeClass(t[old_type].a_attr[k]); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8234 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8235 else if (m[obj.id].a_attr[k] === t[old_type].a_attr[k]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8236 if (k === 'href') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8237 m[obj.id].a_attr[k] = '#'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8238 if (a) { a.attr('href', '#'); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8239 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8240 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8241 delete m[obj.id].a_attr[k]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8242 if (a) { a.removeAttr(k); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8243 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8244 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8245 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8246 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8247 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8248 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8249 // add new props |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8250 if(t[type].li_attr !== undefined && typeof t[type].li_attr === 'object') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8251 for (k in t[type].li_attr) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8252 if (t[type].li_attr.hasOwnProperty(k)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8253 if (k === 'id') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8254 continue; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8255 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8256 else if (m[obj.id].li_attr[k] === undefined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8257 m[obj.id].li_attr[k] = t[type].li_attr[k]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8258 if (d) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8259 if (k === 'class') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8260 d.addClass(t[type].li_attr[k]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8261 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8262 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8263 d.attr(k, t[type].li_attr[k]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8264 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8265 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8266 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8267 else if (k === 'class') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8268 m[obj.id].li_attr['class'] = t[type].li_attr[k] + ' ' + m[obj.id].li_attr['class']; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8269 if (d) { d.addClass(t[type].li_attr[k]); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8270 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8271 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8272 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8273 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8274 if(t[type].a_attr !== undefined && typeof t[type].a_attr === 'object') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8275 for (k in t[type].a_attr) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8276 if (t[type].a_attr.hasOwnProperty(k)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8277 if (k === 'id') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8278 continue; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8279 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8280 else if (m[obj.id].a_attr[k] === undefined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8281 m[obj.id].a_attr[k] = t[type].a_attr[k]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8282 if (a) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8283 if (k === 'class') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8284 a.addClass(t[type].a_attr[k]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8285 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8286 else { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8287 a.attr(k, t[type].a_attr[k]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8288 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8289 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8290 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8291 else if (k === 'href' && m[obj.id].a_attr[k] === '#') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8292 m[obj.id].a_attr['href'] = t[type].a_attr['href']; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8293 if (a) { a.attr('href', t[type].a_attr['href']); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8294 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8295 else if (k === 'class') { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8296 m[obj.id].a_attr['class'] = t[type].a_attr['class'] + ' ' + m[obj.id].a_attr['class']; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8297 if (a) { a.addClass(t[type].a_attr[k]); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8298 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8299 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8300 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8301 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8302 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8303 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8304 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8305 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8306 // include the types plugin by default |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8307 // $.jstree.defaults.plugins.push("types"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8308 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8309 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8310 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8311 * ### Unique plugin |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8312 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8313 * Enforces that no nodes with the same name can coexist as siblings. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8314 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8315 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8316 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8317 * stores all defaults for the unique plugin |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8318 * @name $.jstree.defaults.unique |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8319 * @plugin unique |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8320 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8321 $.jstree.defaults.unique = { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8322 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8323 * Indicates if the comparison should be case sensitive. Default is `false`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8324 * @name $.jstree.defaults.unique.case_sensitive |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8325 * @plugin unique |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8326 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8327 case_sensitive : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8328 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8329 * Indicates if white space should be trimmed before the comparison. Default is `false`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8330 * @name $.jstree.defaults.unique.trim_whitespace |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8331 * @plugin unique |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8332 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8333 trim_whitespace : false, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8334 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8335 * A callback executed in the instance's scope when a new node is created and the name is already taken, the two arguments are the conflicting name and the counter. The default will produce results like `New node (2)`. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8336 * @name $.jstree.defaults.unique.duplicate |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8337 * @plugin unique |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8338 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8339 duplicate : function (name, counter) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8340 return name + ' (' + counter + ')'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8341 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8342 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8343 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8344 $.jstree.plugins.unique = function (options, parent) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8345 this.check = function (chk, obj, par, pos, more) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8346 if(parent.check.call(this, chk, obj, par, pos, more) === false) { return false; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8347 obj = obj && obj.id ? obj : this.get_node(obj); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8348 par = par && par.id ? par : this.get_node(par); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8349 if(!par || !par.children) { return true; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8350 var n = chk === "rename_node" ? pos : obj.text, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8351 c = [], |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8352 s = this.settings.unique.case_sensitive, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8353 w = this.settings.unique.trim_whitespace, |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8354 m = this._model.data, i, j, t; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8355 for(i = 0, j = par.children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8356 t = m[par.children[i]].text; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8357 if (!s) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8358 t = t.toLowerCase(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8359 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8360 if (w) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8361 t = t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8362 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8363 c.push(t); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8364 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8365 if(!s) { n = n.toLowerCase(); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8366 if (w) { n = n.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8367 switch(chk) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8368 case "delete_node": |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8369 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8370 case "rename_node": |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8371 t = obj.text || ''; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8372 if (!s) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8373 t = t.toLowerCase(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8374 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8375 if (w) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8376 t = t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8377 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8378 i = ($.inArray(n, c) === -1 || (obj.text && t === n)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8379 if(!i) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8380 this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_01', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8381 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8382 return i; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8383 case "create_node": |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8384 i = ($.inArray(n, c) === -1); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8385 if(!i) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8386 this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_04', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8387 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8388 return i; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8389 case "copy_node": |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8390 i = ($.inArray(n, c) === -1); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8391 if(!i) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8392 this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_02', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8393 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8394 return i; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8395 case "move_node": |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8396 i = ( (obj.parent === par.id && (!more || !more.is_multi)) || $.inArray(n, c) === -1); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8397 if(!i) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8398 this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_03', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8399 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8400 return i; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8401 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8402 return true; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8403 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8404 this.create_node = function (par, node, pos, callback, is_loaded) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8405 if(!node || node.text === undefined) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8406 if(par === null) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8407 par = $.jstree.root; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8408 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8409 par = this.get_node(par); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8410 if(!par) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8411 return parent.create_node.call(this, par, node, pos, callback, is_loaded); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8412 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8413 pos = pos === undefined ? "last" : pos; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8414 if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8415 return parent.create_node.call(this, par, node, pos, callback, is_loaded); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8416 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8417 if(!node) { node = {}; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8418 var tmp, n, dpc, i, j, m = this._model.data, s = this.settings.unique.case_sensitive, w = this.settings.unique.trim_whitespace, cb = this.settings.unique.duplicate, t; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8419 n = tmp = this.get_string('New node'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8420 dpc = []; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8421 for(i = 0, j = par.children.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8422 t = m[par.children[i]].text; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8423 if (!s) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8424 t = t.toLowerCase(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8425 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8426 if (w) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8427 t = t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8428 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8429 dpc.push(t); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8430 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8431 i = 1; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8432 t = n; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8433 if (!s) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8434 t = t.toLowerCase(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8435 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8436 if (w) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8437 t = t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8438 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8439 while($.inArray(t, dpc) !== -1) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8440 n = cb.call(this, tmp, (++i)).toString(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8441 t = n; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8442 if (!s) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8443 t = t.toLowerCase(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8444 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8445 if (w) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8446 t = t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8447 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8448 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8449 node.text = n; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8450 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8451 return parent.create_node.call(this, par, node, pos, callback, is_loaded); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8452 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8453 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8454 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8455 // include the unique plugin by default |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8456 // $.jstree.defaults.plugins.push("unique"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8457 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8458 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8459 /** |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8460 * ### Wholerow plugin |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8461 * |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8462 * Makes each node appear block level. Making selection easier. May cause slow down for large trees in old browsers. |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8463 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8464 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8465 var div = document.createElement('DIV'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8466 div.setAttribute('unselectable','on'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8467 div.setAttribute('role','presentation'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8468 div.className = 'jstree-wholerow'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8469 div.innerHTML = ' '; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8470 $.jstree.plugins.wholerow = function (options, parent) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8471 this.bind = function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8472 parent.bind.call(this); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8473 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8474 this.element |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8475 .on('ready.jstree set_state.jstree', $.proxy(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8476 this.hide_dots(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8477 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8478 .on("init.jstree loading.jstree ready.jstree", $.proxy(function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8479 //div.style.height = this._data.core.li_height + 'px'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8480 this.get_container_ul().addClass('jstree-wholerow-ul'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8481 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8482 .on("deselect_all.jstree", $.proxy(function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8483 this.element.find('.jstree-wholerow-clicked').removeClass('jstree-wholerow-clicked'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8484 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8485 .on("changed.jstree", $.proxy(function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8486 this.element.find('.jstree-wholerow-clicked').removeClass('jstree-wholerow-clicked'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8487 var tmp = false, i, j; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8488 for(i = 0, j = data.selected.length; i < j; i++) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8489 tmp = this.get_node(data.selected[i], true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8490 if(tmp && tmp.length) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8491 tmp.children('.jstree-wholerow').addClass('jstree-wholerow-clicked'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8492 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8493 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8494 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8495 .on("open_node.jstree", $.proxy(function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8496 this.get_node(data.node, true).find('.jstree-clicked').parent().children('.jstree-wholerow').addClass('jstree-wholerow-clicked'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8497 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8498 .on("hover_node.jstree dehover_node.jstree", $.proxy(function (e, data) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8499 if(e.type === "hover_node" && this.is_disabled(data.node)) { return; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8500 this.get_node(data.node, true).children('.jstree-wholerow')[e.type === "hover_node"?"addClass":"removeClass"]('jstree-wholerow-hovered'); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8501 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8502 .on("contextmenu.jstree", ".jstree-wholerow", $.proxy(function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8503 if (this._data.contextmenu) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8504 e.preventDefault(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8505 var tmp = $.Event('contextmenu', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey, pageX : e.pageX, pageY : e.pageY }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8506 $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8507 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8508 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8509 /*! |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8510 .on("mousedown.jstree touchstart.jstree", ".jstree-wholerow", function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8511 if(e.target === e.currentTarget) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8512 var a = $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8513 e.target = a[0]; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8514 a.trigger(e); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8515 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8516 }) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8517 */ |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8518 .on("click.jstree", ".jstree-wholerow", function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8519 e.stopImmediatePropagation(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8520 var tmp = $.Event('click', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8521 $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp).focus(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8522 }) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8523 .on("dblclick.jstree", ".jstree-wholerow", function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8524 e.stopImmediatePropagation(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8525 var tmp = $.Event('dblclick', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8526 $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp).focus(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8527 }) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8528 .on("click.jstree", ".jstree-leaf > .jstree-ocl", $.proxy(function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8529 e.stopImmediatePropagation(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8530 var tmp = $.Event('click', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8531 $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp).focus(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8532 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8533 .on("mouseover.jstree", ".jstree-wholerow, .jstree-icon", $.proxy(function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8534 e.stopImmediatePropagation(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8535 if(!this.is_disabled(e.currentTarget)) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8536 this.hover_node(e.currentTarget); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8537 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8538 return false; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8539 }, this)) |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8540 .on("mouseleave.jstree", ".jstree-node", $.proxy(function (e) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8541 this.dehover_node(e.currentTarget); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8542 }, this)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8543 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8544 this.teardown = function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8545 if(this.settings.wholerow) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8546 this.element.find(".jstree-wholerow").remove(); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8547 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8548 parent.teardown.call(this); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8549 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8550 this.redraw_node = function(obj, deep, callback, force_render) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8551 obj = parent.redraw_node.apply(this, arguments); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8552 if(obj) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8553 var tmp = div.cloneNode(true); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8554 //tmp.style.height = this._data.core.li_height + 'px'; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8555 if($.inArray(obj.id, this._data.core.selected) !== -1) { tmp.className += ' jstree-wholerow-clicked'; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8556 if(this._data.core.focused && this._data.core.focused === obj.id) { tmp.className += ' jstree-wholerow-hovered'; } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8557 obj.insertBefore(tmp, obj.childNodes[0]); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8558 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8559 return obj; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8560 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8561 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8562 // include the wholerow plugin by default |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8563 // $.jstree.defaults.plugins.push("wholerow"); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8564 if(document.registerElement && Object && Object.create) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8565 var proto = Object.create(HTMLElement.prototype); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8566 proto.createdCallback = function () { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8567 var c = { core : {}, plugins : [] }, i; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8568 for(i in $.jstree.plugins) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8569 if($.jstree.plugins.hasOwnProperty(i) && this.attributes[i]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8570 c.plugins.push(i); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8571 if(this.getAttribute(i) && JSON.parse(this.getAttribute(i))) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8572 c[i] = JSON.parse(this.getAttribute(i)); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8573 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8574 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8575 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8576 for(i in $.jstree.defaults.core) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8577 if($.jstree.defaults.core.hasOwnProperty(i) && this.attributes[i]) { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8578 c.core[i] = JSON.parse(this.getAttribute(i)) || this.getAttribute(i); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8579 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8580 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8581 $(this).jstree(c); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8582 }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8583 // proto.attributeChangedCallback = function (name, previous, value) { }; |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8584 try { |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8585 document.registerElement("vakata-jstree", { prototype: proto }); |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8586 } catch(ignore) { } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8587 } |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8588 |
|
b3e5f4753856
planemo upload commit 104ae24ee30761a0099eeb91362ed1e3e13aba4b-dirty
mingchen0919
parents:
diff
changeset
|
8589 })); |
