diff --git a/APPL/Shared/BijlagenForm.asp b/APPL/Shared/BijlagenForm.asp index 9161c18522..379b55d0c7 100644 --- a/APPL/Shared/BijlagenForm.asp +++ b/APPL/Shared/BijlagenForm.asp @@ -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 */ }