Mercurial > repos > mingchen0919 > aurora_deseq2
annotate vakata-jstree-3.3.5/src/jstree.dnd.js @ 9:f8c7138cfc35 draft
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
| author | mingchen0919 |
|---|---|
| date | Thu, 26 Apr 2018 11:47:37 -0400 |
| parents | |
| children |
| rev | line source |
|---|---|
|
9
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
1 /** |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
2 * ### Drag'n'drop plugin |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
3 * |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
4 * Enables dragging and dropping of nodes in the tree, resulting in a move or copy operations. |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
5 */ |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
6 /*globals jQuery, define, exports, require, document */ |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
7 (function (factory) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
8 "use strict"; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
9 if (typeof define === 'function' && define.amd) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
10 define('jstree.dnd', ['jquery','jstree'], factory); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
11 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
12 else if(typeof exports === 'object') { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
13 factory(require('jquery'), require('jstree')); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
14 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
15 else { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
16 factory(jQuery, jQuery.jstree); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
17 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
18 }(function ($, jstree, undefined) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
19 "use strict"; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
20 |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
21 if($.jstree.plugins.dnd) { return; } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
22 |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
23 /** |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
24 * stores all defaults for the drag'n'drop plugin |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
25 * @name $.jstree.defaults.dnd |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
26 * @plugin dnd |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
27 */ |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
28 $.jstree.defaults.dnd = { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
29 /** |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
30 * a boolean indicating if a copy should be possible while dragging (by pressint the meta key or Ctrl). Defaults to `true`. |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
31 * @name $.jstree.defaults.dnd.copy |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
32 * @plugin dnd |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
33 */ |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
34 copy : true, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
35 /** |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
36 * a number indicating how long a node should remain hovered while dragging to be opened. Defaults to `500`. |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
37 * @name $.jstree.defaults.dnd.open_timeout |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
38 * @plugin dnd |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
39 */ |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
40 open_timeout : 500, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
41 /** |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
42 * 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 |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
43 * @name $.jstree.defaults.dnd.is_draggable |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
44 * @plugin dnd |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
45 */ |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
46 is_draggable : true, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
47 /** |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
48 * 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` |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
49 * @name $.jstree.defaults.dnd.check_while_dragging |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
50 * @plugin dnd |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
51 */ |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
52 check_while_dragging : true, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
53 /** |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
54 * a boolean indicating if nodes from this tree should only be copied with dnd (as opposed to moved), default is `false` |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
55 * @name $.jstree.defaults.dnd.always_copy |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
56 * @plugin dnd |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
57 */ |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
58 always_copy : false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
59 /** |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
60 * 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` |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
61 * @name $.jstree.defaults.dnd.inside_pos |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
62 * @plugin dnd |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
63 */ |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
64 inside_pos : 0, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
65 /** |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
66 * 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 |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
67 * @name $.jstree.defaults.dnd.drag_selection |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
68 * @plugin dnd |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
69 */ |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
70 drag_selection : true, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
71 /** |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
72 * 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. |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
73 * @name $.jstree.defaults.dnd.touch |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
74 * @plugin dnd |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
75 */ |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
76 touch : true, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
77 /** |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
78 * 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. |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
79 * @name $.jstree.defaults.dnd.large_drop_target |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
80 * @plugin dnd |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
81 */ |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
82 large_drop_target : false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
83 /** |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
84 * 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". |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
85 * @name $.jstree.defaults.dnd.large_drag_target |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
86 * @plugin dnd |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
87 */ |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
88 large_drag_target : false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
89 /** |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
90 * controls whether use HTML5 dnd api instead of classical. That will allow better integration of dnd events with other HTML5 controls. |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
91 * @reference http://caniuse.com/#feat=dragndrop |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
92 * @name $.jstree.defaults.dnd.use_html5 |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
93 * @plugin dnd |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
94 */ |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
95 use_html5: false |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
96 }; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
97 var drg, elm; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
98 // TODO: now check works by checking for each node individually, how about max_children, unique, etc? |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
99 $.jstree.plugins.dnd = function (options, parent) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
100 this.init = function (el, options) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
101 parent.init.call(this, el, options); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
102 this.settings.dnd.use_html5 = this.settings.dnd.use_html5 && ('draggable' in document.createElement('span')); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
103 }; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
104 this.bind = function () { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
105 parent.bind.call(this); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
106 |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
107 this.element |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
108 .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) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
109 if(this.settings.dnd.large_drag_target && $(e.target).closest('.jstree-node')[0] !== e.currentTarget) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
110 return true; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
111 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
112 if(e.type === "touchstart" && (!this.settings.dnd.touch || (this.settings.dnd.touch === 'selected' && !$(e.currentTarget).closest('.jstree-node').children('.jstree-anchor').hasClass('jstree-clicked')))) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
113 return true; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
114 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
115 var obj = this.get_node(e.target), |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
116 mlt = this.is_selected(obj) && this.settings.dnd.drag_selection ? this.get_top_selected().length : 1, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
117 txt = (mlt > 1 ? mlt + ' ' + this.get_string('nodes') : this.get_text(e.currentTarget)); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
118 if(this.settings.core.force_text) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
119 txt = $.vakata.html.escape(txt); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
120 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
121 if(obj && obj.id && obj.id !== $.jstree.root && (e.which === 1 || e.type === "touchstart" || e.type === "dragstart") && |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
122 (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))) |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
123 ) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
124 drg = { 'jstree' : true, 'origin' : this, 'obj' : this.get_node(obj,true), 'nodes' : mlt > 1 ? this.get_top_selected() : [obj.id] }; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
125 elm = e.currentTarget; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
126 if (this.settings.dnd.use_html5) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
127 $.vakata.dnd._trigger('start', e, { 'helper': $(), 'element': elm, 'data': drg }); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
128 } else { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
129 this.element.trigger('mousedown.jstree'); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
130 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>'); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
131 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
132 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
133 }, this)); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
134 if (this.settings.dnd.use_html5) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
135 this.element |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
136 .on('dragover.jstree', function (e) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
137 e.preventDefault(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
138 $.vakata.dnd._trigger('move', e, { 'helper': $(), 'element': elm, 'data': drg }); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
139 return false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
140 }) |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
141 //.on('dragenter.jstree', this.settings.dnd.large_drop_target ? '.jstree-node' : '.jstree-anchor', $.proxy(function (e) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
142 // e.preventDefault(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
143 // $.vakata.dnd._trigger('move', e, { 'helper': $(), 'element': elm, 'data': drg }); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
144 // return false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
145 // }, this)) |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
146 .on('drop.jstree', $.proxy(function (e) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
147 e.preventDefault(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
148 $.vakata.dnd._trigger('stop', e, { 'helper': $(), 'element': elm, 'data': drg }); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
149 return false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
150 }, this)); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
151 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
152 }; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
153 this.redraw_node = function(obj, deep, callback, force_render) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
154 obj = parent.redraw_node.apply(this, arguments); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
155 if (obj && this.settings.dnd.use_html5) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
156 if (this.settings.dnd.large_drag_target) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
157 obj.setAttribute('draggable', true); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
158 } else { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
159 var i, j, tmp = null; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
160 for(i = 0, j = obj.childNodes.length; i < j; i++) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
161 if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
162 tmp = obj.childNodes[i]; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
163 break; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
164 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
165 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
166 if(tmp) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
167 tmp.setAttribute('draggable', true); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
168 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
169 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
170 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
171 return obj; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
172 }; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
173 }; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
174 |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
175 $(function() { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
176 // bind only once for all instances |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
177 var lastmv = false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
178 laster = false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
179 lastev = false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
180 opento = false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
181 marker = $('<div id="jstree-marker"> </div>').hide(); //.appendTo('body'); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
182 |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
183 $(document) |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
184 .on('dnd_start.vakata.jstree', function (e, data) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
185 lastmv = false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
186 lastev = false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
187 if(!data || !data.data || !data.data.jstree) { return; } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
188 marker.appendTo('body'); //.show(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
189 }) |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
190 .on('dnd_move.vakata.jstree', function (e, data) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
191 var isDifferentNode = data.event.target !== lastev.target; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
192 if(opento) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
193 if (!data.event || data.event.type !== 'dragover' || isDifferentNode) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
194 clearTimeout(opento); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
195 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
196 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
197 if(!data || !data.data || !data.data.jstree) { return; } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
198 |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
199 // if we are hovering the marker image do nothing (can happen on "inside" drags) |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
200 if(data.event.target.id && data.event.target.id === 'jstree-marker') { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
201 return; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
202 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
203 lastev = data.event; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
204 |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
205 var ins = $.jstree.reference(data.event.target), |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
206 ref = false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
207 off = false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
208 rel = false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
209 tmp, l, t, h, p, i, o, ok, t1, t2, op, ps, pr, ip, tm, is_copy, pn; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
210 // if we are over an instance |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
211 if(ins && ins._data && ins._data.dnd) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
212 marker.attr('class', 'jstree-' + ins.get_theme() + ( ins.settings.core.themes.responsive ? ' jstree-dnd-responsive' : '' )); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
213 is_copy = data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
214 data.helper |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
215 .children().attr('class', 'jstree-' + ins.get_theme() + ' jstree-' + ins.get_theme() + '-' + ins.get_theme_variant() + ' ' + ( ins.settings.core.themes.responsive ? ' jstree-dnd-responsive' : '' )) |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
216 .find('.jstree-copy').first()[ is_copy ? 'show' : 'hide' ](); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
217 |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
218 // if are hovering the container itself add a new root node |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
219 //console.log(data.event); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
220 if( (data.event.target === ins.element[0] || data.event.target === ins.get_container_ul()[0]) && ins.get_container_ul().children().length === 0) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
221 ok = true; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
222 for(t1 = 0, t2 = data.data.nodes.length; t1 < t2; t1++) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
223 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) }); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
224 if(!ok) { break; } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
225 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
226 if(ok) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
227 lastmv = { 'ins' : ins, 'par' : $.jstree.root, 'pos' : 'last' }; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
228 marker.hide(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
229 data.helper.find('.jstree-icon').first().removeClass('jstree-er').addClass('jstree-ok'); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
230 if (data.event.originalEvent && data.event.originalEvent.dataTransfer) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
231 data.event.originalEvent.dataTransfer.dropEffect = is_copy ? 'copy' : 'move'; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
232 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
233 return; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
234 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
235 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
236 else { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
237 // if we are hovering a tree node |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
238 ref = ins.settings.dnd.large_drop_target ? $(data.event.target).closest('.jstree-node').children('.jstree-anchor') : $(data.event.target).closest('.jstree-anchor'); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
239 if(ref && ref.length && ref.parent().is('.jstree-closed, .jstree-open, .jstree-leaf')) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
240 off = ref.offset(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
241 rel = (data.event.pageY !== undefined ? data.event.pageY : data.event.originalEvent.pageY) - off.top; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
242 h = ref.outerHeight(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
243 if(rel < h / 3) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
244 o = ['b', 'i', 'a']; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
245 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
246 else if(rel > h - h / 3) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
247 o = ['a', 'i', 'b']; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
248 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
249 else { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
250 o = rel > h / 2 ? ['i', 'a', 'b'] : ['i', 'b', 'a']; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
251 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
252 $.each(o, function (j, v) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
253 switch(v) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
254 case 'b': |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
255 l = off.left - 6; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
256 t = off.top; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
257 p = ins.get_parent(ref); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
258 i = ref.parent().index(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
259 break; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
260 case 'i': |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
261 ip = ins.settings.dnd.inside_pos; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
262 tm = ins.get_node(ref.parent()); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
263 l = off.left - 2; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
264 t = off.top + h / 2 + 1; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
265 p = tm.id; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
266 i = ip === 'first' ? 0 : (ip === 'last' ? tm.children.length : Math.min(ip, tm.children.length)); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
267 break; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
268 case 'a': |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
269 l = off.left - 6; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
270 t = off.top + h; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
271 p = ins.get_parent(ref); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
272 i = ref.parent().index() + 1; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
273 break; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
274 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
275 ok = true; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
276 for(t1 = 0, t2 = data.data.nodes.length; t1 < t2; t1++) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
277 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"; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
278 ps = i; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
279 if(op === "move_node" && v === 'a' && (data.data.origin && data.data.origin === ins) && p === ins.get_parent(data.data.nodes[t1])) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
280 pr = ins.get_node(p); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
281 if(ps > $.inArray(data.data.nodes[t1], pr.children)) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
282 ps -= 1; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
283 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
284 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
285 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) }) ); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
286 if(!ok) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
287 if(ins && ins.last_error) { laster = ins.last_error(); } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
288 break; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
289 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
290 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
291 if(v === 'i' && ref.parent().is('.jstree-closed') && ins.settings.dnd.open_timeout) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
292 if (!data.event || data.event.type !== 'dragover' || isDifferentNode) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
293 if (opento) { clearTimeout(opento); } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
294 opento = setTimeout((function (x, z) { return function () { x.open_node(z); }; }(ins, ref)), ins.settings.dnd.open_timeout); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
295 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
296 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
297 if(ok) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
298 pn = ins.get_node(p, true); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
299 if (!pn.hasClass('.jstree-dnd-parent')) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
300 $('.jstree-dnd-parent').removeClass('jstree-dnd-parent'); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
301 pn.addClass('jstree-dnd-parent'); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
302 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
303 lastmv = { 'ins' : ins, 'par' : p, 'pos' : v === 'i' && ip === 'last' && i === 0 && !ins.is_loaded(tm) ? 'last' : i }; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
304 marker.css({ 'left' : l + 'px', 'top' : t + 'px' }).show(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
305 data.helper.find('.jstree-icon').first().removeClass('jstree-er').addClass('jstree-ok'); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
306 if (data.event.originalEvent && data.event.originalEvent.dataTransfer) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
307 data.event.originalEvent.dataTransfer.dropEffect = is_copy ? 'copy' : 'move'; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
308 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
309 laster = {}; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
310 o = true; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
311 return false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
312 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
313 }); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
314 if(o === true) { return; } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
315 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
316 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
317 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
318 $('.jstree-dnd-parent').removeClass('jstree-dnd-parent'); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
319 lastmv = false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
320 data.helper.find('.jstree-icon').removeClass('jstree-ok').addClass('jstree-er'); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
321 if (data.event.originalEvent && data.event.originalEvent.dataTransfer) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
322 data.event.originalEvent.dataTransfer.dropEffect = 'none'; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
323 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
324 marker.hide(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
325 }) |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
326 .on('dnd_scroll.vakata.jstree', function (e, data) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
327 if(!data || !data.data || !data.data.jstree) { return; } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
328 marker.hide(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
329 lastmv = false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
330 lastev = false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
331 data.helper.find('.jstree-icon').first().removeClass('jstree-ok').addClass('jstree-er'); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
332 }) |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
333 .on('dnd_stop.vakata.jstree', function (e, data) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
334 $('.jstree-dnd-parent').removeClass('jstree-dnd-parent'); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
335 if(opento) { clearTimeout(opento); } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
336 if(!data || !data.data || !data.data.jstree) { return; } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
337 marker.hide().detach(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
338 var i, j, nodes = []; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
339 if(lastmv) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
340 for(i = 0, j = data.data.nodes.length; i < j; i++) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
341 nodes[i] = data.data.origin ? data.data.origin.get_node(data.data.nodes[i]) : data.data.nodes[i]; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
342 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
343 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); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
344 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
345 else { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
346 i = $(data.event.target).closest('.jstree'); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
347 if(i.length && laster && laster.error && laster.error === 'check') { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
348 i = i.jstree(true); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
349 if(i) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
350 i.settings.core.error.call(this, laster); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
351 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
352 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
353 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
354 lastev = false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
355 lastmv = false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
356 }) |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
357 .on('keyup.jstree keydown.jstree', function (e, data) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
358 data = $.vakata.dnd._get(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
359 if(data && data.data && data.data.jstree) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
360 if (e.type === "keyup" && e.which === 27) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
361 if (opento) { clearTimeout(opento); } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
362 lastmv = false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
363 laster = false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
364 lastev = false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
365 opento = false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
366 marker.hide().detach(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
367 $.vakata.dnd._clean(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
368 } else { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
369 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' ](); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
370 if(lastev) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
371 lastev.metaKey = e.metaKey; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
372 lastev.ctrlKey = e.ctrlKey; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
373 $.vakata.dnd._trigger('move', lastev); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
374 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
375 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
376 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
377 }); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
378 }); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
379 |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
380 // helpers |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
381 (function ($) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
382 $.vakata.html = { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
383 div : $('<div />'), |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
384 escape : function (str) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
385 return $.vakata.html.div.text(str).html(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
386 }, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
387 strip : function (str) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
388 return $.vakata.html.div.empty().append($.parseHTML(str)).text(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
389 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
390 }; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
391 // private variable |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
392 var vakata_dnd = { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
393 element : false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
394 target : false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
395 is_down : false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
396 is_drag : false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
397 helper : false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
398 helper_w: 0, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
399 data : false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
400 init_x : 0, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
401 init_y : 0, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
402 scroll_l: 0, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
403 scroll_t: 0, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
404 scroll_e: false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
405 scroll_i: false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
406 is_touch: false |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
407 }; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
408 $.vakata.dnd = { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
409 settings : { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
410 scroll_speed : 10, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
411 scroll_proximity : 20, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
412 helper_left : 5, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
413 helper_top : 10, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
414 threshold : 5, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
415 threshold_touch : 10 |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
416 }, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
417 _trigger : function (event_name, e, data) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
418 if (data === undefined) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
419 data = $.vakata.dnd._get(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
420 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
421 data.event = e; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
422 $(document).triggerHandler("dnd_" + event_name + ".vakata", data); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
423 }, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
424 _get : function () { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
425 return { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
426 "data" : vakata_dnd.data, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
427 "element" : vakata_dnd.element, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
428 "helper" : vakata_dnd.helper |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
429 }; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
430 }, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
431 _clean : function () { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
432 if(vakata_dnd.helper) { vakata_dnd.helper.remove(); } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
433 if(vakata_dnd.scroll_i) { clearInterval(vakata_dnd.scroll_i); vakata_dnd.scroll_i = false; } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
434 vakata_dnd = { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
435 element : false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
436 target : false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
437 is_down : false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
438 is_drag : false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
439 helper : false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
440 helper_w: 0, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
441 data : false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
442 init_x : 0, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
443 init_y : 0, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
444 scroll_l: 0, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
445 scroll_t: 0, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
446 scroll_e: false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
447 scroll_i: false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
448 is_touch: false |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
449 }; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
450 $(document).off("mousemove.vakata.jstree touchmove.vakata.jstree", $.vakata.dnd.drag); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
451 $(document).off("mouseup.vakata.jstree touchend.vakata.jstree", $.vakata.dnd.stop); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
452 }, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
453 _scroll : function (init_only) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
454 if(!vakata_dnd.scroll_e || (!vakata_dnd.scroll_l && !vakata_dnd.scroll_t)) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
455 if(vakata_dnd.scroll_i) { clearInterval(vakata_dnd.scroll_i); vakata_dnd.scroll_i = false; } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
456 return false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
457 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
458 if(!vakata_dnd.scroll_i) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
459 vakata_dnd.scroll_i = setInterval($.vakata.dnd._scroll, 100); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
460 return false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
461 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
462 if(init_only === true) { return false; } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
463 |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
464 var i = vakata_dnd.scroll_e.scrollTop(), |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
465 j = vakata_dnd.scroll_e.scrollLeft(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
466 vakata_dnd.scroll_e.scrollTop(i + vakata_dnd.scroll_t * $.vakata.dnd.settings.scroll_speed); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
467 vakata_dnd.scroll_e.scrollLeft(j + vakata_dnd.scroll_l * $.vakata.dnd.settings.scroll_speed); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
468 if(i !== vakata_dnd.scroll_e.scrollTop() || j !== vakata_dnd.scroll_e.scrollLeft()) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
469 /** |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
470 * triggered on the document when a drag causes an element to scroll |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
471 * @event |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
472 * @plugin dnd |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
473 * @name dnd_scroll.vakata |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
474 * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
475 * @param {DOM} element the DOM element being dragged |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
476 * @param {jQuery} helper the helper shown next to the mouse |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
477 * @param {jQuery} event the element that is scrolling |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
478 */ |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
479 $.vakata.dnd._trigger("scroll", vakata_dnd.scroll_e); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
480 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
481 }, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
482 start : function (e, data, html) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
483 if(e.type === "touchstart" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
484 e.pageX = e.originalEvent.changedTouches[0].pageX; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
485 e.pageY = e.originalEvent.changedTouches[0].pageY; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
486 e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
487 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
488 if(vakata_dnd.is_drag) { $.vakata.dnd.stop({}); } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
489 try { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
490 e.currentTarget.unselectable = "on"; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
491 e.currentTarget.onselectstart = function() { return false; }; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
492 if(e.currentTarget.style) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
493 e.currentTarget.style.touchAction = "none"; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
494 e.currentTarget.style.msTouchAction = "none"; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
495 e.currentTarget.style.MozUserSelect = "none"; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
496 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
497 } catch(ignore) { } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
498 vakata_dnd.init_x = e.pageX; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
499 vakata_dnd.init_y = e.pageY; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
500 vakata_dnd.data = data; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
501 vakata_dnd.is_down = true; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
502 vakata_dnd.element = e.currentTarget; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
503 vakata_dnd.target = e.target; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
504 vakata_dnd.is_touch = e.type === "touchstart"; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
505 if(html !== false) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
506 vakata_dnd.helper = $("<div id='vakata-dnd'></div>").html(html).css({ |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
507 "display" : "block", |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
508 "margin" : "0", |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
509 "padding" : "0", |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
510 "position" : "absolute", |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
511 "top" : "-2000px", |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
512 "lineHeight" : "16px", |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
513 "zIndex" : "10000" |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
514 }); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
515 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
516 $(document).on("mousemove.vakata.jstree touchmove.vakata.jstree", $.vakata.dnd.drag); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
517 $(document).on("mouseup.vakata.jstree touchend.vakata.jstree", $.vakata.dnd.stop); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
518 return false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
519 }, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
520 drag : function (e) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
521 if(e.type === "touchmove" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
522 e.pageX = e.originalEvent.changedTouches[0].pageX; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
523 e.pageY = e.originalEvent.changedTouches[0].pageY; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
524 e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
525 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
526 if(!vakata_dnd.is_down) { return; } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
527 if(!vakata_dnd.is_drag) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
528 if( |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
529 Math.abs(e.pageX - vakata_dnd.init_x) > (vakata_dnd.is_touch ? $.vakata.dnd.settings.threshold_touch : $.vakata.dnd.settings.threshold) || |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
530 Math.abs(e.pageY - vakata_dnd.init_y) > (vakata_dnd.is_touch ? $.vakata.dnd.settings.threshold_touch : $.vakata.dnd.settings.threshold) |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
531 ) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
532 if(vakata_dnd.helper) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
533 vakata_dnd.helper.appendTo("body"); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
534 vakata_dnd.helper_w = vakata_dnd.helper.outerWidth(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
535 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
536 vakata_dnd.is_drag = true; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
537 $(vakata_dnd.target).one('click.vakata', false); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
538 /** |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
539 * triggered on the document when a drag starts |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
540 * @event |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
541 * @plugin dnd |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
542 * @name dnd_start.vakata |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
543 * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
544 * @param {DOM} element the DOM element being dragged |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
545 * @param {jQuery} helper the helper shown next to the mouse |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
546 * @param {Object} event the event that caused the start (probably mousemove) |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
547 */ |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
548 $.vakata.dnd._trigger("start", e); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
549 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
550 else { return; } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
551 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
552 |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
553 var d = false, w = false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
554 dh = false, wh = false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
555 dw = false, ww = false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
556 dt = false, dl = false, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
557 ht = false, hl = false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
558 |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
559 vakata_dnd.scroll_t = 0; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
560 vakata_dnd.scroll_l = 0; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
561 vakata_dnd.scroll_e = false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
562 $($(e.target).parentsUntil("body").addBack().get().reverse()) |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
563 .filter(function () { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
564 return (/^auto|scroll$/).test($(this).css("overflow")) && |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
565 (this.scrollHeight > this.offsetHeight || this.scrollWidth > this.offsetWidth); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
566 }) |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
567 .each(function () { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
568 var t = $(this), o = t.offset(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
569 if(this.scrollHeight > this.offsetHeight) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
570 if(o.top + t.height() - e.pageY < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = 1; } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
571 if(e.pageY - o.top < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = -1; } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
572 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
573 if(this.scrollWidth > this.offsetWidth) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
574 if(o.left + t.width() - e.pageX < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = 1; } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
575 if(e.pageX - o.left < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = -1; } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
576 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
577 if(vakata_dnd.scroll_t || vakata_dnd.scroll_l) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
578 vakata_dnd.scroll_e = $(this); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
579 return false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
580 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
581 }); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
582 |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
583 if(!vakata_dnd.scroll_e) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
584 d = $(document); w = $(window); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
585 dh = d.height(); wh = w.height(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
586 dw = d.width(); ww = w.width(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
587 dt = d.scrollTop(); dl = d.scrollLeft(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
588 if(dh > wh && e.pageY - dt < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = -1; } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
589 if(dh > wh && wh - (e.pageY - dt) < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = 1; } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
590 if(dw > ww && e.pageX - dl < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = -1; } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
591 if(dw > ww && ww - (e.pageX - dl) < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = 1; } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
592 if(vakata_dnd.scroll_t || vakata_dnd.scroll_l) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
593 vakata_dnd.scroll_e = d; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
594 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
595 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
596 if(vakata_dnd.scroll_e) { $.vakata.dnd._scroll(true); } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
597 |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
598 if(vakata_dnd.helper) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
599 ht = parseInt(e.pageY + $.vakata.dnd.settings.helper_top, 10); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
600 hl = parseInt(e.pageX + $.vakata.dnd.settings.helper_left, 10); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
601 if(dh && ht + 25 > dh) { ht = dh - 50; } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
602 if(dw && hl + vakata_dnd.helper_w > dw) { hl = dw - (vakata_dnd.helper_w + 2); } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
603 vakata_dnd.helper.css({ |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
604 left : hl + "px", |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
605 top : ht + "px" |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
606 }); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
607 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
608 /** |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
609 * triggered on the document when a drag is in progress |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
610 * @event |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
611 * @plugin dnd |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
612 * @name dnd_move.vakata |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
613 * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
614 * @param {DOM} element the DOM element being dragged |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
615 * @param {jQuery} helper the helper shown next to the mouse |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
616 * @param {Object} event the event that caused this to trigger (most likely mousemove) |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
617 */ |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
618 $.vakata.dnd._trigger("move", e); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
619 return false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
620 }, |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
621 stop : function (e) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
622 if(e.type === "touchend" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
623 e.pageX = e.originalEvent.changedTouches[0].pageX; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
624 e.pageY = e.originalEvent.changedTouches[0].pageY; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
625 e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
626 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
627 if(vakata_dnd.is_drag) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
628 /** |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
629 * triggered on the document when a drag stops (the dragged element is dropped) |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
630 * @event |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
631 * @plugin dnd |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
632 * @name dnd_stop.vakata |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
633 * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
634 * @param {DOM} element the DOM element being dragged |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
635 * @param {jQuery} helper the helper shown next to the mouse |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
636 * @param {Object} event the event that caused the stop |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
637 */ |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
638 if (e.target !== vakata_dnd.target) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
639 $(vakata_dnd.target).off('click.vakata'); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
640 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
641 $.vakata.dnd._trigger("stop", e); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
642 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
643 else { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
644 if(e.type === "touchend" && e.target === vakata_dnd.target) { |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
645 var to = setTimeout(function () { $(e.target).click(); }, 100); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
646 $(e.target).one('click', function() { if(to) { clearTimeout(to); } }); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
647 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
648 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
649 $.vakata.dnd._clean(); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
650 return false; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
651 } |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
652 }; |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
653 }($)); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
654 |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
655 // include the dnd plugin by default |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
656 // $.jstree.defaults.plugins.push("dnd"); |
|
f8c7138cfc35
planemo upload commit 92144072ce2bd29bf437bde994b9700e03d79f1b-dirty
mingchen0919
parents:
diff
changeset
|
657 })); |
