templates/frontend/inserat-formular/index.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 %}{{ entity.selfTitle }} buchen{% 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>{{ entity.selfTitle }} buchen</h1>
  9. <br>
  10. {% if not form.vars.valid %}
  11. <div class="form-error-box mb-5">
  12. <b>{{ entity.selfTitle }} wurde noch nicht übermittelt!</b><br>
  13. Bitte belegen Sie die fehlerhaften, rot markierten Felder unten im Formular.
  14. </div>
  15. {% endif %}
  16. {% include 'frontend/inserat-formular/include/' ~ template %}
  17. <br>
  18. <br>
  19. </div>
  20. <div class="col-lg-4 col-12">
  21. {{ include('frontend/_partials/_right_col_full.html.twig') }}
  22. </div>
  23. </div>
  24. {% endblock %}
  25. {% block onPageScriptsArea %}
  26. <script src="{{ asset('bundles/app/frontend/js/blueimp-file-upload/js/vendor/jquery.ui.widget.js') }}"></script>
  27. <script src="{{ asset('bundles/app/frontend/js/blueimp-file-upload/js/jquery.iframe-transport.js') }}"></script>
  28. <script src="{{ asset('bundles/app/frontend/js/blueimp-file-upload/js/jquery.fileupload.js') }}"></script>
  29. <script>
  30. {# --- Fileupload Logik ------------------------------------------------------------------------------------- #}
  31. $(document).ready(function () {
  32. showAllFileUploadImagesOrUploadButton();
  33. // Formfield wieder Anzeigen
  34. $('.jqFileDelete').on('click', function () {
  35. var formGroupId = $(this).closest('.form-group').attr('id');
  36. // Hidden Field (welches den Bildpfad enthaelt) leeren
  37. $('#' + formGroupId).find('.jqImageFileWebPath').val('');
  38. showAllFileUploadImagesOrUploadButton();
  39. });
  40. });
  41. // Logik zum Anzeigen des gerade hochgeladenen Bildes
  42. function fileUploadSuccessBild(data) {
  43. var formGroupId = data.result.requestQueryParams.formGroupId;
  44. //Hidden Formfield mit Bildpfad belegen
  45. $('#'+formGroupId).find('.jqImageFileWebPath').val(data.result.uploadedFileWebPath);
  46. showAllFileUploadImagesOrUploadButton();
  47. }
  48. // Ende
  49. // Zeige die gerade hochgeladenen Images
  50. function showAllFileUploadImagesOrUploadButton () {
  51. $('.jqImageFileWebPath').each(function () {
  52. var formGroupId = $(this).closest('.form-group').attr('id');
  53. var imageFileWebPath = $(this).val();
  54. if (imageFileWebPath.length > 1) {
  55. // Zeige Bild
  56. // Upload Formplugin verstecken
  57. $('#'+formGroupId).find('.jqFileUploadBox').hide();
  58. // Löschen Button zeigen
  59. $('#'+formGroupId).find('.jqFileDelete').show();
  60. // Hochgeladenes Bild zeigen
  61. $('#'+formGroupId).find('.jqImageFileShowPlaceholder').html('<img src="'+ imageFileWebPath +'" class="img-responsive" style="max-width: 300px">').show();
  62. } else {
  63. // Zeige Upload Button
  64. // Delete Button verstecken
  65. $('#'+formGroupId).find('.jqFileDelete').hide();
  66. // Bestehendes Bildvorschau verstecken
  67. $('#'+formGroupId).find('.jqImageFileShowPlaceholder').hide();
  68. // Upload Formularbox wieder anzeigen
  69. $('#'+formGroupId).find('.jqFileUploadBox').show();
  70. };
  71. });
  72. }
  73. $(document).ready(function() {
  74. // Custom jQuery File Upload Steuerung
  75. $(document).bind('drop dragover', function (e) {
  76. e.preventDefault();
  77. });
  78. $('.jqFileUploadBox').each(function () {
  79. var $inputField = $(this).find('.jqFileUploadInputField');
  80. var uploadUrl = $(this).data('uploadurl');
  81. var onSuccessCallback = $(this).data('successcallbackfunction');
  82. var $uploadBtn = $(this).find('.jqFileUploadFormFieldBtn');
  83. var $errorMsgBox = $(this).find('.jqFileUploadErrorMsg');
  84. var uploadBtnOrigMsg = $uploadBtn.html();
  85. $errorMsgBox.hide();
  86. $(this).on('click', function () {
  87. $errorMsgBox.hide();
  88. });
  89. $inputField.fileupload({
  90. dropZone: $inputField,
  91. url: uploadUrl,
  92. dataType: 'json',
  93. formData: [],
  94. start: function (e, data) {
  95. $errorMsgBox.hide().html('');
  96. },
  97. done: function (e, data) {
  98. if (data.result.success == true) {
  99. // Falls Callback vorhanden, diese mit den Daten ausfuehren
  100. if (onSuccessCallback) {
  101. eval(onSuccessCallback+'(data)');
  102. }
  103. // Orig. Button Text wieder einsetzen
  104. $uploadBtn.html(uploadBtnOrigMsg);
  105. } else {
  106. $errorMsgBox.html(data.result.msg).show();
  107. $uploadBtn.html(uploadBtnOrigMsg);
  108. }
  109. },
  110. progressall: function (e, data) {
  111. var progress = parseInt(data.loaded / data.total * 100, 10);
  112. // Fortschrittscounter Anzeige innerhalb Button aktualisieren
  113. $uploadBtn.html(progress + '%');
  114. //Ende
  115. }
  116. });
  117. });
  118. // Ende custom jQuery File Upload Steuerung
  119. });
  120. // Fehlermeldungs Falschplazierungsbug (Symfony Formtheme Bootstrap 4)
  121. // Bugfix https://github.com/symfony/symfony/issues/28086
  122. // gelost via jQuery Script by BZ
  123. $(document).ready(function() {
  124. $('.invalid-feedback').each(function( index ) {
  125. var $labelElement = $(this).parent();
  126. var $formFieldElement = $labelElement.next();
  127. $(this).appendTo($formFieldElement);
  128. });
  129. });
  130. // Ende
  131. </script>
  132. {% endblock %}