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