{% extends 'frontend/base.html.twig' %}
{% form_theme form 'bootstrap_4_horizontal_layout.html.twig' %}
{% block pageTitle %}Veranstaltung eintragen{% endblock %}
{% block pageDescription %}{% endblock %}
{% block contentArea %}
<div class="row">
<div class="col-lg-8 col-12 mb-lg-0 mb-5">
<h1>Veranstaltung eintragen</h1>
<br>
{% if not form.vars.valid %}
<div class="form-error-box mb-5">
<b>Die Veranstaltung wurde noch nicht übermittelt!</b><br>
Bitte belegen Sie die fehlerhaften, rot markierten Felder unten im Formular.
</div>
{% endif %}
{{ form_start(form, {'attr': {'id': 'form_vs_melden', 'class':'form-veranstaltung'}}) }}
{# <h5>Veranstaltung - {{ abo.aboname }}</h5>#}
{{ form_row(form.rubrik) }}
{{ form_row(form.titel, {'attr':{'class':'jqTitelField'}}) }}
{{ form_row(form.adresse) }}
{{ form_row(form.region) }}
{{ form_row(form.startdatum, {'attr':{'class':'jqBootstrapDatePicker', 'style':'width:160px'}}) }}
{# {{ form_row(form.enddatum, {'attr':{'class':'jqBootstrapDatePicker', 'style':'width:160px'}}) }}#}
{# {{ form_row(form.beginn_auswahl) }}#}
{{ form_row(form.beginnzeit) }}
{{ form_row(form.endzeit) }}
{{ form_row(form.beschreibung, {'attr':{'class':'jqBeschreibungField'}}) }}
{{ form_row(form.url) }}
<div {% if not (abo.premiumMitInserat or abo.premiumOhneInserat) %}style="display: none"{% endif %}>
{# --- VsImage Upload Logik #}
<div class="form-group row" id="jqBildUpload1">
{{ form_label(form.vsImageFilepath) }}
<div class="col-sm-10">
<div class="jqFileUploadBox" data-successcallbackfunction="fileUploadSuccessBild" data-uploadurl="{{ path('fe.veranstaltungen_jqueryfileupload', {'formGroupId':'jqBildUpload1', 'vsUuid':vs.uuid, 'action':'VSIMAGE_FRONTEND'}) }}">
<div class="jqFileUploadForm btn btn-primary btn-sm">
<span class="jqFileUploadFormFieldBtn">Bild hochladen</span>
<input type="file" name="uploadfile" class="jqFileUploadInputField">
</div>
<div class="help-block mt-1" style="color:#7a7a7a;font-size:.9rem">{{ form.vsImageFilepath.vars.help }}</div>
<span class="jqFileUploadErrorMsg form-error-message"></span>
</div>
<div class="jqImageFileShowPlaceholder" style="width: 100%;max-width: 200px"></div>
<button type="button" class="jqFileDelete btn btn-primary btn-sm" style="display: none;margin-top:8px">Bild löschen</button>
{{ form_widget(form.vsImageFilepath, {'attr':{'class':'jqImageFileWebPath'}}) }}
</div>
</div>
<div style="display: none">
{{ form_row(form.vsImageAlt, {'label':" "}) }}
{{ form_row(form.vsImageCaption, {'label':" "}) }}
</div>
{# --- Ende Leadimage Upload Logik #}
{{ form_row(form.videolink) }}
{{ form_row(form.ticketsbestellen) }}
{% do form.googlemaps.setRendered %}
</div>
<h5>Kunde</h5>
{{ form_row(form.kveranstalter) }}
{{ form_row(form.kvorname) }}
{{ form_row(form.kname) }}
{{ form_row(form.kstrasse) }}
{{ form_row(form.kplz) }}
{{ form_row(form.kort) }}
{{ form_row(form.ktel) }}
{{ form_row(form.kemail) }}
{# {{ form_row(form.kkontaktieren) }}#}
{# {{ form_row(form.kbemerkung, {'attr':{'placeholder':'Bemerkungen oder abweichende Rechnungsadresse hier eintragen.'}}) }}#}
{% do form.export_uristier.setRendered %}
{% do form.export_uw.setRendered %}
{% do form.export_1_enddatum.setRendered %}
<h5>Datenschutz</h5>
{{ form_row(form.datenschutz) }}
<br>
<button type="submit" name="btnSubmit" class="btn btn-primary btn-sm" value="active-validation">Eintragen</button>
<a href="{{ path('fe.veranstaltungen_produkt') }}" class="btn btn-link btn-sm">Abbrechen</a>
{{ form_end(form) }}
<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>
// Min. Max Length korrekt setzen
$(document).ready(function() {
{% if form.vars.value.abo %}
{% if abo.maxLengthVsTitel %}
$('.jqTitelField')
.attr('maxlength', '{{ abo.maxLengthVsTitel }}')
.attr('placeholder', 'Max. {{ abo.maxLengthVsTitel }} Zeichen erlaubt, z.B. Gisler 1843 - Lottomatch')
;
{% endif %}
{% if abo.maxLengthVsBeschreibung %}
$('.jqBeschreibungField')
.attr('maxlength', '{{ abo.maxLengthVsBeschreibung }}')
.attr('placeholder', 'Max. {{ abo.maxLengthVsBeschreibung }} Zeichen erlaubt, korrekte Rechtschreibung wird vorausgesetzt, Abkürzungen werden nicht akzeptiert.')
;
{% endif %}
{% endif %}
});
// Ende
{# --- 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 enthält) 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 ausführen
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 Falschplatzierungsbug (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 %}