UploadStatus.js
1.63 KB
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
/**
* UploadStatus.js
*
* Released under LGPL License.
* Copyright (c) 1999-2016 Ephox Corp. All rights reserved
*
* License: http://www.tinymce.com/license
* Contributing: http://www.tinymce.com/contributing
*/
/**
* Holds the current status of a blob uri, if it's pending or uploaded and what the result urls was.
*
* @private
* @class tinymce.file.UploadStatus
*/
define("tinymce/file/UploadStatus", [
], function() {
return function() {
var PENDING = 1, UPLOADED = 2;
var blobUriStatuses = {};
function createStatus(status, resultUri) {
return {
status: status,
resultUri: resultUri
};
}
function hasBlobUri(blobUri) {
return blobUri in blobUriStatuses;
}
function getResultUri(blobUri) {
var result = blobUriStatuses[blobUri];
return result ? result.resultUri : null;
}
function isPending(blobUri) {
return hasBlobUri(blobUri) ? blobUriStatuses[blobUri].status === PENDING : false;
}
function isUploaded(blobUri) {
return hasBlobUri(blobUri) ? blobUriStatuses[blobUri].status === UPLOADED : false;
}
function markPending(blobUri) {
blobUriStatuses[blobUri] = createStatus(PENDING, null);
}
function markUploaded(blobUri, resultUri) {
blobUriStatuses[blobUri] = createStatus(UPLOADED, resultUri);
}
function removeFailed(blobUri) {
delete blobUriStatuses[blobUri];
}
function destroy() {
blobUriStatuses = {};
}
return {
hasBlobUri: hasBlobUri,
getResultUri: getResultUri,
isPending: isPending,
isUploaded: isUploaded,
markPending: markPending,
markUploaded: markUploaded,
removeFailed: removeFailed,
destroy: destroy
};
};
});