mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-26 08:38:54 +01:00
61 lines
1.2 KiB
JavaScript
61 lines
1.2 KiB
JavaScript
/**
|
|
* @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
|
|
* For licensing, see LICENSE.md or http://ckeditor.com/license
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
// Slow down the upload process.
|
|
// This trick works only on Chrome.
|
|
|
|
( function() {
|
|
XMLHttpRequest.prototype.baseSend = XMLHttpRequest.prototype.send;
|
|
|
|
XMLHttpRequest.prototype.send = function( data ) {
|
|
var baseOnProgress = this.onprogress,
|
|
baseOnLoad = this.onload;
|
|
|
|
this.onprogress = function() {};
|
|
|
|
this.onload = function( evt ) {
|
|
// Total file size.
|
|
var total = 1163,
|
|
step = Math.round( total / 10 ),
|
|
loaded = 0,
|
|
xhr = this;
|
|
|
|
function progress() {
|
|
setTimeout( function() {
|
|
if ( xhr.aborted ) {
|
|
return;
|
|
}
|
|
|
|
loaded += step;
|
|
if ( loaded > total ) {
|
|
loaded = total;
|
|
}
|
|
|
|
if ( loaded > step * 4 && xhr.responseText.indexOf( 'incorrectFile' ) > 0 ) {
|
|
xhr.aborted = true;
|
|
xhr.onerror();
|
|
} else if ( loaded < total ) {
|
|
evt.loaded = loaded;
|
|
baseOnProgress( { loaded: loaded } );
|
|
progress();
|
|
} else {
|
|
baseOnLoad( evt );
|
|
}
|
|
}, 300 );
|
|
}
|
|
|
|
progress();
|
|
};
|
|
|
|
this.abort = function() {
|
|
this.aborted = true;
|
|
this.onabort();
|
|
};
|
|
|
|
this.baseSend( data );
|
|
};
|
|
} )(); |