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

Open in your IDE?
  1. {% extends 'frontend/base.html.twig' %}
  2. {% block pageTitle %}Veranstaltungen Uri{% endblock %}
  3. {% block pageDescription %}Was ist los in Uri? Der Urner Veranstaltungskalender informiert über Events, Feste, Veranstaltungen und Anlässe rund um Kultur, Musik, Kino, Kunst, Theater, Brauchtum, Vereine und Sport.{% endblock %}
  4. {% block pageKeywords %}Veranstaltungen, Events, Veranstaltungskalender, Anlässe, Feste, Konzerte, Bühne, Theater, Vorträge, Bildung, Führungen{% endblock %}
  5. {% block contentArea %}
  6. <style>
  7. .vsPrevNextBtn {
  8. padding: 0 4px;
  9. border: 1px solid #e56500;
  10. border-radius:4px;
  11. }
  12. </style>
  13. <div class="row">
  14. <div class="col-lg-8 col-12 mb-lg-0">
  15. <h1 class="mb-2">Veranstaltungen </h1>
  16. <div class="row">
  17. <div class="col-lg-6 col-12">
  18. {% if filter.d_prev %}
  19. <a href="{{ path('fe.veranstaltungen', {'d':filter.d_prev|date('d.m.Y'), 's':filter.s, 'r':filter.r}) }}" title="Vorherige Veranstaltungen"><i class="fa fa-angle-double-left vsPrevNextBtn" aria-hidden="true"></i></a>&nbsp;
  20. {% endif %}
  21. {% if filter.d_bis and filter.d_next %}
  22. &nbsp;Vom {{ filter.d|format_datetime(pattern="d. MMM", locale='de') }} - {{ filter.d_bis|format_datetime(pattern="d. MMM yyyy", locale='de') }}
  23. &nbsp;&nbsp;<a href="{{ path('fe.veranstaltungen', {'d':filter.d_next|date('d.m.Y'), 's':filter.s, 'r':filter.r}) }}" title="Weitere Veranstaltungen"><i class="fa fa-angle-double-right vsPrevNextBtn" aria-hidden="true"></i></a>
  24. {% else %}
  25. &nbsp;Ab {{ filter.d|format_datetime(pattern="d. MMMM Y", locale='de') }}
  26. {% endif %}
  27. </div>
  28. <div class="col-lg-6 col-12 text-right mt-lg-0 mt-3">
  29. <a href="{{ path('fe.veranstaltungen_produkt') }}" class="btn btn-primary btn-sm">Veranstaltung eintragen</a>
  30. </div>
  31. </div>
  32. <p class="mt-4 vs-rubriken-box">
  33. {# <h2 class="titel">Rubriken:</h2>#}
  34. {% set filterDateActive = filter.d|date('d.m.Y') %}
  35. {% set rubrikenLinks = ['<a href="' ~ path('fe.veranstaltungen') ~ '">Alle</a>'] %}
  36. {% for rubrik in rubriken %}
  37. {% set rubrikenLinks = rubrikenLinks|merge(['<a href="' ~ path('fe.veranstaltungen', { 'd': filterDateActive, 's': '', 'r': rubrik.id }) ~ '">' ~ rubrik.rubrikname ~ '</a>']) %}
  38. {% endfor %}
  39. {{ rubrikenLinks|join(' | ')|raw }}
  40. </p>
  41. {# {% set filterDateActive = filter.d|date('Ymd') != 'now'|date('Ymd') %}#}
  42. {# {% if filter.r or filter.s or filterDateActive %}#}
  43. {# <div style="margin-top:-1.4rem">#}
  44. {# {% if filter.s %}<button class="btn btn-light btn-sm jqFilterSearchRemoveBtn" title="Filter entfernen"><i class="fa fa-filter" aria-hidden="true"></i> - Suchbegriff</button>{% endif %}#}
  45. {# {% if filterDateActive %}<button class="btn btn-light btn-sm jqFilterDateRemoveBtn" title="Filter entfernen"><i class="fa fa-filter" aria-hidden="true"></i> - Datum</button>{% endif %}#}
  46. {# {% if filter.r %}<button class="btn btn-light btn-sm jqFilterRubrikRemoveBtn" title="Filter entfernen"><i class="fa fa-filter" aria-hidden="true"></i> - Rubrik</button>{% endif %}#}
  47. {# <hr class="mt-2">#}
  48. {# </div>#}
  49. {# {% endif %}#}
  50. {% if not einzellVs and not restVs %}
  51. <p class="mt-4">
  52. Keine Veranstaltungen gefunden!<br>
  53. {# <br>#}
  54. {# {% if filter.s or filter.r %}#}
  55. {# Passen Sie Ihre Suchauswahl an oder <a href="javascript:false;" class="jqFilterRemoveBtn">heben Sie diese auf</a>.#}
  56. {# {% endif %}#}
  57. </p>
  58. {# <p class="mt-5">#}
  59. {# <a href="{{ path('fe.veranstaltungen_produkt') }}" class="btn btn-primary btn-sm">Veranstaltung eintragen</a>#}
  60. {# </p>#}
  61. {% else %}
  62. {% set currentDate = null %}
  63. <div id="accord" class="accordion accordion-layout-1">
  64. {% for id, vs in einzellVs %}
  65. {% if not (vs.startdatum == currentDate) %}
  66. <h2 class="mt-3 mb-3">{{ vs.startdatum|format_datetime(pattern='EEEE, dd. MMM',locale='de') }}</h2>
  67. {% endif %}
  68. {% set currentDate = vs.startdatum %}
  69. {{ include('frontend/veranstaltungen/_veranstaltung_teaser_accordion.html.twig', {'vs':vs}) }}
  70. {% endfor %}
  71. {% if restVs %}
  72. <h2 class="mb-4{{ einzellVs ? ' mt-5' : '' }}">Dies und Das</h2>
  73. {% for id, vs in restVs %}
  74. {{ include('frontend/veranstaltungen/_veranstaltung_teaser_accordion.html.twig', {'vs':vs}) }}
  75. {% endfor %}
  76. {% endif %}
  77. </div>
  78. <p class="mt-3 mb-4">
  79. {% if filter.d_prev %}
  80. <a href="{{ path('fe.veranstaltungen', {'d':filter.d_prev|date('d.m.Y'), 's':filter.s, 'r':filter.r}) }}" title="Vorherige Veranstaltungen"><i class="fa fa-angle-double-left vsPrevNextBtn" aria-hidden="true"></i></a>&nbsp;
  81. {% endif %}
  82. {% if filter.d_bis and filter.d_next %}
  83. &nbsp;Vom {{ filter.d|format_datetime(pattern="d. MMM", locale='de') }} - {{ filter.d_bis|format_datetime(pattern="d. MMM yyyy", locale='de') }}
  84. &nbsp;&nbsp;<a href="{{ path('fe.veranstaltungen', {'d':filter.d_next|date('d.m.Y'), 's':filter.s, 'r':filter.r}) }}" title="Weitere Veranstaltungen"><i class="fa fa-angle-double-right vsPrevNextBtn" aria-hidden="true"></i></a>
  85. {% else %}
  86. &nbsp;Ab {{ filter.d|format_datetime(pattern="d. MMMM Y", locale='de') }}
  87. {% endif %}
  88. </p>
  89. {% endif %}
  90. </div>
  91. <div class="col-lg-4 col-12">
  92. <div class="vs-filter-box mt-3">
  93. <b>Veranstaltungen suchen</b><br>
  94. <input type="search" class="jqFilterSearch" value="{{ filter.s }}" placeholder="" style="width: 68%">
  95. <button type="button" class="jqFilterSearchBtn btn btn-primary btn-sm" style="width: 30%">Suchen</button>
  96. <b class="d-block mt-3">Ab Datum</b>
  97. <div class="jqBootstrapVeranstaltungenDatePickerInline" data-date="{{ filter.d|date('d.m.Y') }}" style="background-color: #fff"></div>
  98. <b class="d-block mt-3">Rubrik</b>
  99. <select class="jqFilterRubrik" style="width: 100%">
  100. <option value="">Alle</option>
  101. {% for rubrik in rubriken %}
  102. <option value="{{ rubrik.id }}" {% if filter.r == rubrik.id %}selected{% endif %}>{{ rubrik.rubrikname }}</option>
  103. {% endfor %}
  104. </select>
  105. {# Alle Filter zurücksetzen Btn #}
  106. {% set filterDateActive = filter.d|date('Ymd') != 'now'|date('Ymd') %}
  107. {% if filter.r or filter.s or filterDateActive %}
  108. <div class="mt-4 text-center jqFilterRemoveBtn">
  109. <button class="btn btn-primary btn-sm">Auswahl aufheben</button>
  110. </div>
  111. {% endif %}
  112. </div>
  113. <div class="mt-4 mb-3" style="padding:20px 20px;border:1px solid #ccc">
  114. Die Einträge des Veranstaltungskalenders erscheinen im «Urner Wochenblatt» und im Gratisanzeiger «Uristier» sowie online auf
  115. <a href="{{ path('fe.veranstaltungen') }}">urnerwochenblatt.ch</a> und <a href="https://www.uristier.ch/" target="_blank" rel="noopener">uristier.ch</a>.
  116. <div class="mt-3 text-center">
  117. <a href="{{ path('fe.veranstaltungen_produkt') }}" class="btn btn-primary btn-sm">Veranstaltung eintragen</a>
  118. </div>
  119. </div>
  120. {{ include('frontend/_partials/_right_col_block-1.html.twig') }}
  121. </div>
  122. <div class="col-lg-8 col-12 mb-lg-0 mb-5">
  123. {# {{ include('frontend/_partials/_accordion_faq.html.twig') }}#}
  124. <div class="accordion-content-box">
  125. {{ contentSeoVeranstaltungen.content_html|accordion|raw }}
  126. </div>
  127. </div>
  128. </div>
  129. {% endblock %}
  130. {% block onPageScriptsArea %}
  131. <script>
  132. $(document).ready(function() {
  133. $('.jqBootstrapVeranstaltungenDatePickerInline, .jqFilterRubrik').change(function () {
  134. submitSearchForm();
  135. });
  136. $(".jqFilterSearch").on('keyup', function (e) {
  137. if (e.keyCode === 13) {
  138. submitSearchForm();
  139. }
  140. });
  141. $('.jqFilterSearchBtn').click(function () {
  142. submitSearchForm();
  143. });
  144. $('.jqFilterRemoveBtn').click(function () {
  145. submitSearchForm(true);
  146. });
  147. // $('.jqFilterSearchRemoveBtn').click(function () {
  148. // $('.jqFilterSearch').val('').trigger('change');
  149. // });
  150. //
  151. // $('.jqFilterRubrikRemoveBtn').click(function () {
  152. // $('.jqFilterRubrik').val('').trigger('change');
  153. // });
  154. //
  155. // $('.jqFilterDateRemoveBtn').click(function () {
  156. // $('.jqBootstrapVeranstaltungenDatePickerInline').data('date', '').trigger('change');
  157. // })
  158. });
  159. function submitSearchForm(resetFilters) {
  160. var url = '{{ path('fe.veranstaltungen') }}';
  161. if (resetFilters === undefined) {
  162. resetFilters = false;
  163. }
  164. var params = {};
  165. if (!resetFilters) {
  166. params.d = $('.jqBootstrapVeranstaltungenDatePickerInline').data('date');
  167. params.s = $('.jqFilterSearch').val();
  168. params.r = $('.jqFilterRubrik').val();
  169. }
  170. var queryParam = $.param( params );
  171. setTimeout(function() {
  172. if (queryParam.length > 0) {
  173. window.location.href = url +'?'+ queryParam;
  174. } else {
  175. window.location.href = url;
  176. }
  177. }, 0);
  178. }
  179. </script>
  180. {% endblock %}