HSLE#40141 Support verbeterd voor single file upload

svn path=/Website/trunk/; revision=38200
This commit is contained in:
2018-06-14 09:35:49 +00:00
parent 83ee9b0c89
commit 1a0512ad8e

View File

@@ -153,6 +153,7 @@ if (fso.FolderExists(params.AttachPath))
window.return_data = {};
var looseFiles = [];
var isMultiple;
var isAdvancedUpload = function() {
var div = document.createElement('div');
return (('draggable' in div) || ('ondragstart' in div && 'ondrop' in div)) && 'FormData' in window && 'FileReader' in window;
@@ -160,6 +161,7 @@ if (fso.FolderExists(params.AttachPath))
$(function() {
isMultiple = $("input#file-upload").attr("multiple") ? 1 : 0;
$body = $("body#mod_bijlagen");
if (isAdvancedUpload) {
@@ -168,7 +170,8 @@ if (fso.FolderExists(params.AttachPath))
e.stopPropagation();
})
.on('dragover dragenter', function() {
$body.addClass("dragon");
if (document.forms.u2.imgfile) // Anders betreft het een enkel bestand die al gevuld is.
$body.addClass("dragon");
})
.on('dragleave dragend drop', function() {
$body.removeClass("dragon");
@@ -184,7 +187,7 @@ if (fso.FolderExists(params.AttachPath))
var data = (e.originalEvent || e).clipboardData;
if (data.items.length && data.items[0].type.indexOf("image") !== -1)
addFiles(data.items[0], "paste");
addFiles(data.items[0], "ctrlv");
});
});
@@ -205,7 +208,8 @@ if (fso.FolderExists(params.AttachPath))
function addFiles(fileInput, source)
{
if (source == "paste")
if (document.forms.u2.imgfile) // Anders betreft het een enkel bestand die al gevuld is.
if (source == "ctrlv")
{
looseFiles = [fileInput.getAsFile()]; // List of File instead of FileList
document.getElementById("displayFilename").innerText = fileInput.getAsFile().name
@@ -216,7 +220,7 @@ if (fso.FolderExists(params.AttachPath))
{
looseFiles = $.extend(true, {}, fileInput.files);
displayFilename(fileInput);
iface.button[fileInput.files && fileInput.files.length ? 'enable' : 'disable' ]('btn_upload_submit');
iface.button[fileInput.files && fileInput.files.length ? 'enable' : 'disable']('btn_upload_submit');
}
}
@@ -272,10 +276,12 @@ if (fso.FolderExists(params.AttachPath))
if (document.forms.u2.imgfile.value == "" && !looseFiles.length)
return false;
// Officieel lte IE9 niet meer gesupport, dus .files mag gebruikt worden
var fileList = looseFiles.length ? looseFiles : document.forms.u2.imgfile.files;
var loopFiles = isMultiple ? fileList.length : (fileList.length ? 1 : 0);
// File(s) valideren
for (var i = 0; i < fileList.length; i++)
for (var i = 0; i < loopFiles; i++)
{
if (!validateFile(fileList[i]))
return false;
@@ -287,7 +293,7 @@ if (fso.FolderExists(params.AttachPath))
var fTable = document.getElementById("filetable");
var fRow = fTable.getElementsByTagName("A");
if (fRow.length)
for (var x = 0; x < fileList.length; x++)
for (var x = 0; x < loopFiles; x++)
{
for(var y = 0; y < fRow.length; y++)
{
@@ -318,7 +324,7 @@ if (fso.FolderExists(params.AttachPath))
var ajaxData = new FormData();
ajaxData.append("<%=protectRequest.theVar%>", "<%=safe.htmlattr(protectRequest.theToken())%>");
for (var i = 0; i < looseFiles.length; i++)
for (var i = 0; i < loopFiles; i++)
ajaxData.append("imgfile", looseFiles[i]);
$.ajax({
@@ -345,15 +351,12 @@ if (fso.FolderExists(params.AttachPath))
{
var fileString = "";
var files = fileInput.files;
if (files)
{
for (var i = 0; i < files.length; i++) {
if (i != 0) fileString += "\n";
fileString += safeFilename(files[i].name);
}
var loopNames = isMultiple ? files.length : (files.length ? 1 : 0);
for (var i = 0; i < loopNames; i++) {
if (i != 0) fileString += "\n";
fileString += safeFilename(files[i].name);
}
else if (fileInput.value) // IE
fileString = fileInput.value;
document.getElementById("displayFilename").innerText = fileString;
FcltMgr.resized();
@@ -370,7 +373,7 @@ if (fso.FolderExists(params.AttachPath))
function Sluiten()
{
var unUploadedFiles = (looseFiles.length ? looseFiles : document.forms.u2.imgfile.files).length;
var unUploadedFiles = (looseFiles.length ? looseFiles.length : (document.forms.u2.imgfile ? document.forms.u2.imgfile.files.length : 0));
FcltMgr.confirm(L("lcl_shared_unfinished_uploads"),
{ autoconfirm: !unUploadedFiles,
fncancel: function() { /* geen actie bij confirm=cancel */ }