forked from Wavyzz/dolibarr
142 lines
5.2 KiB
JavaScript
142 lines
5.2 KiB
JavaScript
/*
|
|
* jQuery File Upload jQuery UI Plugin 1.2
|
|
* https://github.com/blueimp/jQuery-File-Upload
|
|
*
|
|
* Copyright 2012, Sebastian Tschan
|
|
* https://blueimp.net
|
|
*
|
|
* Licensed under the MIT license:
|
|
* http://www.opensource.org/licenses/MIT
|
|
*/
|
|
|
|
/*jslint nomen: true */
|
|
/*global define, window */
|
|
|
|
(function (factory) {
|
|
'use strict';
|
|
if (typeof define === 'function' && define.amd) {
|
|
// Register as an anonymous AMD module:
|
|
define(['jquery', './jquery.fileupload-ui.js'], factory);
|
|
} else {
|
|
// Browser globals:
|
|
factory(window.jQuery);
|
|
}
|
|
}(function ($) {
|
|
'use strict';
|
|
$.widget('blueimpJUI.fileupload', $.blueimpUI.fileupload, {
|
|
options: {
|
|
sent: function (e, data) {
|
|
if (data.context && data.dataType &&
|
|
data.dataType.substr(0, 6) === 'iframe') {
|
|
// Iframe Transport does not support progress events.
|
|
// In lack of an indeterminate progress bar, we set
|
|
// the progress to 100%, showing the full animated bar:
|
|
data.context
|
|
.find('.progress').progressbar(
|
|
'option',
|
|
'value',
|
|
100
|
|
);
|
|
}
|
|
},
|
|
progress: function (e, data) {
|
|
if (data.context) {
|
|
data.context.find('.progress').progressbar(
|
|
'option',
|
|
'value',
|
|
parseInt(data.loaded / data.total * 100, 10)
|
|
);
|
|
}
|
|
},
|
|
progressall: function (e, data) {
|
|
var $this = $(this);
|
|
$this.find('.fileupload-progress')
|
|
.find('.progress').progressbar(
|
|
'option',
|
|
'value',
|
|
parseInt(data.loaded / data.total * 100, 10)
|
|
).end()
|
|
.find('.progress-extended').each(function () {
|
|
$(this).html(
|
|
$this.data('fileupload')
|
|
._renderExtendedProgress(data)
|
|
);
|
|
});
|
|
}
|
|
},
|
|
_renderUpload: function (func, files) {
|
|
var node = $.blueimpUI.fileupload.prototype
|
|
._renderUpload.call(this, func, files),
|
|
showIconText = $(window).width() > 480;
|
|
node.find('.progress').empty().progressbar();
|
|
node.find('.start button').button({
|
|
icons: {primary: 'ui-icon-circle-arrow-e'},
|
|
text: showIconText
|
|
});
|
|
node.find('.cancel button').button({
|
|
icons: {primary: 'ui-icon-cancel'},
|
|
text: showIconText
|
|
});
|
|
return node;
|
|
},
|
|
_renderDownload: function (func, files) {
|
|
var node = $.blueimpUI.fileupload.prototype
|
|
._renderDownload.call(this, func, files),
|
|
showIconText = $(window).width() > 480;
|
|
node.find('.delete button').button({
|
|
icons: {primary: 'ui-icon-trash'},
|
|
text: showIconText
|
|
});
|
|
return node;
|
|
},
|
|
_transition: function (node) {
|
|
var that = this,
|
|
deferred = $.Deferred();
|
|
if (node.hasClass('fade')) {
|
|
node.fadeToggle(function () {
|
|
deferred.resolveWith(node);
|
|
});
|
|
} else {
|
|
deferred.resolveWith(node);
|
|
}
|
|
return deferred;
|
|
},
|
|
_create: function () {
|
|
$.blueimpUI.fileupload.prototype._create.call(this);
|
|
this.element
|
|
.find('.fileupload-buttonbar')
|
|
.find('.fileinput-button').each(function () {
|
|
var input = $(this).find('input:file').detach();
|
|
$(this)
|
|
.button({icons: {primary: 'ui-icon-plusthick'}})
|
|
.append(input);
|
|
})
|
|
.end().find('.start')
|
|
.button({icons: {primary: 'ui-icon-circle-arrow-e'}})
|
|
.end().find('.cancel')
|
|
.button({icons: {primary: 'ui-icon-cancel'}})
|
|
.end().find('.delete')
|
|
.button({icons: {primary: 'ui-icon-trash'}})
|
|
.end().find('.progress').empty().progressbar();
|
|
},
|
|
destroy: function () {
|
|
this.element
|
|
.find('.fileupload-buttonbar')
|
|
.find('.fileinput-button').each(function () {
|
|
var input = $(this).find('input:file').detach();
|
|
$(this)
|
|
.button('destroy')
|
|
.append(input);
|
|
})
|
|
.end().find('.start')
|
|
.button('destroy')
|
|
.end().find('.cancel')
|
|
.button('destroy')
|
|
.end().find('.delete')
|
|
.button('destroy')
|
|
.end().find('.progress').progressbar('destroy');
|
|
$.blueimpUI.fileupload.prototype.destroy.call(this);
|
|
}
|
|
});
|
|
}));
|