66 lines
3.0 KiB
JavaScript
66 lines
3.0 KiB
JavaScript
$.WcsFileUpload = {
|
|
prepare: function() {
|
|
var base_widget = $(this);
|
|
if ($(base_widget).find('input[type=hidden]').val()) {
|
|
$(base_widget).find('input[type=file]').hide();
|
|
$(base_widget).find('.use-file-from-fargo').hide();
|
|
$(base_widget).addClass('has-file');
|
|
} else {
|
|
$(base_widget).find('.fileinfo').hide();
|
|
$(base_widget).addClass('has-no-file');
|
|
}
|
|
$(this).find('input[type=file]').fileupload({
|
|
dropZone: base_widget,
|
|
pasteZone: base_widget,
|
|
dataType: 'json',
|
|
add: function (e, data) {
|
|
$(base_widget).find('.fileprogress').removeClass('upload-error');
|
|
$(base_widget).find('.fileprogress .bar').text(
|
|
$(base_widget).find('.fileprogress .bar').data('upload'));
|
|
$(base_widget).find('.fileprogress .bar').css('width', '0%');
|
|
$(base_widget).find('.fileprogress').show();
|
|
$(base_widget).find('.fileinfo').hide();
|
|
$(base_widget).parents('form').find('input[name=submit]').prop('disabled', true);
|
|
var jqXHR = data.submit();
|
|
},
|
|
done: function(e, data) {
|
|
$(base_widget).find('.fileprogress').hide();
|
|
$(base_widget).find('.filename').text(data.result[0].name);
|
|
$(base_widget).find('.fileinfo').show();
|
|
$(base_widget).find('input[type=hidden]').val(data.result[0].token);
|
|
$(base_widget).parents('form').find('input[name=submit]').prop('disabled', false);
|
|
$(this).hide();
|
|
$(base_widget).find('.use-file-from-fargo').hide();
|
|
$(base_widget).addClass('has-file').removeClass('has-no-file');
|
|
$(this).trigger('change');
|
|
},
|
|
fail: function(e, data) {
|
|
$(base_widget).find('.fileprogress').addClass('upload-error');
|
|
$(base_widget).find('.fileprogress .bar').text(
|
|
$(base_widget).find('.fileprogress .bar').data('error'));
|
|
},
|
|
progress: function (e, data) {
|
|
var progress = parseInt(data.loaded / data.total * 100, 10);
|
|
$(base_widget).find('.fileprogress .bar').css('width', progress + '%');
|
|
}
|
|
});
|
|
$(this).find('a.remove').click(function() {
|
|
$(base_widget).find('input[type=hidden]').val('');
|
|
$(base_widget).find('.fileinfo').hide();
|
|
$(base_widget).find('input[type=file]').show();
|
|
$(base_widget).find('.use-file-from-fargo').show();
|
|
$(base_widget).removeClass('has-file').addClass('has-no-file');
|
|
$(base_widget).find('input[type=file]').trigger('change');
|
|
return false;
|
|
});
|
|
$(this).find('a.change').click(function() {
|
|
$(base_widget).find('input[type=file]').click();
|
|
return false;
|
|
});
|
|
}
|
|
}
|
|
|
|
$(function() {
|
|
$('.file-upload-widget').each($.WcsFileUpload.prepare);
|
|
});
|