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