templates/frontend/veranstaltungen/melden.html.twig line 1

Open in your IDE?
  1. {% extends 'frontend/base.html.twig' %}
  2. {% form_theme form 'bootstrap_4_horizontal_layout.html.twig' %}
  3. {% block pageTitle %}Veranstaltung eintragen{% endblock %}
  4. {% block pageDescription %}{% endblock %}
  5. {% block contentArea %}
  6. <div class="row">
  7. <div class="col-lg-8 col-12 mb-lg-0 mb-5">
  8. <h1>Veranstaltung eintragen</h1>
  9. <br>
  10. {% if not form.vars.valid %}
  11. <div class="form-error-box mb-5">
  12. <b>Die Veranstaltung wurde noch nicht übermittelt!</b><br>
  13. Bitte belegen Sie die fehlerhaften, rot markierten Felder unten im Formular.
  14. </div>
  15. {% endif %}
  16. {{ form_start(form, {'attr': {'id': 'form_vs_melden', 'class':'form-veranstaltung'}}) }}
  17. {# <h5>Veranstaltung - {{ abo.aboname }}</h5>#}
  18. {{ form_row(form.rubrik) }}
  19. {{ form_row(form.titel, {'attr':{'class':'jqTitelField'}}) }}
  20. {{ form_row(form.adresse) }}
  21. {{ form_row(form.region) }}
  22. {{ form_row(form.startdatum, {'attr':{'class':'jqBootstrapDatePicker', 'style':'width:160px'}}) }}
  23. {# {{ form_row(form.enddatum, {'attr':{'class':'jqBootstrapDatePicker', 'style':'width:160px'}}) }}#}
  24. {# {{ form_row(form.beginn_auswahl) }}#}
  25. {{ form_row(form.beginnzeit) }}
  26. {{ form_row(form.endzeit) }}
  27. {{ form_row(form.beschreibung, {'attr':{'class':'jqBeschreibungField'}}) }}
  28. {{ form_row(form.url) }}
  29. <div {% if not (abo.premiumMitInserat or abo.premiumOhneInserat) %}style="display: none"{% endif %}>
  30. {# --- VsImage Upload Logik #}
  31. <div class="form-group row" id="jqBildUpload1">
  32. {{ form_label(form.vsImageFilepath) }}
  33. <div class="col-sm-10">
  34. <div class="jqFileUploadBox" data-successcallbackfunction="fileUploadSuccessBild" data-uploadurl="{{ path('fe.veranstaltungen_jqueryfileupload', {'formGroupId':'jqBildUpload1', 'vsUuid':vs.uuid, 'action':'VSIMAGE_FRONTEND'}) }}">
  35. <div class="jqFileUploadForm btn btn-primary btn-sm">
  36. <span class="jqFileUploadFormFieldBtn">Bild hochladen</span>
  37. <input type="file" name="uploadfile" class="jqFileUploadInputField">
  38. </div>
  39. <div class="help-block mt-1" style="color:#7a7a7a;font-size:.9rem">{{ form.vsImageFilepath.vars.help }}</div>
  40. <span class="jqFileUploadErrorMsg form-error-message"></span>
  41. </div>
  42. <div class="jqImageFileShowPlaceholder" style="width: 100%;max-width: 200px"></div>
  43. <button type="button" class="jqFileDelete btn btn-primary btn-sm" style="display: none;margin-top:8px">Bild löschen</button>
  44. {{ form_widget(form.vsImageFilepath, {'attr':{'class':'jqImageFileWebPath'}}) }}
  45. </div>
  46. </div>
  47. <div style="display: none">
  48. {{ form_row(form.vsImageAlt, {'label':" "}) }}
  49. {{ form_row(form.vsImageCaption, {'label':" "}) }}
  50. </div>
  51. {# --- Ende Leadimage Upload Logik #}
  52. {{ form_row(form.videolink) }}
  53. {{ form_row(form.ticketsbestellen) }}
  54. {% do form.googlemaps.setRendered %}
  55. </div>
  56. <h5>Kunde</h5>
  57. {{ form_row(form.kveranstalter) }}
  58. {{ form_row(form.kvorname) }}
  59. {{ form_row(form.kname) }}
  60. {{ form_row(form.kstrasse) }}
  61. {{ form_row(form.kplz) }}
  62. {{ form_row(form.kort) }}
  63. {{ form_row(form.ktel) }}
  64. {{ form_row(form.kemail) }}
  65. {# {{ form_row(form.kkontaktieren) }}#}
  66. {# {{ form_row(form.kbemerkung, {'attr':{'placeholder':'Bemerkungen oder abweichende Rechnungsadresse hier eintragen.'}}) }}#}
  67. {% do form.export_uristier.setRendered %}
  68. {% do form.export_uw.setRendered %}
  69. {% do form.export_1_enddatum.setRendered %}
  70. <h5>Datenschutz</h5>
  71. {{ form_row(form.datenschutz) }}
  72. <br>
  73. <button type="submit" name="btnSubmit" class="btn btn-primary btn-sm" value="active-validation">Eintragen</button>
  74. &nbsp;&nbsp;&nbsp;
  75. <a href="{{ path('fe.veranstaltungen_produkt') }}" class="btn btn-link btn-sm">Abbrechen</a>
  76. {{ form_end(form) }}
  77. <br>
  78. <br>
  79. </div>
  80. <div class="col-lg-4 col-12">
  81. {{ include('frontend/_partials/_right_col_full.html.twig') }}
  82. </div>
  83. </div>
  84. {% endblock %}
  85. {% block onPageScriptsArea %}
  86. <script src="{{ asset('bundles/app/frontend/js/blueimp-file-upload/js/vendor/jquery.ui.widget.js') }}"></script>
  87. <script src="{{ asset('bundles/app/frontend/js/blueimp-file-upload/js/jquery.iframe-transport.js') }}"></script>
  88. <script src="{{ asset('bundles/app/frontend/js/blueimp-file-upload/js/jquery.fileupload.js') }}"></script>
  89. <script>
  90. // Min. Max Length korrekt setzen
  91. $(document).ready(function() {
  92. {% if form.vars.value.abo %}
  93. {% if abo.maxLengthVsTitel %}
  94. $('.jqTitelField')
  95. .attr('maxlength', '{{ abo.maxLengthVsTitel }}')
  96. .attr('placeholder', 'Max. {{ abo.maxLengthVsTitel }} Zeichen erlaubt, z.B. Gisler 1843 - Lottomatch')
  97. ;
  98. {% endif %}
  99. {% if abo.maxLengthVsBeschreibung %}
  100. $('.jqBeschreibungField')
  101. .attr('maxlength', '{{ abo.maxLengthVsBeschreibung }}')
  102. .attr('placeholder', 'Max. {{ abo.maxLengthVsBeschreibung }} Zeichen erlaubt, korrekte Rechtschreibung wird vorausgesetzt, Abkürzungen werden nicht akzeptiert.')
  103. ;
  104. {% endif %}
  105. {% endif %}
  106. });
  107. // Ende
  108. {# --- Fileupload Logik ------------------------------------------------------------------------------------- #}
  109. $(document).ready(function () {
  110. showAllFileUploadImagesOrUploadButton();
  111. // Formfield wieder Anzeigen
  112. $('.jqFileDelete').on('click', function () {
  113. var formGroupId = $(this).closest('.form-group').attr('id');
  114. // Hidden Field (welches den Bildpfad enthält) leeren
  115. $('#' + formGroupId).find('.jqImageFileWebPath').val('');
  116. showAllFileUploadImagesOrUploadButton();
  117. });
  118. });
  119. // Logik zum Anzeigen des gerade hochgeladenen Bildes
  120. function fileUploadSuccessBild(data) {
  121. var formGroupId = data.result.requestQueryParams.formGroupId;
  122. //Hidden Formfield mit Bildpfad belegen
  123. $('#'+formGroupId).find('.jqImageFileWebPath').val(data.result.uploadedFileWebPath);
  124. showAllFileUploadImagesOrUploadButton();
  125. }
  126. // Ende
  127. // Zeige die gerade hochgeladenen Images
  128. function showAllFileUploadImagesOrUploadButton () {
  129. $('.jqImageFileWebPath').each(function () {
  130. var formGroupId = $(this).closest('.form-group').attr('id');
  131. var imageFileWebPath = $(this).val();
  132. if (imageFileWebPath.length > 1) {
  133. // Zeige Bild
  134. // Upload Formplugin verstecken
  135. $('#'+formGroupId).find('.jqFileUploadBox').hide();
  136. // Löschen Button zeigen
  137. $('#'+formGroupId).find('.jqFileDelete').show();
  138. // Hochgeladenes Bild zeigen
  139. $('#'+formGroupId).find('.jqImageFileShowPlaceholder').html('<img src="'+ imageFileWebPath +'" class="img-responsive" style="max-width: 300px">').show();
  140. } else {
  141. // Zeige Upload Button
  142. // Delete Button verstecken
  143. $('#'+formGroupId).find('.jqFileDelete').hide();
  144. // Bestehendes Bildvorschau verstecken
  145. $('#'+formGroupId).find('.jqImageFileShowPlaceholder').hide();
  146. // Upload Formularbox wieder anzeigen
  147. $('#'+formGroupId).find('.jqFileUploadBox').show();
  148. };
  149. });
  150. }
  151. $(document).ready(function() {
  152. // Custom jQuery File Upload Steuerung
  153. $(document).bind('drop dragover', function (e) {
  154. e.preventDefault();
  155. });
  156. $('.jqFileUploadBox').each(function () {
  157. var $inputField = $(this).find('.jqFileUploadInputField');
  158. var uploadUrl = $(this).data('uploadurl');
  159. var onSuccessCallback = $(this).data('successcallbackfunction');
  160. var $uploadBtn = $(this).find('.jqFileUploadFormFieldBtn');
  161. var $errorMsgBox = $(this).find('.jqFileUploadErrorMsg');
  162. var uploadBtnOrigMsg = $uploadBtn.html();
  163. $errorMsgBox.hide();
  164. $(this).on('click', function () {
  165. $errorMsgBox.hide();
  166. });
  167. $inputField.fileupload({
  168. dropZone: $inputField,
  169. url: uploadUrl,
  170. dataType: 'json',
  171. formData: [],
  172. start: function (e, data) {
  173. $errorMsgBox.hide().html('');
  174. },
  175. done: function (e, data) {
  176. if (data.result.success == true) {
  177. // Falls Callback vorhanden, diese mit den Daten ausführen
  178. if (onSuccessCallback) {
  179. eval(onSuccessCallback+'(data)');
  180. }
  181. // Orig. Button Text wieder einsetzen
  182. $uploadBtn.html(uploadBtnOrigMsg);
  183. } else {
  184. $errorMsgBox.html(data.result.msg).show();
  185. $uploadBtn.html(uploadBtnOrigMsg);
  186. }
  187. },
  188. progressall: function (e, data) {
  189. var progress = parseInt(data.loaded / data.total * 100, 10);
  190. // Fortschrittscounter Anzeige innerhalb Button aktualisieren
  191. $uploadBtn.html(progress + '%');
  192. //Ende
  193. }
  194. });
  195. });
  196. // Ende custom jQuery File Upload Steuerung
  197. });
  198. // Fehlermeldung Falschplatzierungsbug (Symfony Formtheme Bootstrap 4)
  199. // Bugfix https://github.com/symfony/symfony/issues/28086
  200. // gelöst via jQuery Script by BZ
  201. $(document).ready(function() {
  202. $('.invalid-feedback').each(function( index ) {
  203. var $labelElement = $(this).parent();
  204. var $formFieldElement = $labelElement.next();
  205. $(this).appendTo($formFieldElement);
  206. });
  207. });
  208. // Ende
  209. </script>
  210. {% endblock %}