var captchaOnLoadCallback = function() { uploadModuleCaptchaId = grecaptcha.render(jQuery(".picture-upload-captcha").get(0)); } jQuery(document).ready(function() { Dropzone.pictureUploadDropzone = false; var show_error = function(error, form_jquery) { form_jquery.find(".picture-upload-success-message").hide(); form_jquery.find(".picture-upload-error-text").hide(); form_jquery.find(".picture-upload-error-"+error).show(); form_jquery.find(".picture-upload-error-message").show(); } var show_success = function(form_jquery) { form_jquery.find(".picture-upload-error-message").hide(); form_jquery.find(".picture-upload-success-message").show(); } const upload_form = jQuery("form.picture-upload-form"); upload_form.submit(function(e) { e.preventDefault(); var form = jQuery(this); var form_dropzone = form.find(".picture-upload-dropzone")[0].dropzone; if(form_dropzone.getQueuedFiles().length == 0) { return; } var captcha_clicked = grecaptcha.getResponse(uploadModuleCaptchaId) != ""; if(!captcha_clicked) { show_error('captcha-invalid', form); return; } var file_selected = form.find("input[type=file].picture-upload-file").val() != ''; if(!file_selected) { show_error('no-file-selected', form); return; } var privacy_checked = form.find("input[type=checkbox].picture-upload-privacy-checkbox").get(0).checked; if(!privacy_checked) { show_error('privacy-missing', form); return; } form.find(".picture-upload-button").prop("disabled",true); var address = form.attr("action") + "&ajax=1"; var form_data = new FormData(this); form_dropzone.on("sendingmultiple", function(files, xhr, form) { form.append("g-recaptcha-response", grecaptcha.getResponse(uploadModuleCaptchaId)); if(upload_form.find("input[name=picture-upload-privacy]")[0].checked) { form.append("picture-upload-privacy", true); } }); form_dropzone.on("success", function (data) { grecaptcha.reset(uploadModuleCaptchaId); if(!data.status) { show_error(data.error_msg, form); return; } form.trigger("reset"); }); form_dropzone.on("queuecomplete", function() { form.find(".picture-upload-button").prop("disabled",false); }); form_dropzone.on("error", function(_,textStatus) { form.find(".picture-upload-error-error-num").text(textStatus); show_error("server-communication", form); }); form_dropzone.processQueue(); /*jQuery.ajax({ url: address, type: 'POST', data: form_data, success: function (data) { grecaptcha.reset(uploadModuleCaptchaId); if(!data.status) { show_error(data.error_msg, form); return; } form.trigger("reset"); show_success(form); }, error: function(_,textStatus) { form.find(".picture-upload-error-error-num").text(textStatus); show_error("server-communication", form); }, complete: function() { form.find(".picture-upload-button").prop("disabled",false); }, cache: false, contentType: false, processData: false, dataType: 'json' });*/ }); Dropzone.options.pictureUploadDropzone = { url: upload_form.attr("action")+"&ajax=1", maxFilesize: 2.5, uploadMultiple: true, autoProcessQueue: false, acceptedFiles: 'image/jpeg,image/png', parallelUploads: 10, dictFileTooBig: "Dateigröße zu groß ({{filesize}} MB / {{maxFilesize}} MB)", dictInvalidFileType: "Dateien dieses Typs können nicht hochgeladen werden!" }; });