templates/pages/calendar.html.twig line 1

Open in your IDE?
  1. {# @var page \App\Controller\Objects\Page #}
  2. {% extends 'base.html.twig' %}
  3. {% block customcss %}
  4.     {{ parent() }}
  5.     <link rel="stylesheet" type="text/css" href="/assets/custom/fullcalendar/fullcalendar.min.css" />
  6.     <link rel="stylesheet" type="text/css" href="/assets/custom/css/fullcalendar-custom.min.{{ app.request.server.get('APP_PREVCACHE') }}.css" />
  7. {% endblock %}
  8.     {% block og %}
  9.         <meta property="og:url"         content="{{ app.request.server.get('APP_URL') }}/kalendar" />
  10.         <meta property="og:type"        content="website" />
  11.         <meta property="og:title"       content="Kalendář akcí" />
  12.         <meta property="og:description" content="Přehled kulturních a sportovních akcí v Chomutově." />
  13.         <meta property="og:image"       content="{{ app.request.server.get('APP_URL') }}/assets/custom/img/og.png" />
  14.     {% endblock %}
  15. {% block body %}
  16.     <div class=" ms-hero-page ms-hero-bg-info mb-6" style="background: linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3)), url('{{ page.picture.small }}');">
  17.         {% if pageinfo.info != '' %}
  18.             <div class="container" style="position: relative; top: -80px">
  19.                 <div id="id-header-news">
  20.                     <i class="fa fa-info-circle"></i>
  21.                     <div class="marquee">
  22.                         <div class="marquee-content">{{ pageinfo.info|raw }}</div>
  23.                     </div>
  24.                 </div>
  25.             </div>
  26.         {% endif %}
  27.         <div class="text-center color-white mt-6 mb-6 index-1">
  28.             <h1>{{ page.title }}</h1>
  29.             <p class="lead lead-lg mb-4">Přehled kulturních a sportovních akcí v Chomutově</p>
  30.             <a href="javascript:void(0)" id="id-btn-publish" class="btn btn-object">zveřejnení akce</a>
  31.         </div>
  32.     </div>
  33.     <div class="container" style="margin-top: -110px">
  34.     <div class="row">
  35.         <div class="col-lg-12">
  36.             <article class="card card-primary wow zoomInRight animation-delay-1 mb-4" style="visibility: visible; animation-name: zoomInRight;">
  37.                 <div class="card-body overflow-hidden card-body-big">
  38.                     <div class="content" style="position: relative;">
  39.                         <div class="calendar-loader ms-preload">
  40.                             <div id="status">
  41.                                 <div class="spinner">
  42.                                     <div class="dot1"></div>
  43.                                     <div class="dot2"></div>
  44.                                 </div>
  45.                             </div>
  46.                         </div>
  47.                         <div class="c-row text-center" style="padding-bottom: 30px;">
  48.                             <div class="form-group row justify-content-end">
  49.                                 <h4 for="id-object-select" class="col-lg-1 mt-1">Filtr</h4>
  50.                                 <div class="col-lg-3">
  51.                                          <select id="id-object-select" class="form-control selectpicker" data-dropup-auto="false" tabindex="-98">
  52.                                              <option value="0" data-link="">Vše</option>
  53.                                              <option value="3" data-link="aquasvet">Aquasvět</option>
  54.                                              <option value="2" data-link="fotbalovy-stadion">Fotbalový stadion</option>
  55.                                              <option value="4" data-link="kino-svet">Kino Svět</option>
  56.                                              <option value="19" data-link="letni-kino">Letní kino</option>
  57.                                              <option value="7" data-link="mestska-sportovni-hala">Městská sportovní hala</option>
  58.                                              <option value="5" data-link="mestske-divadlo">Městské divadlo</option>
  59.                                              <option value="1" data-link="zimni-stadion-rocknet-arena">Rocknet Aréna - Zimní stadion</option>
  60.                                              <option value="26" data-link="zimni-stadion-treninkova-hala">Zimní stadion - Tréninková hala</option>
  61.                                          </select>
  62.                                 </div>
  63.                             </div>
  64.                         </div>
  65.                         <div id="id-calendar" class="fc fc-unthemed fc-ltr" style="min-height: 1000px">
  66.                         </div>
  67.                     </div>
  68.                 </div>
  69.             </article>
  70.         </div>
  71.     </div>
  72. </div>
  73. {% endblock %}
  74. {% block javascripts %}
  75.     {{ parent() }}
  76.     <script src="/assets/custom/fullcalendar/lib/jquery-ui.min.js"></script>
  77.     <script src="/assets/custom/fullcalendar/lib/moment.min.js"></script>
  78.     <script src="/assets/custom/fullcalendar/fullcalendar.min.js"></script>
  79.     <script src='/assets/custom/fullcalendar/locale/cs.js'></script>
  80.     <script>
  81.         $(document).ready(function() {
  82.             var id = parseInt($('#id-object-select').val(), 10);
  83.             if (isNaN(id)) {
  84.                 id = 0;
  85.             }
  86.             if (id == 0) {
  87.                 var so = localStorage.getItem('selected-object');
  88.                 if (parseInt(so, 10) > 0) {
  89.                     id = so;
  90.                     $('.selectpicker').selectpicker('val', id);
  91.                 }
  92.             }
  93.             LoadCalendar(id);
  94.             $('#id-object-select').change(function() {
  95.                 ShowLoader(true);
  96.                 setTimeout(function() {
  97.                     $('#id-calendar').fullCalendar('destroy');
  98.                     localStorage.setItem('selected-object', $('#id-object-select').val());
  99.                     LoadCalendar($('#id-object-select').val());
  100.                 }, 500);
  101.             });
  102.             $('#id-btn-publish').click(function() {
  103.                 let link = $('#id-object-select').find(":selected").data('link');
  104.                 if (link=='') {
  105.                     toastr.error('vyberte objekt ve filtru');
  106.                 }
  107.                 else {
  108.                     location.href = '/'+link+'/zverejneni-akce';
  109.                 }
  110.             });
  111.         });
  112.         function GoTo(location){
  113.             document.location.href = location;
  114.         }
  115.         function LoadCalendar(object_id) {
  116.             var params = '';
  117.             if (object_id > 0) {
  118.                 params = '?object=' + object_id;
  119.             }
  120.             $('#id-calendar').fullCalendar({
  121.                 header: {
  122.                     left: 'prev,next today',
  123.                     center: 'title',
  124.                     right: 'month agendaWeek agendaDay',
  125.                 },
  126.                 locale: 'cs',
  127.                 editable: false,
  128.                 eventClick: function(event) {
  129.                     GoTo(event.url);
  130.                     return false;
  131.                 },
  132.                 events: {
  133.                     url: '/kalendar-data' + params
  134.                 },
  135.                 loading: function(loading) {
  136.                     if (!loading) {
  137.                         ShowLoader(false);
  138.                         /*ScrollToTodayCalendar();*/
  139.                         //fc-button fc-state-default
  140.                         $('#id-calendar button').removeClass('fc-button').removeClass('fc-state-default').addClass('btn btn-raised');
  141.                     }
  142.                 },
  143.                 timeFormat: 'H:mm',
  144.                 eventLimit: 4,
  145.                 firstDay: 1
  146.             });
  147.         }
  148.         function ShowLoader(show) {
  149.             if (show && !$('.calendar-loader').is(':visible')) {
  150.                 $('.calendar-loader').css('display', 'flex').hide().fadeIn();
  151.             } else {
  152.                 $('.calendar-loader').fadeOut();
  153.             }
  154.         }
  155.         function ScrollToTodayCalendar() {
  156.             var today_offset = $('.fc-today').offset();
  157.             if(today_offset !== undefined) {
  158.                 var scroller = $('.fc-scroller');
  159.                 if(scroller.css('overflow-y') == 'scroll') {
  160.                     $('.fc-scroller').stop().animate({scrollTop:today_offset.top - $('.fc-scroller').offset().top + 200}, 500, 'swing');
  161.                     $("html, body").stop().animate({scrollTop:$('.fc-scroller').offset().top - 200}, 500, 'swing');
  162.                 }
  163.                 else {
  164.                     $("html, body").stop().animate({scrollTop:today_offset.top - 200}, 500, 'swing');
  165.                 }
  166.             }
  167.         }
  168.     </script>
  169. {% endblock %}