Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
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
};