{% extends 'frontend/base.html.twig' %}
{% form_theme form 'bootstrap_4_horizontal_layout.html.twig' %}
{% block pageTitle %}{{ entity.selfTitle }} einsenden{% endblock %}
{% block pageDescription %}{% endblock %}
{% block contentArea %}
<div class="row">
<div class="col-lg-8 col-12 mb-lg-0 mb-5">
<h1>{{ entity.selfTitle }} einsenden</h1>
<br>
{% if not form.vars.valid %}
<div class="form-error-box mb-5">
<b>{{ entity.selfTitle }} wurde noch nicht übermittelt!</b><br>
Bitte belegen Sie die fehlerhaften, rot markierten Felder unten im Formular.
</div>
{% endif %}
{% include 'frontend/einsendung/include/' ~ template %}
<br>
<br>
</div>
<div class="col-lg-4 col-12">
{{ include('frontend/_partials/_right_col_full.html.twig') }}
</div>
</div>
{% endblock %}
{% block onPageScriptsArea %}
<script src="{{ asset('bundles/app/frontend/js/blueimp-file-upload/js/vendor/jquery.ui.widget.js') }}"></script>
<script src="{{ asset('bundles/app/frontend/js/blueimp-file-upload/js/jquery.iframe-transport.js') }}"></script>
<script src="{{ asset('bundles/app/frontend/js/blueimp-file-upload/js/jquery.fileupload.js') }}"></script>
<script>
{# --- Fileupload Logik ------------------------------------------------------------------------------------- #}
$(document).ready(function () {
showAllFileUploadImagesOrUploadButton();
// Formfield wieder Anzeigen
$('.jqFileDelete').on('click', function () {
var formGroupId = $(this).closest('.form-group').attr('id');
// Hidden Field (welches den Bildpfad enthaelt) leeren
$('#' + formGroupId).find('.jqImageFileWebPath').val('');
showAllFileUploadImagesOrUploadButton();
});
});
// Logik zum Anzeigen des gerade hochgeladenen Bildes
function fileUploadSuccessBild(data) {
var formGroupId = data.result.requestQueryParams.formGroupId;
//Hidden Formfield mit Bildpfad belegen
$('#'+formGroupId).find('.jqImageFileWebPath').val(data.result.uploadedFileWebPath);
showAllFileUploadImagesOrUploadButton();
}
// Ende
// Zeige die gerade hochgeladenen Images
function showAllFileUploadImagesOrUploadButton () {
$('.jqImageFileWebPath').each(function () {
var formGroupId = $(this).closest('.form-group').attr('id');
var imageFileWebPath = $(this).val();
if (imageFileWebPath.length > 1) {
// Zeige Bild
// Upload Formplugin verstecken
$('#'+formGroupId).find('.jqFileUploadBox').hide();
// Löschen Button zeigen
$('#'+formGroupId).find('.jqFileDelete').show();
// Hochgeladenes Bild zeigen
$('#'+formGroupId).find('.jqImageFileShowPlaceholder').html('<img src="'+ imageFileWebPath +'" class="img-responsive" style="max-width: 300px">').show();
} else {
// Zeige Upload Button
// Delete Button verstecken
$('#'+formGroupId).find('.jqFileDelete').hide();
// Bestehendes Bildvorschau verstecken
$('#'+formGroupId).find('.jqImageFileShowPlaceholder').hide();
// Upload Formularbox wieder anzeigen
$('#'+formGroupId).find('.jqFileUploadBox').show();
};
});
}
$(document).ready(function() {
// Custom jQuery File Upload Steuerung
$(document).bind('drop dragover', function (e) {
e.preventDefault();
});
$('.jqFileUploadBox').each(function () {
var $inputField = $(this).find('.jqFileUploadInputField');
var uploadUrl = $(this).data('uploadurl');
var onSuccessCallback = $(this).data('successcallbackfunction');
var $uploadBtn = $(this).find('.jqFileUploadFormFieldBtn');
var $errorMsgBox = $(this).find('.jqFileUploadErrorMsg');
var uploadBtnOrigMsg = $uploadBtn.html();
$errorMsgBox.hide();
$(this).on('click', function () {
$errorMsgBox.hide();
});
$inputField.fileupload({
dropZone: $inputField,
url: uploadUrl,
dataType: 'json',
formData: [],
start: function (e, data) {
$errorMsgBox.hide().html('');
},
done: function (e, data) {
if (data.result.success == true) {
// Falls Callback vorhanden, diese mit den Daten ausfuehren
if (onSuccessCallback) {
eval(onSuccessCallback+'(data)');
}
// Orig. Button Text wieder einsetzen
$uploadBtn.html(uploadBtnOrigMsg);
} else {
$errorMsgBox.html(data.result.msg).show();
$uploadBtn.html(uploadBtnOrigMsg);
}
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
// Fortschrittscounter Anzeige innerhalb Button aktualisieren
$uploadBtn.html(progress + '%');
//Ende
}
});
});
// Ende custom jQuery File Upload Steuerung
});
// Fehlermeldung-Falschpazierungsbug (Symfony Formtheme Bootstrap 4)
// Bugfix https://github.com/symfony/symfony/issues/28086
// gelöst via jQuery Script by BZ
$(document).ready(function() {
$('.invalid-feedback').each(function( index ) {
var $labelElement = $(this).parent();
var $formFieldElement = $labelElement.next();
$(this).appendTo($formFieldElement);
});
});
// Ende
</script>
{% endblock %}