You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pgfqe6ch8/public/javascripts/attachments.js

834 lines
31 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/* Redmine - project management software
Copyright (C) 2006-2013 Jean-Philippe Lang */
function postUpMsg(attachmentId) {
$.ajax({
url: '/attachments/renderTag',
type: "GET",
data: {
attachmentId: attachmentId
}
})
}
function reload(fileSpan) {
fileSpan.remove();
$('#upload_file_count').html("<%= l(:label_no_file_uploaded)%>");
$old_file = $("#_file");
$new_file = $old_file.clone(true);
$old_file.replaceWith($new_file);
$new_file.show();
}
function addFile_board(inputEl, file, eagerUpload, id,btnId) {
var attachments_frame = '#attachments_fields' + id;
if ($(attachments_frame).children().length < 30) {
deleteallfiles = $(inputEl).data('deleteAllFiles');
var attachmentId = addFile.nextAttachmentId++;
var fileSpan = $('<span>', {
'id': 'attachments_' + attachmentId,
'class': 'attachment clearfix'
});
fileSpan.append(
$('<i></i>').attr({
'class': ' iconfont icon-fujian color-grey-6 fl font-14 mr3 mt5',
'aria-hidden': true
}),
$('<input>', {
'type': 'text',
'class': 'upload_filename readonly hidden fl mt5',
'name': 'attachments[' + attachmentId + '][filename]',
'readonly': 'readonly',
'style': 'border:none; white-space: nowrap; text-overflow:ellipsis;'
}).val(file.name),
$('<font></font>').attr({
'class': 'ml20 mr20 fl mt5'
}).html(conver_size(file.size)),
// $('<input>', {
// 'type': 'text',
// 'class': 'description',
// 'name': 'attachments[' + attachmentId + '][description]',
// 'maxlength': 254,
// 'placeholder': $(inputEl).data('descriptionPlaceholder')
// }).toggle(!eagerUpload),
// $('<span >' + $(inputEl).data('fieldIsPublic') + ':</span>').attr({
// 'class': 'ispublic-label'
// }),
// $('<input>', {
// 'type': 'checkbox',
// 'class': 'is_public_checkbox',
// 'value': 1,
// 'name': 'attachments[' + attachmentId + '][is_public_checkbox]',
// checked: 'checked'
// }).toggle(!eagerUpload),
$('<a><i class="iconfont icon-shanchu color-grey-6 font-14"></i></a>').attr({
'href': "#",
'class': 'remove-upload fl mt1',
'style': 'vertical-align:top;'
}).click(function() {
if (confirm($(inputEl).data('areYouSure'))) {
removeFile();
if (!eagerUpload) {
(function(e) {
reload(e);
})(fileSpan);
}
}
}).toggle(!eagerUpload),
$('<div>', {
'class': 'div_attachments',
'name': 'div_' + 'attachments_' + attachmentId
})
).appendTo(attachments_frame);
if (eagerUpload) {
ajaxUpload(file, attachmentId, fileSpan, inputEl,btnId);
}
return attachmentId;
}
return null;
}
function addFile(inputEl, file, eagerUpload,btnId) {
var attachments_frame = '#attachments_fields';
// $("#issue_confirm").attr('href', '#');
$('#issue_confirm').attr("disabled",true);
$('#issue_confirm').css('background-color','#c1c1c1');
$('#issue_confirm').css('cursor','default');
if (true) {
deleteallfiles = $(inputEl).data('deleteAllFiles');
var attachmentId = addFile.nextAttachmentId++;
var fileSpan = $('<span>', {
'id': 'attachments_' + attachmentId,
'class': 'attachment'
});
fileSpan.append(
$('<i></i>').attr({
'class': 'iconfont icon-fujian mr5 color-green fl font-14',
'aria-hidden': true
}),
$('<input>', {
'type': 'text',
'class': 'upload_filename color-grey readonly hidden fl',
'name': 'attachments[' + attachmentId + '][filename]',
'readonly': 'readonly',
'style': 'border:none; white-space: nowrap;color:#676767; text-overflow:ellipsis;font-family: Consolas;'
}).val(file.name),
$('<span></span>').attr({
'class': 'mr10 color-grey fl mt2',
'style': 'vertical-align: middle;'
}).html(conver_size(file.size)),
// $('<input>', {
// 'type': 'text',
// 'class': 'description',
// 'name': 'attachments[' + attachmentId + '][description]',
// 'maxlength': 254,
// 'placeholder': $(inputEl).data('descriptionPlaceholder')
// }).toggle(!eagerUpload),
// $('<span >' + $(inputEl).data('fieldIsPublic') + ':</span>').attr({
// 'class': 'ispublic-label'
// }),
// $('<input>', {
// 'type': 'checkbox',
// 'class': 'is_public_checkbox',
// 'value': 1,
// 'name': 'attachments[' + attachmentId + '][is_public_checkbox]',
// checked: 'checked'
// }).toggle(!eagerUpload),
$('<a><i class="fa fa-trash-o mr5 color-grey-6"></i></a>').attr({
'href': "#",
'class': 'remove-upload fl mt1'
}).click(function() {
if (confirm($(inputEl).data('areYouSure'))) {
removeFile();
if (!eagerUpload) {
(function(e) {
reload(e);
})(fileSpan);
}
}
}).toggle(!eagerUpload),
$('<div>', {
'class': 'div_attachments',
'name': 'div_' + 'attachments_' + attachmentId
})
).appendTo('#attachments_fields');
$('#attachments_fields').append("<div class='cl'></div>");
// 计算文件名所占的size大小 中文1.8个size 其他1个size
var len = file.name.length;
var iSize = 0;
for(var i = 0; i < len; i++){
var regex =/^[\u4E00-\u9FA5]+$/;
var ch = file.name[i];
var judge = regex.test(ch);
if(regex.test(ch)){
iSize += 1.9;
}else{
iSize += 1;
}
}
$("input[name='attachments[" + attachmentId + "][filename]']").attr("size", iSize);
if (eagerUpload) {
ajaxUpload(file, attachmentId, fileSpan, inputEl,btnId);
}
return attachmentId;
}
return null;
}
addFile.nextAttachmentId = 1;
function addReviseFile(inputEl, file, eagerUpload,btnId) {
var attachments_frame = '#revise_attachments_fields';
if ($(attachments_frame).children().length < 30) {
deleteallfiles = $(inputEl).data('deleteAllFiles');
var attachmentId = addFile.nextAttachmentId++;
var fileSpan = $('<span>', {
'id': 'attachments_' + attachmentId,
'class': 'attachment'
});
fileSpan.append($('<i></i>').attr({
'class': 'iconfont icon-fujian color-grey-6 fl font-14 mr3 mt5',
'aria-hidden': true
}),
$('<input>', {
'type': 'text',
'class': 'upload_filename readonly hidden fl mt5',
'name': 'attachments[' + attachmentId + '][filename]',
'readonly': 'readonly',
'style': 'border:none; white-space: nowrap; text-overflow:ellipsis;vertical-align:middle;'
}).val(file.name),
// $('<input>', {
// 'type': 'text',
// 'class': 'description',
// 'name': 'attachments[' + attachmentId + '][description]',
// 'maxlength': 254,
// 'placeholder': $(inputEl).data('descriptionPlaceholder')
// }).toggle(!eagerUpload),
// $('<span >' + $(inputEl).data('fieldIsPublic') + ':</span>').attr({
// 'class': 'ispublic-label'
// }),
// $('<input>', {
// 'type': 'checkbox',
// 'class': 'is_public_checkbox',
// 'value': 1,
// 'name': 'attachments[' + attachmentId + '][is_public_checkbox]',
// checked: 'checked'
// }).toggle(!eagerUpload),
$('<a><i class="iconfont icon-shanchu color-grey-6 font-14"></i></a>').attr({
'href': "#",
'class': 'remove-upload fl mt1',
'style': 'vertical-align:top;'
}).click(function() {
if (confirm($(inputEl).data('areYouSure'))) {
removeReviseFile();
if (!eagerUpload) {
(function(e) {
reload(e);
})(fileSpan);
}
}
}).toggle(!eagerUpload),
$('<div>', {
'class': 'div_attachments',
'name': 'div_' + 'attachments_' + attachmentId
})
).appendTo('#revise_attachments_fields');
$("#uploadReviseBox").addClass('disable_link');
$("#choose_revise_attach").attr("onclick","return false;");
if (eagerUpload) {
ajaxUpload(file, attachmentId, fileSpan, inputEl,btnId);
}
return attachmentId;
}
return null;
}
function ajaxUpload(file, attachmentId, fileSpan, inputEl,btnId) {
//上传开始调用函数
function onLoadstart(e) {
fileSpan.removeClass('ajax-waiting');
fileSpan.addClass('ajax-loading');
$('input:submit', $(this).parents('form')).attr('disabled', 'disabled');
$(".submit_form").attr("disabled",true).removeClass("task-btn-orange").css("pointer-events","none");
}
//更改progressbar的值
function onProgress(e) {
if (e.lengthComputable) {
try{
this.progressbar('value', e.loaded * 100 / e.total);
} catch (e){
}
}
}
function actualUpload(file, attachmentId, fileSpan, inputEl,btnId) {
ajaxUpload.uploading++;
uploadBlob(file, $(inputEl).data('upload-path'), attachmentId, {
loadstartEventHandler: onLoadstart.bind(progressSpan),
progressEventHandler: onProgress.bind(progressSpan)
})
.done(function(result) {
try{
progressSpan.progressbar('value', 100).remove(); //上传完成就去掉该文件名后的进度条
} catch (e){
}
fileSpan.find('input.description, a').css('display', 'inline-block');
fileSpan.find('input.is_public_checkbox, a').css('display', 'inline-block');
})
.fail(function(result) {
progressSpan.text("");
if ($("#network_issue")) { //在上传处都要给出一个network_issue的div用来显示错误
$("#network_issue").show();
}
}).always(function() {
ajaxUpload.uploading--;
fileSpan.removeClass('ajax-loading');
var containerid = $(inputEl).data('containerid');//多个上传控件需要的容器id
if(containerid == undefined ){
var count = 1;//同步上传参数为1所以不需要去获取正在上传的文件就知道是1
// $('#upload_file_count').html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('lebelFileUploding'));
}
else{
var count = 1;
$('#upload_file_count' + containerid).html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('lebelFileUploding'));
}
var form = fileSpan.parents('form');
if (form.queue('upload').length == 0 && ajaxUpload.uploading == 0) { //所有文件上传完毕,更改状态
$('input:submit', form).removeAttr('disabled');
$(".submit_form").removeAttr("disabled").addClass("task-btn-orange").css("pointer-events","auto");
$('#' + btnId).css('background-color', '#ff7500');
$('#'+btnId).attr("onclick",$('#'+btnId).attr("click-bf")).removeAttr("click-bf");
if(containerid == undefined ){
var count = $('#attachments_fields>span').length;
// $('#upload_file_count').html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('fileCount'));
}else{
var count = $('#attachments_fields' + containerid + '>span').length;
$('#upload_file_count'+containerid).html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('fileCount'));
}
}
form.dequeue('upload');//上传完成一个就退出一个
});
//gcm files count and add delete_all link
//modify by yutao 2015-5-14 <20><>1<EFBFBD><31>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD>ϴ<EFBFBD><CFB4>ؼ<EFBFBD>ʱ<EFBFBD>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bug <20>ʸ<EFBFBD>֮ start
var containerid = $(inputEl).data('containerid');
$('#'+btnId).css('background-color','#c1c1c1');
$('#'+btnId).attr("click-bf",$('#'+btnId).attr("onclick")).removeAttr("onclick");//禁用a标签
if (containerid == undefined) {
var count = $('#attachments_fields>span').length;
// $('#upload_file_count').html("<span id=\"count\">1</span>" + $(inputEl).data('lebelFileUploding'));//目前肯定是穿一个文件
if (count >= 1) {
var add_attachs = $('.add_attachment');
var delete_all = $('.remove_all');
if (delete_all.length < 1) {
add_attachs.append($("<a>&nbsp</a>").attr({
"href": "javascript:void(0)",
'class': 'remove_all none',
"onclick": "removeAll()"
}));
}
}
} else {
var count = $('#attachments_fields' + containerid + '>span').length;
$('#upload_file_count' + containerid).html("<span id=\"count\">1</span>" + $(inputEl).data('lebelFileUploding'));//目前肯定是穿一个文件
if (count >= 1) {
var add_attachs = $('.add_attachment').filter(function(index) {
return $(this).data('containerid') == containerid;
});
var delete_all = $('.remove_all').filter(function(index) {
return $(this).data('containerid') == containerid;
});
if (delete_all.length < 1) {
add_attachs.append($("<a>&nbsp</a>").attr({
"href": "javascript:void(0)",
'class': 'remove_all',
'data-containerid': containerid,
"onclick": "removeAll('" + containerid + "')"
}));
}
}
//modify by yutao 2015-5-14 <20><>1<EFBFBD><31>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD>ϴ<EFBFBD><CFB4>ؼ<EFBFBD>ʱ<EFBFBD>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bug <20>ʸ<EFBFBD>֮ end
}
//gcm
}
//在插入文件名的后边插入div
var progressSpan = $('<div>').insertAfter(fileSpan.find('input.upload_filename'));
progressSpan.progressbar(); //将div处理成progress bar
fileSpan.addClass('ajax-waiting'); //添加文件正在上传的状态
var containerid = $(inputEl).data('containerid');//多个上传控件需要的容器id
if(containerid == undefined ){ //选择了多少个文件也要显示,因为有时候文件过大,一时半会传不完,但还是显示文件没有选择
var count = $('#attachments_fields>span').length;
$('#upload_file_count').html("<span id=\"count\">" + count + "</span>" + '个文件被选择');
}else{
var count = $('#attachments_fields' + containerid + '>span').length;
$('#upload_file_count'+containerid).html("<span id=\"count\">" + count + "</span>" + '个文件被选择');
}
//最大的同步上传参数
var maxSyncUpload = 1 //$(inputEl).data('max-concurrent-uploads');
//如果没有指定同步上传参数 或者参数不对,或者需要上传的文件已经小于同步上传的个数,那么直接上传
if (maxSyncUpload == null || maxSyncUpload <= 0 || ajaxUpload.uploading < maxSyncUpload)
actualUpload(file, attachmentId, fileSpan, inputEl,btnId);
else //否则就进行队列上传
$(inputEl).parents('form').queue('upload', actualUpload.bind(this, file, attachmentId, fileSpan, inputEl,btnId));
}
ajaxUpload.uploading = 0;
function removeFile() {
$(this).parent('span').remove();
return false;
}
function removeReviseFile() {
$(this).parent('span').remove();
$("#uploadReviseBox").removeClass('disable_link');
$("#choose_revise_attach").attr("onclick","_file.click();");
return false;
}
//gcm delete all file
//modify by yutao 2015-5-14 <20><>1<EFBFBD><31>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD>ϴ<EFBFBD><CFB4>ؼ<EFBFBD>ʱ<EFBFBD>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bug <20>ʸ<EFBFBD>֮ start
function removeAll(containerid) {
if (confirm(deleteallfiles)) {
if (containerid == undefined) {
$(".remove-upload").removeAttr("data-confirm");
$(".remove-upload").click();
} else {
var arr = $(".remove-upload").filter(function() {
return $(this).data('containerid') == containerid;
});
arr.removeAttr("data-confirm");
arr.click();
}
}
// return false;
}
//modify by yutao 2015-5-14 <20><>1<EFBFBD><31>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD>ϴ<EFBFBD><CFB4>ؼ<EFBFBD>ʱ<EFBFBD>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bug <20>ʸ<EFBFBD>֮ end
//gcm
function uploadBlob(blob, uploadUrl, attachmentId, options) {
var actualOptions = $.extend({
loadstartEventHandler: $.noop,
progressEventHandler: $.noop
}, options);
if (uploadUrl.indexOf('?') > 0) {
uploadUrl = uploadUrl + '&attachment_id=' + attachmentId;
} else {
uploadUrl = uploadUrl + '?attachment_id=' + attachmentId;
}
if (blob instanceof window.File) {
uploadUrl += '&filename=' + encodeURIComponent(blob.name);
}
return $.ajax(uploadUrl, {
type: 'POST',
contentType: 'application/octet-stream',
beforeSend: function(jqXhr) {
jqXhr.setRequestHeader('Accept', 'application/js');
},
xhr: function() {
var xhr = $.ajaxSettings.xhr();
xhr.upload.onloadstart = actualOptions.loadstartEventHandler;
xhr.upload.onprogress = actualOptions.progressEventHandler;
return xhr;
},
data: blob,
cache: false,
processData: false
});
}
function addReviseInputFiles(inputEl,btnId) {
// var clearedFileInput = $(inputEl).clone().val('');
if (inputEl.files) {
uploadAndAttachReviseFiles(inputEl.files, inputEl,btnId);
// $(inputEl).remove();
} else {
// browser not supporting the file API, upload on form submission
var attachmentId;
var aFilename = inputEl.value.split(/\/|\\/);
var count = $('#attachments_fields>span').length;
attachmentId = addReviseFile(inputEl, {
name: aFilename[aFilename.length - 1]
}, false);
if (attachmentId) {
$(inputEl).attr({
name: 'attachments[' + attachmentId + '][file]'
}).hide();
if (count <= 0) count = 1;
}
}
//clearedFileInput.insertAfter('#attachments_fields');
}
function imageAddInputFiles(inputEl){
var extStart = inputEl.value.lastIndexOf(".");
var ext = inputEl.value.substring(extStart,inputEl.value.length).toUpperCase();
if(ext != ".BMP" && ext!=".PNG" && ext != ".GIF" && ext != ".JPG" && ext != ".JPEG" ){
notice_box("图片仅支持BMP、JPG、GIF、PNG、JPEG格式");
return;
}
addInputFiles(inputEl)
}
function addInputFiles(inputEl,btnId) {
// var clearedFileInput = $(inputEl).clone().val('');
if (inputEl.files) {
// if(inputEl.files.length >= 5){
// alert('一次选择的文件不能超过5个')
// return;
// }
// upload files using ajax
uploadAndAttachFiles(inputEl.files, inputEl,btnId);
// $(inputEl).remove();
} else {
// browser not supporting the file API, upload on form submission
var attachmentId;
var aFilename = inputEl.value.split(/\/|\\/);
var count = $('#attachments_fields>span').length;
attachmentId = addFile(inputEl, {
name: aFilename[aFilename.length - 1]
}, false);
if (attachmentId) {
$(inputEl).attr({
name: 'attachments[' + attachmentId + '][file]'
}).hide();
if (count <= 0) count = 1;
$('#upload_file_count').html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('fileCount'));
}
}
//clearedFileInput.insertAfter('#attachments_fields');
}
function addInputFiles_board(inputEl, id,btnId) {
// var clearedFileInput = $(inputEl).clone().val('');
if (inputEl.files) {
// if(inputEl.files.length >= 5){
// alert('一次选择的文件不能超过5个')
// return;
// }
// upload files using ajax
uploadAndAttachFiles_board(inputEl.files, inputEl, id,btnId);
// $(inputEl).remove();
} else {
// browser not supporting the file API, upload on form submission
var attachmentId;
var aFilename = inputEl.value.split(/\/|\\/);
attachmentId = addFile_board(inputEl, {
name: aFilename[aFilename.length - 1]
}, false, id);
if (attachmentId) {
$(inputEl).attr({
name: 'attachments[' + attachmentId + '][file]'
}).hide();
$('#upload_file_count').html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('fileCount'));
}
}
//clearedFileInput.insertAfter('#attachments_fields');
}
function uploadAndAttachReviseFiles(files, inputEl,btnId) {
var maxFileSize = $(inputEl).data('max-file-size');
var maxFileSizeExceeded = $(inputEl).data('max-file-size-message');
var sizeExceeded = false;
if(files.length > 1){
$("#hint_message").html("只能上传一个附件").show();
} else{
$("#hint_message").html("只能上传一个附件").hide();
$.each(files, function() {
if (this.size && maxFileSize != null && this.size > parseInt(maxFileSize)) {
sizeExceeded = true;
}
});
if (sizeExceeded) {
notice_sure_box(maxFileSizeExceeded);
} else {
$.each(files, function() {
addReviseFile(inputEl, this, true,btnId);
});
}
}
}
function uploadAndAttachFiles(files, inputEl,btnId) {
var maxFileSize = $(inputEl).data('max-file-size');
var maxFileSizeExceeded = $(inputEl).data('max-file-size-message');
var sizeExceeded = false;
$.each(files, function() {
if (this.size && maxFileSize != null && this.size > parseInt(maxFileSize)) {
sizeExceeded = true;
}
});
if (sizeExceeded) {
notice_sure_box(maxFileSizeExceeded);
} else {
$.each(files, function() {
addFile(inputEl, this, true,btnId);
});
}
}
function uploadAndAttachFiles_board(files, inputEl, id,btnId) {
var maxFileSize = $(inputEl).data('max-file-size');
var maxFileSizeExceeded = $(inputEl).data('max-file-size-message');
var sizeExceeded = false;
$.each(files, function() {
if (this.size && maxFileSize != null && this.size > parseInt(maxFileSize)) {
sizeExceeded = true;
}
});
if (sizeExceeded) {
notice_sure_box(maxFileSizeExceeded);
} else {
$.each(files, function() {
addFile_board(inputEl, this, true, id,btnId);
});
}
}
function handleFileDropEvent(e) {
$(this).removeClass('fileover');
blockEventPropagation(e);
if ($.inArray('Files', e.dataTransfer.types) > -1) {
uploadAndAttachFiles(e.dataTransfer.files, $('input:file.file_selector'));
}
}
function dragOverHandler(e) {
$(this).addClass('fileover');
blockEventPropagation(e);
}
function dragOutHandler(e) {
$(this).removeClass('fileover');
blockEventPropagation(e);
}
function setupFileDrop() {
if (window.File && window.FileList && window.ProgressEvent && window.FormData) {
$.event.fixHooks.drop = {
props: ['dataTransfer']
};
$('form div.box').has('input:file').each(function() {
$(this).on({
dragover: dragOverHandler,
dragleave: dragOutHandler,
drop: handleFileDropEvent
});
});
}
}
$(document).ready(setupFileDrop);
$(function() {
$(".file_selector").each(function() {
deleteallfiles = $(this).data('deleteAllFiles');
var containerid = $(this).data('containerid');
if (containerid == undefined) containerid = '';
var count = $('#attachments_fields' + containerid + '>span').length;
if (count >= 1) {
$('#upload_file_count' + containerid).html("<span id=\"count\">" + count + "</span>" + $(this).data('fileCount'));
var add_attachs = $('.add_attachment').filter(function(index) {
return $(this).data('containerid') == containerid;
});
var delete_all = $('.remove_all').filter(function(index) {
return $(this).data('containerid') == containerid;
});
if (delete_all.length < 1) {
add_attachs.append($("<a>&nbsp</a>").attr({
"href": "javascript:void(0)",
'class': 'remove_all',
'data-containerid': containerid,
"onclick": "removeAll('" + containerid + "')"
}));
}
}
});
});
//课程课件
function addInputFilesCourseSource(inputEl) {
checkBox = arguments[1] == 'public' ? false : true;
btnId = arguments[2];
// var clearedFileInput = $(inputEl).clone().val('');
if (inputEl.files) {
// if(inputEl.files.length >= 5){
// alert('一次选择的文件不能超过5个')
// return;
// }
// upload files using ajax
uploadAndAttachFilesCourseSource(inputEl.files, inputEl,checkBox,btnId);
// $(inputEl).remove();
} else {
// browser not supporting the file API, upload on form submission
var attachmentId;
var aFilename = inputEl.value.split(/\/|\\/);
var count = $('#attachments_fields>span').length;
attachmentId = addFile(inputEl, {
name: aFilename[aFilename.length - 1]
}, false);
if (attachmentId) {
$(inputEl).attr({
name: 'attachments[' + attachmentId + '][file]'
}).hide();
if (count <= 0) count = 1;
// $('#upload_file_count').html("<span id=\"count\">" + count + "</span>" + $(inputEl).data('fileCount'));
}
}
//clearedFileInput.insertAfter('#attachments_fields');
}
function uploadAndAttachFilesCourseSource(files, inputEl,checkBox,btnId) {
var maxFileSize = $(inputEl).data('max-file-size');
var maxFileSizeExceeded = $(inputEl).data('max-file-size-message');
var sizeExceeded = false;
$.each(files, function() {
if (this.size && maxFileSize != null && this.size > parseInt(maxFileSize)) {
sizeExceeded = true;
}
});
if (sizeExceeded) {
notice_sure_box(maxFileSizeExceeded);
} else {
$.each(files, function() {
addFileCourseSource(inputEl, this, true,checkBox,btnId);
});
}
}
function addFileCourseSource(inputEl, file, eagerUpload,checkBox,btnId) {
var attachments_frame = '#attachments_fields';
if ($(attachments_frame).children().length < 30) {
deleteallfiles = $(inputEl).data('deleteAllFiles');
var attachmentId = addFile.nextAttachmentId++;
var fileSpan = $('<span>', {
'id': 'attachments_' + attachmentId,
'class': 'attachment'
});
//alert(checkBox);
if(checkBox){
fileSpan.append(
$('<input>', {
'type': 'text',
'class': 'upload_filename readonly',
'name': 'attachments[' + attachmentId + '][filename]',
'readonly': 'readonly'
}).val(file.name),
// $('<input>', {
// 'type': 'text',
// 'class': 'description',
// 'name': 'attachments[' + attachmentId + '][description]',
// 'maxlength': 254,
// 'placeholder': $(inputEl).data('descriptionPlaceholder')
// }).toggle(!eagerUpload),
$('<div>', {
'class': 'div_attachments',
'name': 'div_' + 'attachments_' + attachmentId
})
).appendTo('#attachments_fields');
}else {
fileSpan.append(
$('<input>', {
'type': 'text',
'class': 'upload_filename readonly',
'name': 'attachments[' + attachmentId + '][filename]',
'readonly': 'readonly'
}).val(file.name),
// $('<input>', {
// 'type': 'text',
// 'class': 'description',
// 'name': 'attachments[' + attachmentId + '][description]',
// 'maxlength': 254,
// 'placeholder': $(inputEl).data('descriptionPlaceholder')
// }).toggle(!eagerUpload),
// $('<span >' + $(inputEl).data('fieldIsPublic') + ':</span>').attr({
// 'class': 'ispublic-label'
// }),
// $('<input>', {
// 'type': 'checkbox',
// 'class': 'is_public_checkbox',
// 'value': 1,
// 'name': 'attachments[' + attachmentId + '][is_public_checkbox]',
// checked: 'checked'
// }).toggle(!eagerUpload),
$('<a>&nbsp</a>').attr({
'href': "#",
'class': 'remove-upload fl mt1'
}).click(function () {
if (confirm($(inputEl).data('areYouSure'))) {
removeFile();
if (!eagerUpload) {
(function (e) {
reload(e);
})(fileSpan);
}
}
}).toggle(!eagerUpload),
$('<div>', {
'class': 'div_attachments',
'name': 'div_' + 'attachments_' + attachmentId
})
).appendTo('#attachments_fields');
}
if (eagerUpload) {
ajaxUpload(file, attachmentId, fileSpan, inputEl,btnId);
}
return attachmentId;
}
return null;
}
addFileCourseSource.nextAttachmentId = 1;