| author | ymh <ymh.work@gmail.com> |
| Fri, 30 Nov 2018 22:05:02 +0100 | |
| changeset 187 | 7c745d8cb321 |
| parent 121 | 21ac67ebf9e7 |
| permissions | -rw-r--r-- |
|
121
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
1 |
/* =================================================== |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
2 |
* jquery-sortable.js v0.9.13 |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
3 |
* http://johnny.github.com/jquery-sortable/ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
4 |
* =================================================== |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
5 |
* Copyright (c) 2012 Jonas von Andrian |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
6 |
* All rights reserved. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
7 |
* |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
8 |
* Redistribution and use in source and binary forms, with or without |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
9 |
* modification, are permitted provided that the following conditions are met: |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
10 |
* * Redistributions of source code must retain the above copyright |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
11 |
* notice, this list of conditions and the following disclaimer. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
12 |
* * Redistributions in binary form must reproduce the above copyright |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
13 |
* notice, this list of conditions and the following disclaimer in the |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
14 |
* documentation and/or other materials provided with the distribution. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
15 |
* * The name of the author may not be used to endorse or promote products |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
16 |
* derived from this software without specific prior written permission. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
17 |
* |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
18 |
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
19 |
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
20 |
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
21 |
* DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
22 |
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
23 |
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
24 |
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
25 |
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
26 |
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
27 |
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
28 |
* ========================================================== */ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
29 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
30 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
31 |
!function ( $, window, pluginName, undefined){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
32 |
var containerDefaults = { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
33 |
// If true, items can be dragged from this container |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
34 |
drag: true, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
35 |
// If true, items can be droped onto this container |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
36 |
drop: true, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
37 |
// Exclude items from being draggable, if the |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
38 |
// selector matches the item |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
39 |
exclude: "", |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
40 |
// If true, search for nested containers within an item.If you nest containers, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
41 |
// either the original selector with which you call the plugin must only match the top containers, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
42 |
// or you need to specify a group (see the bootstrap nav example) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
43 |
nested: true, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
44 |
// If true, the items are assumed to be arranged vertically |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
45 |
vertical: true |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
46 |
}, // end container defaults |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
47 |
groupDefaults = { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
48 |
// This is executed after the placeholder has been moved. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
49 |
// $closestItemOrContainer contains the closest item, the placeholder |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
50 |
// has been put at or the closest empty Container, the placeholder has |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
51 |
// been appended to. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
52 |
afterMove: function ($placeholder, container, $closestItemOrContainer) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
53 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
54 |
// The exact css path between the container and its items, e.g. "> tbody" |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
55 |
containerPath: "", |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
56 |
// The css selector of the containers |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
57 |
containerSelector: "ol, ul", |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
58 |
// Distance the mouse has to travel to start dragging |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
59 |
distance: 0, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
60 |
// Time in milliseconds after mousedown until dragging should start. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
61 |
// This option can be used to prevent unwanted drags when clicking on an element. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
62 |
delay: 0, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
63 |
// The css selector of the drag handle |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
64 |
handle: "", |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
65 |
// The exact css path between the item and its subcontainers. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
66 |
// It should only match the immediate items of a container. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
67 |
// No item of a subcontainer should be matched. E.g. for ol>div>li the itemPath is "> div" |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
68 |
itemPath: "", |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
69 |
// The css selector of the items |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
70 |
itemSelector: "li", |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
71 |
// The class given to "body" while an item is being dragged |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
72 |
bodyClass: "dragging", |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
73 |
// The class giving to an item while being dragged |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
74 |
draggedClass: "dragged", |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
75 |
// Check if the dragged item may be inside the container. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
76 |
// Use with care, since the search for a valid container entails a depth first search |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
77 |
// and may be quite expensive. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
78 |
isValidTarget: function ($item, container) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
79 |
return true |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
80 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
81 |
// Executed before onDrop if placeholder is detached. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
82 |
// This happens if pullPlaceholder is set to false and the drop occurs outside a container. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
83 |
onCancel: function ($item, container, _super, event) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
84 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
85 |
// Executed at the beginning of a mouse move event. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
86 |
// The Placeholder has not been moved yet. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
87 |
onDrag: function ($item, position, _super, event) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
88 |
$item.css(position) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
89 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
90 |
// Called after the drag has been started, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
91 |
// that is the mouse button is being held down and |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
92 |
// the mouse is moving. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
93 |
// The container is the closest initialized container. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
94 |
// Therefore it might not be the container, that actually contains the item. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
95 |
onDragStart: function ($item, container, _super, event) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
96 |
$item.css({ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
97 |
height: $item.outerHeight(), |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
98 |
width: $item.outerWidth() |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
99 |
}) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
100 |
$item.addClass(container.group.options.draggedClass) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
101 |
$("body").addClass(container.group.options.bodyClass) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
102 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
103 |
// Called when the mouse button is being released |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
104 |
onDrop: function ($item, container, _super, event) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
105 |
$item.removeClass(container.group.options.draggedClass).removeAttr("style") |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
106 |
$("body").removeClass(container.group.options.bodyClass) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
107 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
108 |
// Called on mousedown. If falsy value is returned, the dragging will not start. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
109 |
// Ignore if element clicked is input, select or textarea |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
110 |
onMousedown: function ($item, _super, event) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
111 |
if (!event.target.nodeName.match(/^(input|select|textarea)$/i)) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
112 |
event.preventDefault() |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
113 |
return true |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
114 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
115 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
116 |
// The class of the placeholder (must match placeholder option markup) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
117 |
placeholderClass: "placeholder", |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
118 |
// Template for the placeholder. Can be any valid jQuery input |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
119 |
// e.g. a string, a DOM element. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
120 |
// The placeholder must have the class "placeholder" |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
121 |
placeholder: '<li class="placeholder"></li>', |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
122 |
// If true, the position of the placeholder is calculated on every mousemove. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
123 |
// If false, it is only calculated when the mouse is above a container. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
124 |
pullPlaceholder: true, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
125 |
// Specifies serialization of the container group. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
126 |
// The pair $parent/$children is either container/items or item/subcontainers. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
127 |
serialize: function ($parent, $children, parentIsContainer) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
128 |
var result = $.extend({}, $parent.data()) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
129 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
130 |
if(parentIsContainer) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
131 |
return [$children] |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
132 |
else if ($children[0]){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
133 |
result.children = $children |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
134 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
135 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
136 |
delete result.subContainers |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
137 |
delete result.sortable |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
138 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
139 |
return result |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
140 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
141 |
// Set tolerance while dragging. Positive values decrease sensitivity, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
142 |
// negative values increase it. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
143 |
tolerance: 0 |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
144 |
}, // end group defaults |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
145 |
containerGroups = {}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
146 |
groupCounter = 0, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
147 |
emptyBox = { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
148 |
left: 0, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
149 |
top: 0, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
150 |
bottom: 0, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
151 |
right:0 |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
152 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
153 |
eventNames = { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
154 |
start: "touchstart.sortable mousedown.sortable", |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
155 |
drop: "touchend.sortable touchcancel.sortable mouseup.sortable", |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
156 |
drag: "touchmove.sortable mousemove.sortable", |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
157 |
scroll: "scroll.sortable" |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
158 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
159 |
subContainerKey = "subContainers" |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
160 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
161 |
/* |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
162 |
* a is Array [left, right, top, bottom] |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
163 |
* b is array [left, top] |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
164 |
*/ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
165 |
function d(a,b) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
166 |
var x = Math.max(0, a[0] - b[0], b[0] - a[1]), |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
167 |
y = Math.max(0, a[2] - b[1], b[1] - a[3]) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
168 |
return x+y; |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
169 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
170 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
171 |
function setDimensions(array, dimensions, tolerance, useOffset) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
172 |
var i = array.length, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
173 |
offsetMethod = useOffset ? "offset" : "position" |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
174 |
tolerance = tolerance || 0 |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
175 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
176 |
while(i--){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
177 |
var el = array[i].el ? array[i].el : $(array[i]), |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
178 |
// use fitting method |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
179 |
pos = el[offsetMethod]() |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
180 |
pos.left += parseInt(el.css('margin-left'), 10) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
181 |
pos.top += parseInt(el.css('margin-top'),10) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
182 |
dimensions[i] = [ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
183 |
pos.left - tolerance, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
184 |
pos.left + el.outerWidth() + tolerance, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
185 |
pos.top - tolerance, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
186 |
pos.top + el.outerHeight() + tolerance |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
187 |
] |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
188 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
189 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
190 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
191 |
function getRelativePosition(pointer, element) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
192 |
var offset = element.offset() |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
193 |
return { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
194 |
left: pointer.left - offset.left, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
195 |
top: pointer.top - offset.top |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
196 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
197 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
198 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
199 |
function sortByDistanceDesc(dimensions, pointer, lastPointer) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
200 |
pointer = [pointer.left, pointer.top] |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
201 |
lastPointer = lastPointer && [lastPointer.left, lastPointer.top] |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
202 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
203 |
var dim, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
204 |
i = dimensions.length, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
205 |
distances = [] |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
206 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
207 |
while(i--){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
208 |
dim = dimensions[i] |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
209 |
distances[i] = [i,d(dim,pointer), lastPointer && d(dim, lastPointer)] |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
210 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
211 |
distances = distances.sort(function (a,b) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
212 |
return b[1] - a[1] || b[2] - a[2] || b[0] - a[0] |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
213 |
}) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
214 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
215 |
// last entry is the closest |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
216 |
return distances |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
217 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
218 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
219 |
function ContainerGroup(options) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
220 |
this.options = $.extend({}, groupDefaults, options) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
221 |
this.containers = [] |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
222 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
223 |
if(!this.options.rootGroup){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
224 |
this.scrollProxy = $.proxy(this.scroll, this) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
225 |
this.dragProxy = $.proxy(this.drag, this) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
226 |
this.dropProxy = $.proxy(this.drop, this) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
227 |
this.placeholder = $(this.options.placeholder) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
228 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
229 |
if(!options.isValidTarget) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
230 |
this.options.isValidTarget = undefined |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
231 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
232 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
233 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
234 |
ContainerGroup.get = function (options) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
235 |
if(!containerGroups[options.group]) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
236 |
if(options.group === undefined) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
237 |
options.group = groupCounter ++ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
238 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
239 |
containerGroups[options.group] = new ContainerGroup(options) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
240 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
241 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
242 |
return containerGroups[options.group] |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
243 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
244 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
245 |
ContainerGroup.prototype = { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
246 |
dragInit: function (e, itemContainer) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
247 |
this.$document = $(itemContainer.el[0].ownerDocument) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
248 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
249 |
// get item to drag |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
250 |
var closestItem = $(e.target).closest(this.options.itemSelector); |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
251 |
// using the length of this item, prevents the plugin from being started if there is no handle being clicked on. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
252 |
// this may also be helpful in instantiating multidrag. |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
253 |
if (closestItem.length) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
254 |
this.item = closestItem; |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
255 |
this.itemContainer = itemContainer; |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
256 |
if (this.item.is(this.options.exclude) || !this.options.onMousedown(this.item, groupDefaults.onMousedown, e)) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
257 |
return; |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
258 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
259 |
this.setPointer(e); |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
260 |
this.toggleListeners('on'); |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
261 |
this.setupDelayTimer(); |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
262 |
this.dragInitDone = true; |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
263 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
264 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
265 |
drag: function (e) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
266 |
if(!this.dragging){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
267 |
if(!this.distanceMet(e) || !this.delayMet) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
268 |
return |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
269 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
270 |
this.options.onDragStart(this.item, this.itemContainer, groupDefaults.onDragStart, e) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
271 |
this.item.before(this.placeholder) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
272 |
this.dragging = true |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
273 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
274 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
275 |
this.setPointer(e) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
276 |
// place item under the cursor |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
277 |
this.options.onDrag(this.item, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
278 |
getRelativePosition(this.pointer, this.item.offsetParent()), |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
279 |
groupDefaults.onDrag, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
280 |
e) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
281 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
282 |
var p = this.getPointer(e), |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
283 |
box = this.sameResultBox, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
284 |
t = this.options.tolerance |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
285 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
286 |
if(!box || box.top - t > p.top || box.bottom + t < p.top || box.left - t > p.left || box.right + t < p.left) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
287 |
if(!this.searchValidTarget()){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
288 |
this.placeholder.detach() |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
289 |
this.lastAppendedItem = undefined |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
290 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
291 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
292 |
drop: function (e) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
293 |
this.toggleListeners('off') |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
294 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
295 |
this.dragInitDone = false |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
296 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
297 |
if(this.dragging){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
298 |
// processing Drop, check if placeholder is detached |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
299 |
if(this.placeholder.closest("html")[0]){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
300 |
this.placeholder.before(this.item).detach() |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
301 |
} else { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
302 |
this.options.onCancel(this.item, this.itemContainer, groupDefaults.onCancel, e) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
303 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
304 |
this.options.onDrop(this.item, this.getContainer(this.item), groupDefaults.onDrop, e) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
305 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
306 |
// cleanup |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
307 |
this.clearDimensions() |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
308 |
this.clearOffsetParent() |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
309 |
this.lastAppendedItem = this.sameResultBox = undefined |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
310 |
this.dragging = false |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
311 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
312 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
313 |
searchValidTarget: function (pointer, lastPointer) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
314 |
if(!pointer){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
315 |
pointer = this.relativePointer || this.pointer |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
316 |
lastPointer = this.lastRelativePointer || this.lastPointer |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
317 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
318 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
319 |
var distances = sortByDistanceDesc(this.getContainerDimensions(), |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
320 |
pointer, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
321 |
lastPointer), |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
322 |
i = distances.length |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
323 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
324 |
while(i--){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
325 |
var index = distances[i][0], |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
326 |
distance = distances[i][1] |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
327 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
328 |
if(!distance || this.options.pullPlaceholder){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
329 |
var container = this.containers[index] |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
330 |
if(!container.disabled){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
331 |
if(!this.$getOffsetParent()){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
332 |
var offsetParent = container.getItemOffsetParent() |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
333 |
pointer = getRelativePosition(pointer, offsetParent) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
334 |
lastPointer = getRelativePosition(lastPointer, offsetParent) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
335 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
336 |
if(container.searchValidTarget(pointer, lastPointer)) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
337 |
return true |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
338 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
339 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
340 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
341 |
if(this.sameResultBox) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
342 |
this.sameResultBox = undefined |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
343 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
344 |
movePlaceholder: function (container, item, method, sameResultBox) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
345 |
var lastAppendedItem = this.lastAppendedItem |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
346 |
if(!sameResultBox && lastAppendedItem && lastAppendedItem[0] === item[0]) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
347 |
return; |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
348 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
349 |
item[method](this.placeholder) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
350 |
this.lastAppendedItem = item |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
351 |
this.sameResultBox = sameResultBox |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
352 |
this.options.afterMove(this.placeholder, container, item) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
353 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
354 |
getContainerDimensions: function () { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
355 |
if(!this.containerDimensions) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
356 |
setDimensions(this.containers, this.containerDimensions = [], this.options.tolerance, !this.$getOffsetParent()) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
357 |
return this.containerDimensions |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
358 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
359 |
getContainer: function (element) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
360 |
return element.closest(this.options.containerSelector).data(pluginName) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
361 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
362 |
$getOffsetParent: function () { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
363 |
if(this.offsetParent === undefined){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
364 |
var i = this.containers.length - 1, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
365 |
offsetParent = this.containers[i].getItemOffsetParent() |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
366 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
367 |
if(!this.options.rootGroup){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
368 |
while(i--){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
369 |
if(offsetParent[0] != this.containers[i].getItemOffsetParent()[0]){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
370 |
// If every container has the same offset parent, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
371 |
// use position() which is relative to this parent, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
372 |
// otherwise use offset() |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
373 |
// compare #setDimensions |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
374 |
offsetParent = false |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
375 |
break; |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
376 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
377 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
378 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
379 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
380 |
this.offsetParent = offsetParent |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
381 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
382 |
return this.offsetParent |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
383 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
384 |
setPointer: function (e) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
385 |
var pointer = this.getPointer(e) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
386 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
387 |
if(this.$getOffsetParent()){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
388 |
var relativePointer = getRelativePosition(pointer, this.$getOffsetParent()) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
389 |
this.lastRelativePointer = this.relativePointer |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
390 |
this.relativePointer = relativePointer |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
391 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
392 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
393 |
this.lastPointer = this.pointer |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
394 |
this.pointer = pointer |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
395 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
396 |
distanceMet: function (e) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
397 |
var currentPointer = this.getPointer(e) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
398 |
return (Math.max( |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
399 |
Math.abs(this.pointer.left - currentPointer.left), |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
400 |
Math.abs(this.pointer.top - currentPointer.top) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
401 |
) >= this.options.distance) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
402 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
403 |
getPointer: function(e) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
404 |
var o = e.originalEvent || e.originalEvent.touches && e.originalEvent.touches[0] |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
405 |
return { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
406 |
left: e.pageX || o.pageX, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
407 |
top: e.pageY || o.pageY |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
408 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
409 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
410 |
setupDelayTimer: function () { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
411 |
var that = this |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
412 |
this.delayMet = !this.options.delay |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
413 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
414 |
// init delay timer if needed |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
415 |
if (!this.delayMet) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
416 |
clearTimeout(this._mouseDelayTimer); |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
417 |
this._mouseDelayTimer = setTimeout(function() { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
418 |
that.delayMet = true |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
419 |
}, this.options.delay) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
420 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
421 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
422 |
scroll: function (e) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
423 |
this.clearDimensions() |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
424 |
this.clearOffsetParent() // TODO is this needed? |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
425 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
426 |
toggleListeners: function (method) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
427 |
var that = this, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
428 |
events = ['drag','drop','scroll'] |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
429 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
430 |
$.each(events,function (i,event) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
431 |
that.$document[method](eventNames[event], that[event + 'Proxy']) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
432 |
}) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
433 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
434 |
clearOffsetParent: function () { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
435 |
this.offsetParent = undefined |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
436 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
437 |
// Recursively clear container and item dimensions |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
438 |
clearDimensions: function () { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
439 |
this.traverse(function(object){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
440 |
object._clearDimensions() |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
441 |
}) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
442 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
443 |
traverse: function(callback) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
444 |
callback(this) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
445 |
var i = this.containers.length |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
446 |
while(i--){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
447 |
this.containers[i].traverse(callback) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
448 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
449 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
450 |
_clearDimensions: function(){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
451 |
this.containerDimensions = undefined |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
452 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
453 |
_destroy: function () { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
454 |
containerGroups[this.options.group] = undefined |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
455 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
456 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
457 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
458 |
function Container(element, options) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
459 |
this.el = element |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
460 |
this.options = $.extend( {}, containerDefaults, options) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
461 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
462 |
this.group = ContainerGroup.get(this.options) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
463 |
this.rootGroup = this.options.rootGroup || this.group |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
464 |
this.handle = this.rootGroup.options.handle || this.rootGroup.options.itemSelector |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
465 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
466 |
var itemPath = this.rootGroup.options.itemPath |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
467 |
this.target = itemPath ? this.el.find(itemPath) : this.el |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
468 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
469 |
this.target.on(eventNames.start, this.handle, $.proxy(this.dragInit, this)) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
470 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
471 |
if(this.options.drop) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
472 |
this.group.containers.push(this) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
473 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
474 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
475 |
Container.prototype = { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
476 |
dragInit: function (e) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
477 |
var rootGroup = this.rootGroup |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
478 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
479 |
if( !this.disabled && |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
480 |
!rootGroup.dragInitDone && |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
481 |
this.options.drag && |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
482 |
this.isValidDrag(e)) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
483 |
rootGroup.dragInit(e, this) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
484 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
485 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
486 |
isValidDrag: function(e) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
487 |
return e.which == 1 || |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
488 |
e.type == "touchstart" && e.originalEvent.touches.length == 1 |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
489 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
490 |
searchValidTarget: function (pointer, lastPointer) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
491 |
var distances = sortByDistanceDesc(this.getItemDimensions(), |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
492 |
pointer, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
493 |
lastPointer), |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
494 |
i = distances.length, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
495 |
rootGroup = this.rootGroup, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
496 |
validTarget = !rootGroup.options.isValidTarget || |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
497 |
rootGroup.options.isValidTarget(rootGroup.item, this) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
498 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
499 |
if(!i && validTarget){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
500 |
rootGroup.movePlaceholder(this, this.target, "append") |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
501 |
return true |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
502 |
} else |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
503 |
while(i--){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
504 |
var index = distances[i][0], |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
505 |
distance = distances[i][1] |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
506 |
if(!distance && this.hasChildGroup(index)){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
507 |
var found = this.getContainerGroup(index).searchValidTarget(pointer, lastPointer) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
508 |
if(found) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
509 |
return true |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
510 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
511 |
else if(validTarget){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
512 |
this.movePlaceholder(index, pointer) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
513 |
return true |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
514 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
515 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
516 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
517 |
movePlaceholder: function (index, pointer) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
518 |
var item = $(this.items[index]), |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
519 |
dim = this.itemDimensions[index], |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
520 |
method = "after", |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
521 |
width = item.outerWidth(), |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
522 |
height = item.outerHeight(), |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
523 |
offset = item.offset(), |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
524 |
sameResultBox = { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
525 |
left: offset.left, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
526 |
right: offset.left + width, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
527 |
top: offset.top, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
528 |
bottom: offset.top + height |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
529 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
530 |
if(this.options.vertical){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
531 |
var yCenter = (dim[2] + dim[3]) / 2, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
532 |
inUpperHalf = pointer.top <= yCenter |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
533 |
if(inUpperHalf){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
534 |
method = "before" |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
535 |
sameResultBox.bottom -= height / 2 |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
536 |
} else |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
537 |
sameResultBox.top += height / 2 |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
538 |
} else { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
539 |
var xCenter = (dim[0] + dim[1]) / 2, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
540 |
inLeftHalf = pointer.left <= xCenter |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
541 |
if(inLeftHalf){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
542 |
method = "before" |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
543 |
sameResultBox.right -= width / 2 |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
544 |
} else |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
545 |
sameResultBox.left += width / 2 |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
546 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
547 |
if(this.hasChildGroup(index)) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
548 |
sameResultBox = emptyBox |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
549 |
this.rootGroup.movePlaceholder(this, item, method, sameResultBox) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
550 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
551 |
getItemDimensions: function () { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
552 |
if(!this.itemDimensions){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
553 |
this.items = this.$getChildren(this.el, "item").filter( |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
554 |
":not(." + this.group.options.placeholderClass + ", ." + this.group.options.draggedClass + ")" |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
555 |
).get() |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
556 |
setDimensions(this.items, this.itemDimensions = [], this.options.tolerance) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
557 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
558 |
return this.itemDimensions |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
559 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
560 |
getItemOffsetParent: function () { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
561 |
var offsetParent, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
562 |
el = this.el |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
563 |
// Since el might be empty we have to check el itself and |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
564 |
// can not do something like el.children().first().offsetParent() |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
565 |
if(el.css("position") === "relative" || el.css("position") === "absolute" || el.css("position") === "fixed") |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
566 |
offsetParent = el |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
567 |
else |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
568 |
offsetParent = el.offsetParent() |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
569 |
return offsetParent |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
570 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
571 |
hasChildGroup: function (index) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
572 |
return this.options.nested && this.getContainerGroup(index) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
573 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
574 |
getContainerGroup: function (index) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
575 |
var childGroup = $.data(this.items[index], subContainerKey) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
576 |
if( childGroup === undefined){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
577 |
var childContainers = this.$getChildren(this.items[index], "container") |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
578 |
childGroup = false |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
579 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
580 |
if(childContainers[0]){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
581 |
var options = $.extend({}, this.options, { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
582 |
rootGroup: this.rootGroup, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
583 |
group: groupCounter ++ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
584 |
}) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
585 |
childGroup = childContainers[pluginName](options).data(pluginName).group |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
586 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
587 |
$.data(this.items[index], subContainerKey, childGroup) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
588 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
589 |
return childGroup |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
590 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
591 |
$getChildren: function (parent, type) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
592 |
var options = this.rootGroup.options, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
593 |
path = options[type + "Path"], |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
594 |
selector = options[type + "Selector"] |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
595 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
596 |
parent = $(parent) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
597 |
if(path) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
598 |
parent = parent.find(path) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
599 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
600 |
return parent.children(selector) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
601 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
602 |
_serialize: function (parent, isContainer) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
603 |
var that = this, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
604 |
childType = isContainer ? "item" : "container", |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
605 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
606 |
children = this.$getChildren(parent, childType).not(this.options.exclude).map(function () { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
607 |
return that._serialize($(this), !isContainer) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
608 |
}).get() |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
609 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
610 |
return this.rootGroup.options.serialize(parent, children, isContainer) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
611 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
612 |
traverse: function(callback) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
613 |
$.each(this.items || [], function(item){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
614 |
var group = $.data(this, subContainerKey) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
615 |
if(group) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
616 |
group.traverse(callback) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
617 |
}); |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
618 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
619 |
callback(this) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
620 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
621 |
_clearDimensions: function () { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
622 |
this.itemDimensions = undefined |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
623 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
624 |
_destroy: function() { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
625 |
var that = this; |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
626 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
627 |
this.target.off(eventNames.start, this.handle); |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
628 |
this.el.removeData(pluginName) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
629 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
630 |
if(this.options.drop) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
631 |
this.group.containers = $.grep(this.group.containers, function(val){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
632 |
return val != that |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
633 |
}) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
634 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
635 |
$.each(this.items || [], function(){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
636 |
$.removeData(this, subContainerKey) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
637 |
}) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
638 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
639 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
640 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
641 |
var API = { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
642 |
enable: function() { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
643 |
this.traverse(function(object){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
644 |
object.disabled = false |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
645 |
}) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
646 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
647 |
disable: function (){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
648 |
this.traverse(function(object){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
649 |
object.disabled = true |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
650 |
}) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
651 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
652 |
serialize: function () { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
653 |
return this._serialize(this.el, true) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
654 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
655 |
refresh: function() { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
656 |
this.traverse(function(object){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
657 |
object._clearDimensions() |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
658 |
}) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
659 |
}, |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
660 |
destroy: function () { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
661 |
this.traverse(function(object){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
662 |
object._destroy(); |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
663 |
}) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
664 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
665 |
} |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
666 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
667 |
$.extend(Container.prototype, API) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
668 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
669 |
/** |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
670 |
* jQuery API |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
671 |
* |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
672 |
* Parameters are |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
673 |
* either options on init |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
674 |
* or a method name followed by arguments to pass to the method |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
675 |
*/ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
676 |
$.fn[pluginName] = function(methodOrOptions) { |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
677 |
var args = Array.prototype.slice.call(arguments, 1) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
678 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
679 |
return this.map(function(){ |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
680 |
var $t = $(this), |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
681 |
object = $t.data(pluginName) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
682 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
683 |
if(object && API[methodOrOptions]) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
684 |
return API[methodOrOptions].apply(object, args) || this |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
685 |
else if(!object && (methodOrOptions === undefined || |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
686 |
typeof methodOrOptions === "object")) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
687 |
$t.data(pluginName, new Container($t, methodOrOptions)) |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
688 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
689 |
return this |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
690 |
}); |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
691 |
}; |
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
692 |
|
|
21ac67ebf9e7
all screens are now covered (but not completed)
duong tam kien <tk@deveha.com>
parents:
diff
changeset
|
693 |
}(jQuery, window, 'sortable'); |