| 1 |
efrain |
1 |
/**
|
|
|
2 |
* Simple drag and drop.
|
|
|
3 |
*
|
|
|
4 |
* Used when we just want a list of things that can be re-ordered by dragging.
|
|
|
5 |
*
|
|
|
6 |
* @class M.tool_lp.dragdrop_reorder
|
|
|
7 |
* @constructor
|
|
|
8 |
* @extends M.core.dragdrop
|
|
|
9 |
*/
|
|
|
10 |
var DRAGREORDER = function() {
|
|
|
11 |
DRAGREORDER.superclass.constructor.apply(this, arguments);
|
|
|
12 |
};
|
|
|
13 |
|
|
|
14 |
var CSS = {
|
|
|
15 |
EDITINGMOVE: 'editing_move',
|
|
|
16 |
ICONCLASS: 'iconsmall'
|
|
|
17 |
};
|
|
|
18 |
Y.extend(DRAGREORDER, M.core.dragdrop, {
|
|
|
19 |
initializer: function(args) {
|
|
|
20 |
if (Y.one('.' + args.parentNodeClass).all('.' + args.dragHandleInsertClass).size() <= 1) {
|
|
|
21 |
// We can't re-order when there is only one item.
|
|
|
22 |
return;
|
|
|
23 |
}
|
|
|
24 |
// Set group for parent class
|
|
|
25 |
this.groups = [args.group];
|
|
|
26 |
this.samenodeclass = args.sameNodeClass;
|
|
|
27 |
this.parentnodeclass = args.parentNodeClass;
|
|
|
28 |
this.draghandleinsertclass = args.dragHandleInsertClass;
|
|
|
29 |
|
|
|
30 |
this.samenodelabel = args.sameNodeLabel;
|
|
|
31 |
this.parentnodelabel = args.parentNodeLabel;
|
|
|
32 |
this.callback = args.callback;
|
|
|
33 |
|
|
|
34 |
var delegate = new Y.DD.Delegate({
|
|
|
35 |
container: '.' + args.parentNodeClass,
|
|
|
36 |
nodes: '.' + args.sameNodeClass,
|
|
|
37 |
target: true,
|
|
|
38 |
handles: ['.' + CSS.EDITINGMOVE],
|
|
|
39 |
dragConfig: {groups: this.groups}
|
|
|
40 |
});
|
|
|
41 |
|
|
|
42 |
delegate.dd.plug(Y.Plugin.DDProxy);
|
|
|
43 |
|
|
|
44 |
Y.one('.' + args.parentNodeClass)
|
|
|
45 |
.all('.' + args.dragHandleInsertClass)
|
|
|
46 |
.each(
|
|
|
47 |
function(node) {
|
|
|
48 |
var draghandle = this.get_drag_handle(args.dragHandleText, CSS.EDITINGMOVE, CSS.ICONCLASS, true);
|
|
|
49 |
node.insert(draghandle);
|
|
|
50 |
}, this);
|
|
|
51 |
},
|
|
|
52 |
|
|
|
53 |
drop_hit: function(e) {
|
|
|
54 |
this.callback(e);
|
|
|
55 |
}
|
|
|
56 |
|
|
|
57 |
}, {
|
|
|
58 |
NAME: 'tool_lp-dragdrop-reorder',
|
|
|
59 |
ATTRS: {
|
|
|
60 |
}
|
|
|
61 |
});
|
|
|
62 |
|
|
|
63 |
M.tool_lp = M.tool_lp || {};
|
|
|
64 |
M.tool_lp.dragdrop_reorder = function(params) {
|
|
|
65 |
return new DRAGREORDER(params);
|
|
|
66 |
};
|