app.uploadStatus.percentDone = 0;
asyncForEach(files, function (file, callback) {
- var path = encode(sanitize(app.path + '/' + file.name));
+ // do not handle directories (file.type is empty in such a case)
+ if (file.type === '') return callback();
+
+ var path = encode(sanitize(app.path + '/' + (file.webkitRelativePath || file.name)));
var formData = new FormData();
formData.append('file', file);
}
function dragOver(event) {
+ event.stopPropagation();
event.preventDefault();
+ event.dataTransfer.dropEffect = 'copy';
}
function drop(event) {
+ event.stopPropagation();
event.preventDefault();
uploadFiles(event.dataTransfer.files || []);
}
var that = this;
$(this.$refs.upload).on('change', function () {
-
// detach event handler
$(that.$refs.upload).off('change');
-
uploadFiles(that.$refs.upload.files || []);
});
this.$refs.upload.value = '';
this.$refs.upload.click();
},
+ onUploadFolder: function () {
+ var that = this;
+
+ $(this.$refs.uploadFolder).on('change', function () {
+ // detach event handler
+ $(that.$refs.uploadFolder).off('change');
+ uploadFiles(that.$refs.uploadFolder.files || []);
+ });
+
+ // reset the form first to make the change handler retrigger even on the same file selected
+ this.$refs.uploadFolder.value = '';
+ this.$refs.uploadFolder.click();
+ },
onDelete: function (entry) {
var that = this;