src/Front/Modules/Cart/Templates/Cart/partials/cartWidget.html.twig line 1

  1. <div id="cart_widget_container">
  2.     <style>
  3.         .cart-badge {
  4.             position: absolute;
  5.             top: -5px;
  6.             right: -5px;
  7.             font-size: 0.65rem;
  8.             padding: 0.25em 0.6em;
  9.         }
  10.         .cart-dropdown {
  11.             width: 320px;
  12.             border: 1px solid var(--glass-border);
  13.             border-radius: 1rem;
  14.             box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
  15.             padding: 1rem;
  16.         }
  17.     </style>
  18.     <div class="dropdown me-lg-3">
  19.         <button class="btn btn-light position-relative rounded-pill" type="button" data-bs-toggle="dropdown" aria-expanded="false">
  20.             <span class="pe-3">Koszyk</span>
  21.             <i class="bi bi-cart3 fs-5"></i>
  22.             {% if data.total_quantity %}
  23.                 <span class="position-absolute cart-badge badge rounded-pill bg-danger">
  24.                     {{ data.total_quantity }}
  25.                 </span>
  26.             {% endif %}
  27.         </button>
  28.         <div class="dropdown-menu dropdown-menu-end cart-dropdown p-3 mt-3">
  29.             <h6 class="fw-bold mb-3">Podgląd koszyka</h6>
  30.             {% if data.total_quantity %}
  31.                 <div class="mb-3" id="mini-cart-items">
  32.                     {% for categoryData in data.online_services %}
  33.                         {% for itemData in categoryData.items %}
  34.                             <div class="d-flex justify-content-between align-items-center mb-2 small">
  35.                                 <span class="text-truncate" style="max-width: 180px;">{{ categoryData.entity.name }}: {{ itemData.entity.priceListItem.name }}</span>
  36.                                 <span class="fw-bold">{{ itemData.entity.priceListItem.price|formatPrice }}</span>
  37.                             </div>
  38.                         {% endfor %}
  39.                     {% endfor %}
  40.                 </div>
  41.                 <div class="border-top pt-2 mb-3 d-flex justify-content-between align-items-center">
  42.                     <span class="small text-muted">Suma netto:</span>
  43.                     <span class="fw-bold text-primary">{{ data.total_items_price|formatPrice }}</span>
  44.                 </div>
  45.                 <a href="{{ path(isUserPanelCart ? 'user_panel_cart_details' : 'front_cart_details') }}"
  46.                 class="btn btn-primary btn-sm w-100 rounded-pill">Przejdź do koszyka</a>
  47.             {% else %}
  48.                 Brak produktów w koszyku.
  49.             {% endif %}
  50.         </div>
  51.     </div>
  52. </div>
  53. {% if not app.request.isXmlHttpRequest %}
  54.     <script type="text/javascript" src="{{ asset('assets/app/front/modules/cart/js/cart_widget.js') }}"></script>
  55.     <script type="text/javascript">
  56.         $(document).ready(function ()
  57.         {
  58.             CartWidgetSettings = {
  59.                 updateUrl: '{{ path('front_cart_widget_update_ajax', { 'isUserPanelCart': isUserPanelCart ? 1 : 0}) }}'
  60.             };
  61.             CartWidget.init();
  62.         });
  63.     </script>
  64. {% endif %}