2
0
forked from Wavyzz/dolibarr
Files
dolibarr-fork/htdocs/includes/jquery/plugins/fileupload/js/jquery.fileupload-jui.js
2012-05-30 22:13:23 +02:00

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);
}
});
}));