templates/bundles/SyliusAdminBundle/Layout/_search.html.twig line 1

Open in your IDE?
  1. <div class="item">
  2.     <form method="get" action="{{ path('sylius_admin_product_index') }}" class="search-form">
  3.         <div class="ui transparent left icon input search-container">
  4.             <input type="text" name="criteria[search][value]" placeholder="{{ 'sylius.ui.search_products'|trans }} ..." class="search-input">
  5.             <i class="search link icon search-toggle"></i>
  6.         </div>
  7.     </form>
  8. </div>
  9. <style>
  10. @media (max-width: 768px) {
  11.     .search-container {
  12.         position: relative;
  13.     }
  14.     .search-input {
  15.         width: 0;
  16.         opacity: 0;
  17.         transition: all 0.3s ease;
  18.         padding-left: 0;
  19.         padding-right: 0;
  20.     }
  21.     .search-container.expanded .search-input {
  22.         width: 200px;
  23.         opacity: 1;
  24.         padding-left: 2.5em;
  25.         padding-right: 1em;
  26.     }
  27.     .search-container.expanded .search-toggle {
  28.         color: #666;
  29.     }
  30. }
  31. @media (min-width: 769px) {
  32.     .search-input {
  33.         width: 100% !important;
  34.         opacity: 1 !important;
  35.         padding-left: 2.5em !important;
  36.         padding-right: 1em !important;
  37.     }
  38. }
  39. </style>
  40. <script>
  41. document.addEventListener('DOMContentLoaded', function() {
  42.     const searchContainer = document.querySelector('.search-container');
  43.     const searchToggle = document.querySelector('.search-toggle');
  44.     const searchInput = document.querySelector('.search-input');
  45.     if (searchToggle && searchContainer) {
  46.         searchToggle.addEventListener('click', function(e) {
  47.             if (window.innerWidth <= 768) {
  48.                 e.preventDefault();
  49.                 searchContainer.classList.toggle('expanded');
  50.                 if (searchContainer.classList.contains('expanded')) {
  51.                     searchInput.focus();
  52.                 }
  53.             }
  54.         });
  55.         // Close search when clicking outside
  56.         document.addEventListener('click', function(e) {
  57.             if (window.innerWidth <= 768) {
  58.                 if (!searchContainer.contains(e.target)) {
  59.                     searchContainer.classList.remove('expanded');
  60.                 }
  61.             }
  62.         });
  63.         // Handle form submission
  64.         const searchForm = document.querySelector('.search-form');
  65.         if (searchForm) {
  66.             searchForm.addEventListener('submit', function(e) {
  67.                 if (window.innerWidth <= 768 && !searchContainer.classList.contains('expanded')) {
  68.                     e.preventDefault();
  69.                     searchContainer.classList.add('expanded');
  70.                     searchInput.focus();
  71.                 }
  72.             });
  73.         }
  74.     }
  75. });
  76. </script>