Skip to content

Instantly share code, notes, and snippets.

@marclundgren
Last active August 29, 2015 14:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save marclundgren/6614e39242b8ee2a134c to your computer and use it in GitHub Desktop.
Save marclundgren/6614e39242b8ee2a134c to your computer and use it in GitHub Desktop.
Liferay Upload Folders javascript
var URL_DL_ADD_FOLDER = '/dlapp/add-folder';
var uploader = this._getUploader();
var uploadFileTree = function(treeNode, folderId) {
return new A.Promise(function(resolve, reject) {
if (treeNode.isFile) {
treeNode.file(
function(file) {
var fileHTML5 = new A.FileHTML5(file);
var uploadURL = instance._getUploadURL(folderId);
uploader.once('uploadcomplete',
function() {
resolve(treeNode);
}
);
uploader.once('uploaderror',
function() {
reject(treeNode);
}
);
uploader.upload(fileHTML5, uploadURL);
}
);
}
else if (treeNode.isDirectory) {
var appViewSelect = instance._appViewSelect,
folder = appViewSelect.get('selectedFolder'),
repositoryId = folder.repositoryId;
Liferay.Service(
URL_DL_ADD_FOLDER,
{
description: null,
name: treeNode.name,
parentFolderId: folderId,
repositoryId: repositoryId
},
function(response) {
var directoryReader = treeNode.createReader(),
folderId = response.folderId;
directoryReader.readEntries(
function(entries) {
var promises = A.Array.map(
entries,
function(item, index) {
return uploadFileTree(item, folderId);
}
);
A.Promise.all(promises).then(resolve);
}
);
}
);
}
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment