custom/plugins/NextagTheme/src/Resources/views/storefront/page/content/vue/search.html.twig line 1

Open in your IDE?
  1. {# Translations #}
  2. <form action="{{dosuggestPrefix}}{{ "general.searchRoute"|trans }}"
  3.     method="get"
  4.     data-search-form="true"    
  5.     class="header-search-form js-search-form">
  6.     <div class="input-group">
  7.         <input type="search"
  8.             name="search"
  9.             class="form-control form-control-grey header-search-input"
  10.             id="site-search-input"
  11.             placeholder="{{ "header.searchPlaceholder"|trans|striptags }}"
  12.             aria-label="{{ "header.searchPlaceholder"|trans|striptags }}"
  13.             maxlength="30"            
  14.             v-model="searchTerm"
  15.             @input="search"
  16.             {# onfocus="this.placeholder = ''"
  17.             onblur="this.placeholder = '{{ "header.searchPlaceholder"|trans|striptags }}'"  #}
  18.             >
  19.           
  20.         <div class="input-group-append">
  21.             
  22.             <button type="button"
  23.                     v-if="showClearBtn"
  24.                     class="btn header-search-clear-btn"
  25.                     id="reset-site-search-input" @click="resetSearchTerm($event)"
  26.                     aria-label="{{ "header.searchButtonClear"|trans|striptags }}"
  27.                     title="{{ "header.searchButtonClear"|trans|striptags }}"
  28.                     :disabled="searching">  
  29.                 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 511.985 511.985" xml:space="preserve">
  30.                     <path d="M15.066 511.981c-3.855 0-7.71-1.476-10.662-4.397-5.873-5.873-5.873-15.42 0-21.293L486.287 4.408c5.873-5.873 15.42-5.873 21.293 0s5.873 15.42 0 21.293L25.698 507.584c-2.922 2.921-6.777 4.397-10.632 4.397z"/>
  31.                     <path d="M496.949 511.981c-3.855 0-7.71-1.476-10.662-4.397L4.405 25.702c-5.873-5.873-5.873-15.42 0-21.293s15.42-5.873 21.293 0L507.58 486.291c5.873 5.873 5.873 15.42 0 21.293-2.921 2.921-6.776 4.397-10.631 4.397z"/>
  32.                 </svg>
  33.             </button>
  34.             <button type="submit"
  35.                     class="btn header-search-btn"
  36.                     aria-label="{{ "header.searchButton"|trans|striptags }}" :disabled="searching">  
  37.                 <div v-if="searching" class="loader" role="status">
  38.                     <span class="sr-only">Loading...</span>
  39.                 </div>
  40.                 <span class="header-search-icon">
  41.                     <svg class="header-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 512 512" xml:space="preserve">
  42.                         <path class="svg-fill svg-stroke" stroke-width="10.667" stroke="#000" d="M330.264 316.655c24.946-31.214 40.031-71.26 40.031-114.828 0-5.455-.236-10.855-.7-16.19l.048.693c-3.945-48.496-26.287-91.124-59.95-121.415l-.166-.147c-30.04-27.053-70.005-43.602-113.835-43.602-51.992 0-98.544 23.284-129.8 59.993l-.2.24C38.117 113.507 21.33 155.577 21.33 201.567c0 51.863 21.349 98.74 55.737 132.322l.037.036c30.648 29.82 72.551 48.209 118.748 48.209 49.617 0 94.279-21.212 125.413-55.062l.11-.122 159.872 163.882 9.421-9.748zm-133.337 52.158c-33.099-.045-63.764-10.426-88.951-28.09l.498.331c-26.115-18.325-46.322-43.45-58.245-72.822l-.393-1.096c-7.669-18.666-12.122-40.334-12.122-63.042 0-11.362 1.114-22.463 3.24-33.2l-.178 1.081c6.435-33.063 21.867-61.789 43.623-84.385l-.05.053c21.417-22.252 49.233-38.203 80.484-44.892l1.035-.185c9.341-2.011 20.073-3.162 31.074-3.162 22.017 0 42.957 4.612 61.907 12.922l-.991-.388c29.784 13.076 54.117 33.941 71.07 60.041l.38.623c16.826 25.831 26.833 57.441 26.833 91.389 0 45.231-17.764 86.313-46.696 116.649l.063-.067c-28.441 29.644-68.341 48.106-112.553 48.241h-.025z"/>
  43.                     </svg>
  44.                 </span>
  45.             </button>
  46.         </div>
  47.     </div>
  48.     <div v-if="found" class="search-suggest js-search-result">            
  49.         <div class="search-suggest-container">
  50.             <template
  51.                 v-if="foundSuggestions && foundSuggestions.length > 0">
  52.                 <div class="search-suggestion-block search-suggestion-block--similar">
  53.                     <div class="h3 mt-0 mb-2">Meinten Sie?</div>
  54.                     <ul class="list-unstyled search-suggest-product__similar">
  55.                         <li v-for="foundSuggestion in foundSuggestions"
  56.                             class="search-suggest-product search-suggest-product__similar__item">
  57.                             <span @click="useSuggestion(foundSuggestion)">[[foundSuggestion]]</span>
  58.                         </li>
  59.                     </ul>
  60.                 </div>
  61.             </template>
  62.             <template v-if="products.length > 0">       
  63.                 <div class="search-suggestion-block search-suggestion-block--products">     
  64.                     <div class="h3">{{"search.products" | trans}}</div>
  65.                     <ul class="list-unstyled">
  66.                         <li class="search-suggest-product search-suggest-product__product js-result" v-for="product in products" :key="product._id">                                                    
  67.                             <a :href="product._source.seoUrl" :title="product._source.name" class="search-suggest-product-link">
  68.                                 <div class="row flex-nowrap align-items-start no-gutters">                                    
  69.                                     <div  class="col-auto search-suggest-product-image-container">                                            
  70.                                         <img v-if="product._source.coverdropdownthumbnail" :src="product._source.coverdropdownthumbnail" class="search-suggest-product-image">
  71.                                         <img v-else-if="product._source.cover" :src="product._source.cover" class="search-suggest-product-image">
  72.                                         <svg v-else xmlns="http://www.w3.org/2000/svg" viewBox="0 0 107.69998 82.8"><path fill="#413a3e" d="M46.89999,23h11.3l14.7,46.8,14.70001-46.8h11.29999l8.79999,59.8h-9.39999s-5.89999-42.39999-6.29999-46.2l-14.39999,46.2h-9.3l-14.5-46.2c-.39999,3.89999-6.3,46.2-6.3,46.2h-9.39999l8.79999-59.8h0Zm-29.89999,20.10001c.10001-9,3.2-18.3,3.8-20H11.40001c-2.2,6-3.89999,12.7-3.8,18.89999,.2,22.7,21.8,27,23.2,27.3l.3-1.60001c-1.20001-.5-14.30002-5.79999-14.10001-24.59999Z"/><path class="b" d="M2.29999,39C3.09999,26.2,12.39999,3.8,14.09999,0h-2.39999C10,4,0,28,0,40.3c0,28.10001,28.10001,31,30.5,31.10001l.2-1c-2.5-.3-30.2-4.20001-28.40001-31.40001Z"/></svg>
  73.                                     </div>                                    
  74.                                     <div class="col search-suggest-product-text-container">
  75.                                         <div class="search-suggest-product-name">
  76.                                             [[ product._source.name ]]<template v-if="product._source.custom_produkt_produkt_jahrgang"> [[ product._source.custom_produkt_produkt_jahrgang ]]</template>
  77.                                         </div>                                                                                                              
  78.                                         <div>
  79.                                             <template v-if="product._source.custom_produzent_produzent_name || product._source.custom_produkt_produkt_typ || product._source.custom_produkt_produkt_herkunft">                                                
  80.                                                 <div class="search-suggest-attributes">
  81.                                                     {# <template v-if="product._source.custom_produkt_produkt_lage">
  82.                                                         [[ product._source.custom_produkt_produkt_lage ]]<br>
  83.                                                     </template> #}
  84.                                                     <template v-if="product._source.custom_produzent_produzent_name">
  85.                                                         [[ product._source.custom_produzent_produzent_name ]]<br>
  86.                                                     </template>
  87.                                                 </div>
  88.                                                 <div v-if="product._source.custom_produkt_produkt_flaschengroesse" class="search-suggest-attributes search-suggest-attributes__size">
  89.                                                     [[ product._source.custom_produkt_produkt_flaschengroesse ]]
  90.                                                 </div>
  91.                                             </template>
  92.                                         </div>
  93.                                     </div>
  94.                                     <div class="col-auto search-suggest-price-info">
  95.                                         <div v-if="product._source.custom_produkt_label_produkt_aufanfrage">{{ "product.onRequest"|trans }}</div>
  96.                                         <div v-else-if="product._source.custom_produkt_label_produkt_comingsoon">{{ "product.comingSoon"|trans }}</div>
  97.                                         <div v-else-if="product._source.price == 9999">{{ "product.comingSoon"|trans }}</div>
  98.                                         <div v-else-if="product._source.custom_produkt_label_produkt_subscription && product._source.custom_produkt_label_produkt_subscription == true && product._source.custom_produkt_label_produkt_comingsoon == false && product._source.price == 0 && (product._source.stock == '' || product._source.stock <= 0)">{{ "product.comingSoon"|trans }}</div>
  99.                                         <div v-else-if="(product._source.custom_produkt_label_produkt_ausverkauft && product._source.custom_produkt_label_produkt_ausverkauft == true) || (product._source.stock == '' || product._source.stock <= 0)">{{ "product.temporairySoldOut"|trans }}</div>
  100.                                         <div v-else class="search-suggest-price-info-item search-suggest-price">                                                        
  101.                                             <template v-if="product._source && product._source.productNumber !== 'gsweb-1-printathome'">                                                            
  102.                                                 <template v-if="config.currentCustomerGroup === 'Mitarbeiter'">
  103.                                                     [[ formatNumber(product._source.price_gross_mitarbeiter) ]]                                                                
  104.                                                     <template v-if="product._source.stattprice_gross_mitarbeiter && product._source.stattprice_gross_mitarbeiter != product._source.price_gross_mitarbeiter">                                                                
  105.                                                         <div>{{ "product.insteadOf"|trans }} <del>[[ formatNumber(product._source.stattprice_gross_mitarbeiter) ]]</del></div>
  106.                                                     </template>
  107.                                                 </template>
  108.                                                 <template v-else-if="config.currentCustomerGroup === 'Wiederverkauf'">
  109.                                                     [[ formatNumber(product._source.price_net_wiederverkauf) ]]
  110.                                                     <template v-if="product._source.stattprice_net_wiederverkauf && product._source.stattprice_net_wiederverkauf != product._source.price_net_wiederverkauf">                                                                
  111.                                                         <div>{{ "product.insteadOf"|trans }} <del>[[ formatNumber(product._source.stattprice_net_wiederverkauf) ]]</del></div>
  112.                                                     </template>
  113.                                                 </template>
  114.                                                 <template v-else>                                                                
  115.                                                     [[ formatNumber(product._source.price_gross_privat) ]]
  116.                                                     <template v-if="product._source.stattprice_gross_privat && product._source.stattprice_gross_privat != product._source.price_gross_privat">                                                                
  117.                                                     <div>{{ "product.insteadOf"|trans }} <del>[[ formatNumber(product._source.stattprice_gross_privat) ]]</del></div>
  118.                                                     </template>                                               
  119.                                                 </template>
  120.                                             </template>
  121.                                         </div>
  122.                                     </div>
  123.                                 </div>
  124.                             </a>
  125.                         </li>          
  126.                     </ul>    
  127.                     <div class="js-result search-suggest-total">
  128.                         <a :href="'{{dosuggestPrefix}}{{path("nextag.search.page")}}?search=' + searchTerm"
  129.                             title="Alle Weine anzeigen"
  130.                             class="btn btn-arrow"
  131.                         >
  132.                             Alle Weine anzeigen
  133.                         </a>
  134.                     </div>        
  135.                 </div>              
  136.             </template>
  137.                                       
  138.             <template v-if="searchFinished && producers.length > 0">
  139.                 <div class="search-suggestion-block search-suggestion-block--producers">
  140.                     <div class="h3">{{"search.producers" | trans}}</div>
  141.                     <ul class="list-unstyled">                        
  142.                         <li v-for="producer in producers" class="search-suggest-product search-suggest-product__website js-result">
  143.                             <a :href="producer._source.seoUrl">
  144.                                 <div class="row flex-nowrap align-items-start no-gutters">
  145.                                     <div class="col-auto search-suggest-product-image-container">                                        
  146.                                         <img v-if="producer._source.coverdropdownthumbnail" :src="producer._source.coverdropdownthumbnail" class="search-suggest-product-image">
  147.                                         <img v-else-if="producer._source.cover" :src="producer._source.cover" class="search-suggest-product-image">
  148.                                         <img v-else src="/bundles/nextagtheme/assets/images/placeholders/placeholder-blog-thumb.svg">
  149.                                     </div>
  150.                                     <div class="col search-suggest-product-text-container"> 
  151.                                         <div class="row">
  152.                                             <div class="col search-suggest-product-name">[[ producer._source.name ]]</div>
  153.                                         </div>
  154.                                         <div class="row">
  155.                                             <div class="col-12">
  156.                                                 <div class="search-suggest-attributes">
  157.                                                     <template v-if="producer._source.custom_category_attributes_land_name">
  158.                                                         [[ producer._source.custom_category_attributes_land_name ]]
  159.                                                         <template v-if="producer._source.custom_category_attributes_region_name">
  160.                                                             &nbsp;/&nbsp; [[ producer._source.custom_category_attributes_region_name ]]
  161.                                                             <template v-if="producer._source.custom_category_attributes_subregion_name">
  162.                                                                 &nbsp;/&nbsp; [[ producer._source.custom_category_attributes_subregion_name ]]
  163.                                                             </template>
  164.                                                         </template>
  165.                                                         <br>
  166.                                                     </template>                                          
  167.                                                 </div>
  168.                                             </div>
  169.                                         </div>
  170.                                     </div>
  171.                                 </div>
  172.                             </a>                               
  173.                         </li>                    
  174.                     </ul>
  175.                 </div>
  176.             </template>                           
  177.                                  
  178.             <template v-if="searchFinished && wordpressPosts.length > 0">
  179.                 <div class="search-suggestion-block search-suggestion-block--posts">
  180.                     <div class="h3">{{"search.stories" | trans}}</div>
  181.                     <ul class="list-unstyled">                    
  182.                         <li v-for="post in wordpressPosts" class="search-suggest-product search-suggest-product__website js-result">
  183.                             {# TODO: Check Media #}                                                                  
  184.                             <a :href="post._source.link">
  185.                                 <div class="row flex-nowrap align-items-start no-gutters">
  186.                                     <div class="col-auto search-suggest-product-image-container">                                        
  187.                                         <template v-if="post._source.thumbnail">
  188.                                             <img :src="post._source.thumbnail" :alt="'{{"general.longName"|trans}} - ' + post._source.post_title" :title="post._source.post_title">
  189.                                         </template>
  190.                                         <template v-else>
  191.                                             <img src="/bundles/nextagtheme/assets/images/placeholders/placeholder-blog-thumb.svg" :alt="'{{"general.longName"|trans}} - ' + post._source.post_title" :title="post._source.post_title">
  192.                                         </template>                                        
  193.                                     </div>
  194.                                     <div class="col search-suggest-product-text-container">
  195.                                         <div class="search-suggest-product-name" v-html="post._source.post_title"></div>                                 
  196.                                         <div v-if="post._source.post_excerpt" class="search-suggest-product-excerpt"><span v-html="post._source.post_excerpt"></span></div>                                    
  197.                                     </div>    
  198.                                 </div>                                
  199.                             </a>
  200.                         </li>
  201.                     </ul>
  202.                 </div>
  203.             </template>
  204.             <template v-if="searchFinished && wordpressStories.length > 0">
  205.                 <div class="search-suggestion-block search-suggestion-block--stories">
  206.                     <div class="h3">{{"search.stories" | trans}}</div>
  207.                     <ul class="list-unstyled">                    
  208.                         <li v-for="post in wordpressStories" class="search-suggest-product search-suggest-product__website js-result">
  209.                             {# TODO: Check Media #}                                                                  
  210.                             <a :href="post._source.link">
  211.                                 <div class="row flex-nowrap align-items-start no-gutters">
  212.                                     <div class="col-auto search-suggest-product-image-container">                                        
  213.                                         <template v-if="post._source.thumbnail">
  214.                                             <img :src="post._source.thumbnail" :alt="'{{"general.longName"|trans}} - ' + post._source.post_title" :title="post._source.post_title">
  215.                                         </template>
  216.                                         <template v-else>
  217.                                             <img src="/bundles/nextagtheme/assets/images/placeholders/placeholder-blog-thumb.svg" :alt="'{{"general.longName"|trans}} - ' + post._source.post_title" :title="post._source.post_title">
  218.                                         </template>                                        
  219.                                     </div>
  220.                                     <div class="col search-suggest-product-text-container">
  221.                                         <div class="search-suggest-product-name" v-html="post._source.post_title"></div>                            
  222.                                         <div v-if="post._source.post_excerpt" class="search-suggest-product-excerpt"><span v-html="post._source.post_excerpt"></span></div>                                    
  223.                                     </div>    
  224.                                 </div>                                
  225.                             </a>
  226.                         </li>
  227.                     </ul>
  228.                 </div>
  229.             </template>
  230.             <template v-if="searchFinished && wordpressPages.length > 0">
  231.                 <div class="search-suggestion-block search-suggestion-block--pages">
  232.                     <div class="h3">{{"search.pages" | trans}}</div>
  233.                     <ul class="list-unstyled">                    
  234.                         <li v-for="post in wordpressPages" class="search-suggest-product search-suggest-product__website js-result">
  235.                             {# TODO: Check Media #}                                                                  
  236.                             <a :href="post._source.link">
  237.                                 <div class="row flex-nowrap align-items-start no-gutters">
  238.                                     <div class="col-auto search-suggest-product-image-container">                                      
  239.                                         <template v-if="post._source.thumbnail">
  240.                                             <img :src="post._source.thumbnail" :alt="'{{"general.longName"|trans}} - ' + post._source.post_title" :title="post._source.post_title">
  241.                                         </template>
  242.                                         <template v-else>
  243.                                             <img src="/bundles/nextagtheme/assets/images/placeholders/placeholder-blog-thumb.svg" :alt="'{{"general.longName"|trans}} - ' + post._source.post_title" :title="post._source.post_title">
  244.                                         </template>                                        
  245.                                     </div>
  246.                                     <div class="col search-suggest-product-text-container">
  247.                                         <div class="search-suggest-product-name" v-html="post._source.post_title"></div>                                     
  248.                                         <div v-if="post._source.post_excerpt" class="search-suggest-product-excerpt"><span v-html="post._source.post_excerpt"></span></div>                                    
  249.                                     </div>    
  250.                                 </div>                                
  251.                             </a>
  252.                         </li>
  253.                     </ul>
  254.                 </div>
  255.             </template>
  256.             
  257.             <div v-if="searchFinished && products.hits !== undefined && products.hits.hits !== undefined && products.hits.hits.length == 0 && wordpressPages.length === 0 && wordpressPosts.length === 0" class="search-suggest-no-result">
  258.                 {{ "header.searchNoResult"|trans|sw_sanitize }}
  259.             </div>
  260.         
  261.             <div v-else class="js-result search-suggest-total">
  262.                 <a :href="'{{dosuggestPrefix}}{{path("nextag.search.page")}}?search=' + searchTerm"
  263.                     title="{{ "header.searchAllResults"|trans|striptags }}"
  264.                     class="btn btn-arrow"
  265.                 >
  266.                     {{ "header.searchAllResults"|trans|sw_sanitize }}
  267.                 </a>
  268.             </div>            
  269.         </div>
  270.     </div>
  271. </form>