sdk: flatten out some nested callbacks
This commit is contained in:
parent
cb29cf83ac
commit
bf3339fec7
137
static/sdk.js
137
static/sdk.js
@ -1,10 +1,8 @@
|
||||
;
|
||||
|
||||
//
|
||||
|
||||
var contented = (function() {
|
||||
;(function() {
|
||||
"use strict";
|
||||
|
||||
var installPolyfills = function() {
|
||||
|
||||
// @ref https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob
|
||||
if (!HTMLCanvasElement.prototype.toBlob) {
|
||||
Object.defineProperty(HTMLCanvasElement.prototype, 'toBlob', {
|
||||
@ -22,6 +20,7 @@ var contented = (function() {
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
var getCurrentScriptPath = function () {
|
||||
// Determine current script path
|
||||
@ -34,66 +33,6 @@ var contented = (function() {
|
||||
return currentScript.replace(currentScriptFile, '');
|
||||
};
|
||||
|
||||
var currentScriptPath = getCurrentScriptPath();
|
||||
var baseURL = currentScriptPath.replace('sdk.js', '');
|
||||
|
||||
return {
|
||||
"loaded": false,
|
||||
|
||||
"baseURL": baseURL,
|
||||
|
||||
"__preInit": [],
|
||||
|
||||
/**
|
||||
* initArea shows the contented upload widget over the top of a target DOM element.
|
||||
*
|
||||
* @param any element Drop target (string selector / DOMElement / jQuery)
|
||||
* @param Function onUploaded Called with an array of upload IDs
|
||||
* @param Function onClose Called when the widget is being destroyed
|
||||
*/
|
||||
"init": function(elementSelector, onUploaded, onClose) {
|
||||
contented.__preInit.push([elementSelector, onUploaded, onClose]);
|
||||
},
|
||||
|
||||
/**
|
||||
* supportsDrop returns whether drag-and-drop is supported by this browser.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
"supportsDrop": function() {
|
||||
return ('ondrop' in window && 'FormData' in window && 'FileReader' in window);
|
||||
},
|
||||
|
||||
"getPreviewURL": function(id) {
|
||||
return baseURL + "p/" + encodeURIComponent(id);
|
||||
},
|
||||
"getMultiPreviewURL": function(items) {
|
||||
return baseURL + "p/" + encodeURIComponent(items.join("-"));
|
||||
},
|
||||
"getDownloadURL": function(id) {
|
||||
return baseURL + "get/" + encodeURIComponent(id);
|
||||
},
|
||||
"getInfoJSONURL": function(id) {
|
||||
return baseURL + "info/" + encodeURIComponent(id);
|
||||
},
|
||||
"getThumbnailURL": function(thumbnailType, id) {
|
||||
return baseURL + "thumb/" + encodeURIComponent(thumbnailType) + "/" + encodeURIComponent(id);
|
||||
},
|
||||
"thumbnail": {
|
||||
"small_square": "s",
|
||||
"medium_square": "b",
|
||||
"medium": "t",
|
||||
"large": "m",
|
||||
"xlarge": "l",
|
||||
"xxlarge": "h"
|
||||
}
|
||||
};
|
||||
|
||||
})();
|
||||
|
||||
;(function() {
|
||||
"use strict";
|
||||
|
||||
var loadScript = function(url, onLoad) {
|
||||
var script = document.createElement('script');
|
||||
script.onload = onLoad;
|
||||
@ -139,8 +78,6 @@ var contented = (function() {
|
||||
});
|
||||
};
|
||||
|
||||
var afterScriptsLoaded = function() {
|
||||
|
||||
var initArea = function (elementSelector, onUploaded, onClose) {
|
||||
onUploaded = onUploaded || function () { };
|
||||
onClose = onClose || function () { };
|
||||
@ -438,7 +375,9 @@ var contented = (function() {
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
var afterScriptsLoaded = function() {
|
||||
|
||||
// Update fields in global variable
|
||||
contented.init = initArea;
|
||||
@ -450,6 +389,65 @@ var contented = (function() {
|
||||
}
|
||||
};
|
||||
|
||||
var init = function() {
|
||||
|
||||
installPolyfills();
|
||||
|
||||
var currentScriptPath = getCurrentScriptPath();
|
||||
var baseURL = currentScriptPath.replace('sdk.js', '');
|
||||
|
||||
window.contented = {
|
||||
"loaded": false,
|
||||
|
||||
"baseURL": baseURL,
|
||||
|
||||
"__preInit": [],
|
||||
|
||||
/**
|
||||
* initArea shows the contented upload widget over the top of a target DOM element.
|
||||
*
|
||||
* @param any element Drop target (string selector / DOMElement / jQuery)
|
||||
* @param Function onUploaded Called with an array of upload IDs
|
||||
* @param Function onClose Called when the widget is being destroyed
|
||||
*/
|
||||
"init": function(elementSelector, onUploaded, onClose) {
|
||||
contented.__preInit.push([elementSelector, onUploaded, onClose]);
|
||||
},
|
||||
|
||||
/**
|
||||
* supportsDrop returns whether drag-and-drop is supported by this browser.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
"supportsDrop": function() {
|
||||
return ('ondrop' in window && 'FormData' in window && 'FileReader' in window);
|
||||
},
|
||||
|
||||
"getPreviewURL": function(id) {
|
||||
return baseURL + "p/" + encodeURIComponent(id);
|
||||
},
|
||||
"getMultiPreviewURL": function(items) {
|
||||
return baseURL + "p/" + encodeURIComponent(items.join("-"));
|
||||
},
|
||||
"getDownloadURL": function(id) {
|
||||
return baseURL + "get/" + encodeURIComponent(id);
|
||||
},
|
||||
"getInfoJSONURL": function(id) {
|
||||
return baseURL + "info/" + encodeURIComponent(id);
|
||||
},
|
||||
"getThumbnailURL": function(thumbnailType, id) {
|
||||
return baseURL + "thumb/" + encodeURIComponent(thumbnailType) + "/" + encodeURIComponent(id);
|
||||
},
|
||||
"thumbnail": {
|
||||
"small_square": "s",
|
||||
"medium_square": "b",
|
||||
"medium": "t",
|
||||
"large": "m",
|
||||
"xlarge": "l",
|
||||
"xxlarge": "h"
|
||||
}
|
||||
};
|
||||
|
||||
// Load scripts
|
||||
var needScripts = [];
|
||||
if (typeof jQuery === "undefined") {
|
||||
@ -460,5 +458,8 @@ var contented = (function() {
|
||||
}
|
||||
|
||||
loadScripts(needScripts, afterScriptsLoaded);
|
||||
};
|
||||
|
||||
init();
|
||||
|
||||
})()
|
||||
|
Loading…
Reference in New Issue
Block a user