Check for target folder available quota when uploading
Signed-off-by: Julius Härtl <jus@bitgrid.net> Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
This commit is contained in:
parent
4530877e5d
commit
a297523381
|
@ -918,7 +918,7 @@ OC.Uploader.prototype = _.extend({
|
|||
*/
|
||||
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
|
||||
|
@ -989,13 +989,20 @@ OC.Uploader.prototype = _.extend({
|
|||
}
|
||||
|
||||
// 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)
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -1236,6 +1236,7 @@
|
|||
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'
|
||||
|
@ -1495,6 +1496,7 @@
|
|||
"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
|
||||
|
|
|
@ -2232,6 +2232,7 @@ describe('OCA.Files.FileList tests', function() {
|
|||
type: 'file',
|
||||
size: 12,
|
||||
etag: 'abc',
|
||||
quotaAvailableBytes: '-1',
|
||||
permissions: OC.PERMISSION_ALL,
|
||||
hasPreview: true,
|
||||
isEncrypted: false
|
||||
|
@ -2243,6 +2244,7 @@ describe('OCA.Files.FileList tests', function() {
|
|||
mimetype: 'application/pdf',
|
||||
mtime: 234560000,
|
||||
size: 58009,
|
||||
quotaAvailableBytes: '-1',
|
||||
etag: '123',
|
||||
permissions: OC.PERMISSION_ALL,
|
||||
hasPreview: true,
|
||||
|
@ -2255,6 +2257,7 @@ describe('OCA.Files.FileList tests', function() {
|
|||
mimetype: 'httpd/unix-directory',
|
||||
mtime: 134560000,
|
||||
size: 250,
|
||||
quotaAvailableBytes: '-1',
|
||||
etag: '456',
|
||||
permissions: OC.PERMISSION_ALL,
|
||||
hasPreview: true,
|
||||
|
@ -2278,6 +2281,7 @@ describe('OCA.Files.FileList tests', function() {
|
|||
mtime: 123456789,
|
||||
type: 'file',
|
||||
size: 12,
|
||||
quotaAvailableBytes: '-1',
|
||||
etag: 'abc',
|
||||
permissions: OC.PERMISSION_ALL,
|
||||
hasPreview: true,
|
||||
|
@ -2290,6 +2294,7 @@ describe('OCA.Files.FileList tests', function() {
|
|||
mimetype: 'httpd/unix-directory',
|
||||
mtime: 134560000,
|
||||
size: 250,
|
||||
quotaAvailableBytes: '-1',
|
||||
etag: '456',
|
||||
permissions: OC.PERMISSION_ALL,
|
||||
hasPreview: true,
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
Client.PROPERTY_GETCONTENTLENGTH = '{' + Client.NS_DAV + '}getcontentlength';
|
||||
Client.PROPERTY_ISENCRYPTED = '{' + Client.NS_DAV + '}is-encrypted';
|
||||
Client.PROPERTY_SHARE_PERMISSIONS = '{' + Client.NS_OCS + '}share-permissions';
|
||||
Client.PROPERTY_QUOTA_AVAILABLE_BYTES = '{' + Client.NS_DAV + '}quota-available-bytes';
|
||||
|
||||
Client.PROTOCOL_HTTP = 'http';
|
||||
Client.PROTOCOL_HTTPS = 'https';
|
||||
|
@ -395,7 +396,7 @@
|
|||
data.mountType = mounTypeProp;
|
||||
}
|
||||
|
||||
const quotaAvailableBytes = props['{' + Client.NS_DAV + '}quota-available-bytes']
|
||||
var quotaAvailableBytes = props['{' + Client.NS_DAV + '}quota-available-bytes']
|
||||
if (!_.isUndefined(quotaAvailableBytes)) {
|
||||
data.quotaAvailableBytes = quotaAvailableBytes
|
||||
}
|
||||
|
|
|
@ -137,7 +137,9 @@
|
|||
/**
|
||||
* @type int
|
||||
*/
|
||||
sharePermissions: null
|
||||
sharePermissions: null,
|
||||
|
||||
quotaAvailableBytes: -1,
|
||||
};
|
||||
|
||||
if (!OC.Files) {
|
||||
|
|
Loading…
Reference in New Issue