*/
add: function(e, data) {
self.log('add', e, data);
- var that = $(this), freeSpace;
+ var that = $(this), freeSpace = 0;
var upload = new OC.FileUpload(self, data);
// can't link directly due to jQuery not liking cyclic deps on its ajax object
}
// check free space
- freeSpace = $('#free_space').val();
+ if (!self.fileList || upload.getTargetFolder() === self.fileList.getCurrentDirectory()) {
+ // Use global free space if there is no file list to check or the current directory is the target
+ freeSpace = $('#free_space').val()
+ } else if (upload.getTargetFolder().indexOf(self.fileList.getCurrentDirectory()) === 0) {
+ // Check subdirectory free space if file is uploaded there
+ var targetSubdir = upload._targetFolder.replace(self.fileList.getCurrentDirectory(), '')
+ freeSpace = parseInt(upload.uploader.fileList.getModelForFile(targetSubdir).get('quotaAvailableBytes'))
+ }
if (freeSpace >= 0 && selection.totalBytes > freeSpace) {
data.textStatus = 'notenoughspace';
data.errorThrown = t('files',
'Not enough free space, you are uploading {size1} but only {size2} is left', {
'size1': OC.Util.humanFileSize(selection.totalBytes),
- 'size2': OC.Util.humanFileSize($('#free_space').val())
+ 'size2': OC.Util.humanFileSize(freeSpace)
});
}
mtime: parseInt($el.attr('data-mtime'), 10),
type: $el.attr('data-type'),
etag: $el.attr('data-etag'),
+ quotaAvailableBytes: $el.attr('data-quota'),
permissions: parseInt($el.attr('data-permissions'), 10),
hasPreview: $el.attr('data-has-preview') === 'true',
isEncrypted: $el.attr('data-e2eencrypted') === 'true'
"data-mime": mime,
"data-mtime": mtime,
"data-etag": fileData.etag,
+ "data-quota": fileData.quotaAvailableBytes,
"data-permissions": permissions,
"data-has-preview": fileData.hasPreview !== false,
"data-e2eencrypted": fileData.isEncrypted === true
type: 'file',
size: 12,
etag: 'abc',
+ quotaAvailableBytes: '-1',
permissions: OC.PERMISSION_ALL,
hasPreview: true,
isEncrypted: false
mimetype: 'application/pdf',
mtime: 234560000,
size: 58009,
+ quotaAvailableBytes: '-1',
etag: '123',
permissions: OC.PERMISSION_ALL,
hasPreview: true,
mimetype: 'httpd/unix-directory',
mtime: 134560000,
size: 250,
+ quotaAvailableBytes: '-1',
etag: '456',
permissions: OC.PERMISSION_ALL,
hasPreview: true,
mtime: 123456789,
type: 'file',
size: 12,
+ quotaAvailableBytes: '-1',
etag: 'abc',
permissions: OC.PERMISSION_ALL,
hasPreview: true,
mimetype: 'httpd/unix-directory',
mtime: 134560000,
size: 250,
+ quotaAvailableBytes: '-1',
etag: '456',
permissions: OC.PERMISSION_ALL,
hasPreview: true,