templates/default/events.html.twig line 1

Open in your IDE?
  1. {% extends 'layouts/layout.html.twig' %}
  2. {% do pimcore_head_script().appendFile('https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js') %}
  3. {% do pimcore_head_script().appendFile('https://cdn.jsdelivr.net/npm/vuejs-datepicker@1.6.2/dist/vuejs-datepicker.js') %}
  4. {% do pimcore_head_script().appendFile('https://cdn.jsdelivr.net/npm/apollo-client-browser@1.9.0/dist/apollo-client.min.js') %}
  5. {% do pimcore_head_script().appendFile('https://cdn.jsdelivr.net/npm/vue-apollo@2.1.0-rc.7/dist/vue-apollo.min.js') %}
  6. {% do pimcore_head_script().appendFile('https://unpkg.com/leaflet@1.5.1/dist/leaflet.js') %}
  7. {% do pimcore_head_script().appendFile('https://unpkg.com/vue2-leaflet') %}
  8. {% do pimcore_head_link().appendStylesheet(asset('https://unpkg.com/leaflet/dist/leaflet.css')) %}
  9. {% do pimcore_head_script().appendFile(asset('static/js/vue-app.js')) %}
  10. {% block content %}
  11.     {{ pimcore_areablock('content', {
  12.         'allowed': ['blockquote', 'embed', 'featurette', 'gallery-carousel', 'gallery-folder',
  13.             'gallery-single-images', 'headlines', 'horizontal-line', 'icon-teaser-row', 'image',
  14.             'image-hotspot-marker', 'pdf', 'product-grid', 'product-teaser', 'standard-teaser', 'text-accordion',
  15.             'time-slider-featurette', 'video', 'wysiwyg', 'wysiwyg-with-images']
  16.     }) }}
  17.     <div  id="vueapp" class="row">
  18.         <div class="col-md-12">
  19.             <section v-if="activePanel === 1"  v-cloak >
  20.                 <div class="header row mb-4">
  21.                     <div class="col-md-3 mb-2">
  22.                         <vuejs-datepicker id="fromDate" input-class="form-control" typeable v-model="filters.fromDate" @input="filterListing"  placeholder="From Date"></vuejs-datepicker>
  23.                     </div>
  24.                     <div class="col-md-3 mb-2">
  25.                         <vuejs-datepicker id="fromDate" input-class="form-control" typeable  v-model="filters.toDate" @input="filterListing" placeholder="To Date"></vuejs-datepicker>
  26.                     </div>
  27.                     <div class="col-md-3 mb-2 float-right">
  28.                         <select id="fromDate" class="form-control"  v-model="filters.tag">
  29.                             <option value="All" >Filter By Tag</option>
  30.                             <option value="Trade Show" >Trade Show</option>
  31.                             <option value="Retro" > Retro</option>
  32.                             <option value="International" > International</option>
  33.                             <option  value="1950" > 1950</option>
  34.                             <option value="1960" > 1960</option>
  35.                             <option value="1970" > 1970</option>
  36.                             <option value="Salzburg" >Salzburg</option>
  37.                             <option value="Vienna" >Vienna</option>
  38.                             <option value="Wels" >Wels</option>
  39.                         </select>
  40.                     </div>
  41.                     <div class="col-md-3 mb-2">
  42.                         <button @click="clearFilters" class="btn btn-outline-primary btn-sm d-block form-control">CLEAR FILTERS</button>
  43.                     </div>
  44.                 </div>
  45.                 <div class="row mb-3 text-center">
  46.                     <div class="col-sm-12" v-if="loading">
  47.                         <div class="d-flex justify-content-center">
  48.                             <div class="spinner-border" role="status">
  49.                                 <span class="sr-only">Loading...</span>
  50.                             </div>
  51.                         </div>
  52.                     </div>
  53.                     <div v-if="errored" class="col-md-12 text-center">
  54.                         <h5>Sorry, something went wrong. Please try back later!</h5>
  55.                     </div>
  56.                     <div v-else v-for="(event, index) in filterResult" class="col-sm-4">
  57.                         <div class="teaser card custom-standard-card mb-4 shadow-sm">
  58.                             <img v-if="event.details.mainImage" contain width="350" height="235" class="img-fluid w-100" alt="" title="" :src="event.details.mainImage.fullpath">
  59.                             <div class="card-body text-center">
  60.                                 <h4 class="card-title pricing-card-title text-uppercase" v-text="event.details.title"></h4>
  61.                                 <p><b>Location:</b> [[ event.details.locationAddress ]]</p>
  62.                                 <p class="mb-0"><span>[[ event.details.fromDate ]]</span><span v-if="compareDates(event.details.fromDate, event.details.toDate)"> - [[ event.details.toDate ]]</span>
  63.                                     <span class="d-block mb-4"><b>Timings:</b> [[ event.details.fromTime ]] - [[ event.details.toTime ]]</span>
  64.                                     <a href="javascript:void(0);" class="btn btn-secondary btn-sm" id="show-modal" @click="openDetailPanel(event.details.id)">More Details</a>
  65.                             </div>
  66.                             <div class="card-footer">
  67.                                 <!--Event Tags Footer-->
  68.                                 <span v-for="tag in event.details.tags" class="badge badge-secondary mr-1">[[ tag ]]</span>
  69.                             </div>
  70.                         </div>
  71.                     </div>
  72.                 </div>
  73.             </section>
  74.             <section v-if="activePanel === 2" v-cloak >
  75.                 <div class="row header">
  76.                     <a href="javascript:void(0);" @click="changePanel(1)" class="btn btn-secondary form-control back-button" >Back to Events</a>
  77.                     <div class="col-md-12 text-center">
  78.                         <h3 class="">[[ eventDetails.title ]]</h3>
  79.                     </div>
  80.                 </div>
  81.                 <div class="row mb-3 bg-white p-2">
  82.                     <div id="header" class="col-md-12 text-center">
  83.                     </div>
  84.                     <div id="gallery" class="col-md-8 mx-auto">
  85.                         <div class="iframe-container mx-auto" v-if="eventDetails.video" id="video-gallery">
  86.                             <iframe id="ytplayer" type="text/html"
  87.                                     :src="'https://www.youtube.com/embed/' + eventDetails.video.data.id"
  88.                                     frameborder="0" class="iframe-responsive"></iframe>
  89.                         </div>
  90.                         <div v-else id="image">
  91.                             <img class="d-block mx-auto" v-if="eventDetails.mainImage" :src="eventDetails.mainImage.fullpath">
  92.                         </div>
  93.                         <div id="image-gallery" v-for="image in eventDetails.images" class="col-sm-6 col-md-4">
  94.                             <img contain width="350" height="235" class="img-fluid w-100 img-thumbnail" alt="" title="" :src="image.image.fullpath">
  95.                         </div>
  96.                     </div>
  97.                     <div id="info" class="col-md-12 p-5">
  98.                         <p v-html="eventDetails.description"></p>
  99.                         <div class="row">
  100.                             <div class="col-sm-6">
  101.                                 <p><span class="font-weight-bold">Location: </span> [[ eventDetails.locationAddress ]]</p>
  102.                                 <p>
  103.                                     <span class="font-weight-bold">Date: </span>
  104.                                     [[ eventDetails.fromDate ]] <span v-if="compareDates(eventDetails.fromDate, eventDetails.toDate)">- [[ eventDetails.toDate ]]</span>
  105.                                 </p>
  106.                                 <p>
  107.                                     <span class="font-weight-bold">Timings: </span>
  108.                                     [[ eventDetails.fromTime ]] - [[ eventDetails.toTime ]]
  109.                                 </p>
  110.                                 <p v-if="eventDetails.cars" >
  111.                                     <span class="font-weight-bold">Showcasing Cars: </span>
  112.                                 <ul>
  113.                                     <li v-for="car in eventDetails.cars">
  114.                                         <span v-if="car.manufacturer">[[ car.manufacturer.name ]]</span> [[ car.carName ]], [[ car.productionYear ]]
  115.                                     </li>
  116.                                 </ul>
  117.                                 </p>
  118.                             </div>
  119.                             <div class="col-sm-6">
  120.                                 <div v-if="eventDetails.locationMap" class="col-md-12 mb-4" style="height: 250px">
  121.                                     <v-map :zoom=15 :center="mapCoordinates">
  122.                                         <v-tilelayer url="http://{s}.tile.osm.org/{z}/{x}/{y}.png"></v-tilelayer>
  123.                                         <v-marker :lat-lng="mapCoordinates"></v-marker>
  124.                                     </v-map>
  125.                                 </div>
  126.                             </div>
  127.                         </div>
  128.                         <div v-if="eventDetails.contactName" class="card">
  129.                             <div class="card-header">Organizer:</div>
  130.                             <div class="card-body">
  131.                                 <p v-if="eventDetails.contactName" ><span class="font-weight-bold">Name: </span> [[ eventDetails.contactName ]]</p>
  132.                                 <p v-if="eventDetails.contactPhone" ><span class="font-weight-bold">Phone: </span> [[ eventDetails.contactPhone ]]</p>
  133.                                 <p v-if="eventDetails.contactEmail" ><span class="font-weight-bold">Email: </span> [[ eventDetails.contactEmail ]]</p>
  134.                                 <p v-if="eventDetails.contactAddress" ><span class="font-weight-bold">Address: </span> [[ eventDetails.contactAddress ]]</p>
  135.                             </div>
  136.                         </div>
  137.                     </div>
  138.                 </div>
  139.             </section>
  140.         </div>
  141.     </div>
  142. {% endblock %}