src/Front/Modules/OnlineService/Templates/OnlineService/index.html.twig line 1

  1. {% extends 'Front/Templates/layouts/main.html.twig' %}
  2. {% block javascripts %}
  3.     <script type="text/javascript" src="{{ asset('assets/app/front/modules/online-service/js/online_service_list.js') }}"></script>
  4. {% endblock %}
  5. {% block content %}
  6.     <style>
  7.         .feature-card {padding:1rem; border:solid 1px #efefef; border-radius: 1rem;}
  8.         .feature-card:hover {
  9.             transform: translateY(-5px);
  10.             box-shadow: 0 10px 20px rgba(0,0,0,0.05);
  11.         }
  12.         .service-card {
  13.             border-width: 2px;
  14.         }
  15.         .service-card .price {
  16.                 font-size: 2.2rem;
  17.                  font-weight: 700;
  18.                  line-height: 1.1;
  19.         }
  20.         .package-price-desc {
  21.              font-size: 0.95rem;
  22.              color: #6c757d;
  23.              margin-top: -0.25rem;
  24.              margin-bottom: 1.2rem;
  25.          }
  26.         .filter-badge {
  27.             cursor: pointer;
  28.             border: 1px solid #d7dde5;
  29.             background: #fff;
  30.             color: #3c4a5c;
  31.             transition: all .2s ease;
  32.         }
  33.         .filter-badge:hover {
  34.             border-color: var(--primary-color);
  35.             color: var(--primary-color);
  36.         }
  37.         .filter-badge.active {
  38.             background: var(--primary-color);
  39.             border-color: var(--primary-color);
  40.             color: #fff;
  41.         }
  42.         .service-group-badge {
  43.             cursor: pointer;
  44.             margin-left: auto;
  45.         }
  46.         .icon-box {
  47.             width: 50px;
  48.             height: 50px;
  49.             display: flex;
  50.             align-items: center;
  51.             justify-content: center;
  52.             border-radius: 10px;
  53.             margin-bottom: 20px;
  54.             font-size: 1.25rem;
  55.             color:#fff !important;
  56.         }
  57.         .team-member-img {
  58.             aspect-ratio: 3/4;
  59.             background-color: #e2e8f0;
  60.             border-radius: 16px;
  61.             display: flex;
  62.             align-items: center;
  63.             justify-content: center;
  64.             color: #94a3b8;
  65.             margin-bottom: 15px;
  66.             overflow: hidden;
  67.         }
  68.         .step-number {
  69.             width: 60px;
  70.             height: 60px;
  71.             background-color: var(--primary-color) !important;
  72.             color: #fff;
  73.             border-radius: 50%;
  74.             display: flex;
  75.             align-items: center;
  76.             justify-content: center;
  77.             font-size: 1.5rem;
  78.             font-weight: 700;
  79.             margin: 0 auto 20px;
  80.             box-shadow: 0 4px 10px rgba(13, 110, 253, 0.3);
  81.         }
  82.    </style>
  83.    <section id="about">
  84.        <div class="text-center mb-5">
  85.             <h1 class="fw-black display-6 text-dark mb-3">Usługi jednorazowe</h1>
  86.             <p class="text-muted mx-auto" style="max-width: 600px;">
  87.                 Dobierz interesujące cię usługi jednorazowe
  88.             </p>
  89.         </div>
  90.         {% if data.services %}
  91.             <div class="bg-light-subtle-blue section-padding pt-3 pt-lg-5">
  92.                <div class="container">
  93.                    <div class="d-flex flex-wrap justify-content-center gap-2 mb-4">
  94.                        <span class="badge rounded-pill px-3 py-2 filter-badge active" data-id="">Wszystkie</span>
  95.                        {% for categoryData in data.categories %}
  96.                            <span class="category_container badge rounded-pill px-3 py-2 filter-badge" data-id="{{ categoryData.entity.id }}">{{ categoryData.entity.name }}</span>
  97.                        {% endfor %}
  98.                    </div>
  99.                </div>
  100.             </div>
  101.            <div class="row g-4">
  102.                {% for serviceData in data.services %}
  103.                    {% set service = serviceData.entity %}
  104.                    {% set colors = data.categories[service.category.id].colors %}
  105.                    <div class="col-md-6 col-xl-4 service-item" data-category-id="{{ service.category.id }}">
  106.                        <div class="feature-card service-card h-100 d-flex flex-column" style="border-color: {{ colors.border }}">
  107.                            <span class="badge rounded-pill align-self-start mb-3 service-group-badge" data-category-id="{{ service.category.id }}" style="background-color: {{ colors.badge_bg }}; color: {{ colors.badge_text }};"#}>{{ service.category.name }}</span>
  108.                            <h6 class="fw-bold mb-3"
  109.                                style="cursor: help;"
  110.                                data-bs-toggle="popover"
  111.                                data-bs-trigger="hover focus"
  112.                                data-bs-placement="top"
  113.                                data-bs-content="{{ service.description }}">
  114.                                {{ service.name }}
  115.                            </h6>
  116.                            <img src="{{ serviceData.image_url }}" width="100" class="online-img" />
  117.                            <p class="online-description">{{ service.description|nl2br }}</p>
  118.                            <p class="price text-primary fw-semibold mb-0">{{ serviceData.price|formatPrice }}</p>
  119.                            <div class="package-price-desc mb-4">cena netto</div>
  120.                            {{ render(controller('App\\Front\\Modules\\OnlineService\\Controller\\OnlineServiceController::addToCartButtonWidget', { 'service': service })) }}
  121.                        </div>
  122.                    </div>
  123.                {% endfor %}
  124.            </div>
  125.         {% endif %}
  126.    </section>
  127. {% endblock %}