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