taron133
2020-10-26 aa8d874c8a3287d41d26566ae32b6ed8d4557ff9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import {
    getFiles,
    setFiles
} from './util';
 
 
export default function Upload(eventBus, overlays) {
 
    function createFileBox(element) {
 
        var $overlay = Ext.get(Ext.DomHelper.createDom(Upload.OVERLAY_HTML));
 
        var $fileIcon = $overlay.down('.icExe');
 
        $fileIcon.on('click', function (e) {
            e.preventDefault();
            eventBus.fire('files.click', { element: element, fileIcon: $fileIcon });
        });
 
        function renderFiles(element, $fileIcon) {
            var files = getFiles(element);
            $fileIcon[files.length ? 'addCls' : 'removeCls']('icExeR');
        }
 
        // attach an overlay to a node
        overlays.add(element, 'files', {
            position: {
                bottom: 24,
                left: 3
            },
            html: $overlay.dom
        });
 
        renderFiles(element, $fileIcon);
 
        eventBus.on('files.updated', function (event) {
            var element = event.element,
                files = event.files,
                fileIcon = event.fileIcon;
 
            setFiles(element, files);
            renderFiles(element, fileIcon);
        });
    }
 
    eventBus.on('shape.added', function (event) {
        var element = event.element;
 
        if (element.labelTarget ||
            !element.businessObject.$instanceOf('bpmn:Task')) {
 
            return;
        }
 
        defer(function () {
            createFileBox(element);
        });
 
    });
}
 
Upload.OVERLAY_HTML =
    '<div class="files-overlay">' + 
        '<div class="icExe"></div>' +
    '</div>'
 
Upload.FILE_HTML =
    '<div class="file">' +
        '<div data-text /><a href class="delete icon-delete" data-delete></a>' +
    '</div>';
 
Upload.$inject = [
    'eventBus',
    'overlays'
];
 
// helpers
function defer(fn) {
    setTimeout(fn, 0);
}