{% extends 'base.html.twig' %}
{% block title %}Zatoka Kodu - Szkoła Programowania dla Dzieci{% endblock %}
{% block body %}
<!-- **************** MAIN CONTENT START **************** -->
<main>
<!-- =======================
Hero Section START -->
<section class="hero-section position-relative overflow-hidden py-5 py-lg-7">
<!-- Animated background elements -->
<div class="hero-bg-elements">
<div class="floating-shape shape-1"></div>
<div class="floating-shape shape-2"></div>
<div class="floating-shape shape-3"></div>
<div class="floating-shape shape-4"></div>
</div>
<div class="container position-relative">
<div class="row align-items-center g-5">
<!-- Left content START -->
<div class="col-lg-6 text-center text-lg-start">
<div class="hero-content" data-aos="fade-right">
<h1 class="hero-title mb-4">
<span class="text-gold">Zaprogramuj</span> przyszłość swojego dziecka
</h1>
<p class="hero-subtitle mb-4">
Uczymy dzieci programowania w sposób <strong>zabawny i interaktywny</strong>.
Scratch, Minecraft, Robotyka - wszystko w jednym miejscu!
<br>Dołącz do grona tysiąca zadowolonych rodziców!
</p>
<div class="hero-stats mb-4">
<div class="row g-3">
<div class="col-4">
<div class="stat-item">
<div class="stat-number">1000+</div>
<div class="stat-label">Zadowolonych dzieci</div>
</div>
</div>
<div class="col-4">
<div class="stat-item">
<div class="stat-number">70+</div>
<div class="stat-label">Szkoł partnerskich</div>
</div>
</div>
<div class="col-4">
<div class="stat-item">
<div class="stat-number">5</div>
<div class="stat-label">Lat doświadczenia</div>
</div>
</div>
</div>
</div>
<div class="hero-buttons">
<a href="#courses" class="btn btn-primary btn-lg me-3 mb-3">
<i class="fas fa-rocket me-2"></i>Zobacz kursy
</a>
<a href="https://zatokakodu.langlion.com/forms/rejestracja" class="btn btn-gold btn-lg mb-3">
<i class="fas fa-user-plus me-2"></i>Zapisz dziecko
</a>
</div>
</div>
</div>
<!-- Left content END -->
<!-- Right content START -->
<div class="col-lg-6 text-center">
<div class="hero-image" data-aos="fade-left">
<img src="{{ asset('./assets/images/element/banner-class.jpg') }}" alt="Dzieci programujące" class="img-fluid rounded-4">
<div class="floating-card">
<a href="https://zatokakodu.langlion.com/forms/rejestracja" class="text-decoration-none">
<div class="card border-0 shadow-sm">
<div class="card-body p-3">
<div class="d-flex align-items-center">
<div class="avatar-sm me-3">
<i class="fas fa-star text-warning fa-2x"></i>
</div>
<div class="text-start">
<div class="fw-bold text-primary fs-5">Zapisz swoje dziecko na zajęcia</div>
</div>
</div>
</div>
</div>
</a>
</div>
</div>
</div>
<!-- Right content END -->
</div>
</div>
</section>
<!-- =======================
Hero Section END -->
<!-- =======================
Courses Section START -->
<section id="courses" class="py-5 py-lg-7 bg-light">
<div class="container">
<div class="row justify-content-center mb-5">
<div class="col-lg-8 text-center">
<h2 class="section-title mb-3" data-aos="fade-up">
Nasze <span class="text-gold">kursy programowania</span>
</h2>
<p class="section-subtitle" data-aos="fade-up" data-aos-delay="100">
Każdy kurs jest dostosowany do wieku i umiejętności dziecka
</p>
</div>
</div>
<div class="row g-4">
<!-- Scratch Course -->
<div class="col-lg-4" data-aos="fade-up" data-aos-delay="200">
<div class="course-card card border-0 shadow-sm h-100">
<div class="card-body p-4">
<div class="course-icon mb-3">
<img src="{{ asset('./assets/images/main/scratch-logo.png') }}" alt="Scratch" class="img-fluid" style="max-height: 80px;">
</div>
<h4 class="card-title mb-3 text-center">Programowanie w Scratch</h4>
<p class="card-text mb-4">
Uczymy podstaw programowania poprzez tworzenie gier, animacji i interaktywnych historii.
Idealne dla dzieci w wieku 7-12 lat.
</p>
<ul class="course-features mb-4">
<li><i class="fas fa-check text-success me-2"></i>Wizualne programowanie blokowe</li>
<li><i class="fas fa-check text-success me-2"></i>Tworzenie własnych gier</li>
<li><i class="fas fa-check text-success me-2"></i>Rozwój kreatywności</li>
<li><i class="fas fa-check text-success me-2"></i>Logiczne myślenie</li>
</ul>
<a href="/scratch" class="btn btn-gold w-100">
<i class="fas fa-arrow-right me-2"></i>Dowiedz się więcej
</a>
</div>
</div>
</div>
<!-- Minecraft Course -->
<div class="col-lg-4" data-aos="fade-up" data-aos-delay="300">
<div class="course-card card border-0 shadow-sm h-100">
<div class="card-body p-4">
<div class="course-icon mb-3">
<img src="{{ asset('./assets/images/minecraft-logo.png') }}" alt="Minecraft" class="img-fluid" style="max-height: 80px; width: auto;">
</div>
<h4 class="card-title mb-3 text-center">Matematyka w Minecraft</h4>
<p class="card-text mb-4">
Łączymy pasję do Minecrafta z nauką matematyki.
Dzieci uczą się matematyki poprzez praktyczne zastosowania w świecie gry.
</p>
<ul class="course-features mb-4">
<li><i class="fas fa-check text-success me-2"></i>Dodawanie i odejmowanie</li>
<li><i class="fas fa-check text-success me-2"></i>Mnożenie i dzielenie</li>
<li><i class="fas fa-check text-success me-2"></i>Figury geometryczne</li>
<li><i class="fas fa-check text-success me-2"></i>Praktyczne zastosowania</li>
</ul>
<a href="/minecraft" class="btn btn-gold w-100">
<i class="fas fa-arrow-right me-2"></i>Dowiedz się więcej
</a>
</div>
</div>
</div>
<!-- Robotics Course -->
<div class="col-lg-4" data-aos="fade-up" data-aos-delay="400">
<div class="course-card card border-0 shadow-sm h-100">
<div class="card-body p-4">
<div class="course-icon mb-3">
<img src="{{ asset('./assets/images/main/milo-logo.png') }}" alt="Robotyka" class="img-fluid" style="max-height: 80px;">
</div>
<h4 class="card-title mb-3 text-center">Robotyka Lego WeDo 2.0</h4>
<p class="card-text mb-4">
Budujemy i programujemy roboty z klocków Lego.
Dzieci uczą się mechaniki, elektroniki i programowania w praktyce.
</p>
<ul class="course-features mb-4">
<li><i class="fas fa-check text-success me-2"></i>Budowanie robotów z Lego</li>
<li><i class="fas fa-check text-success me-2"></i>Programowanie ruchów</li>
<li><i class="fas fa-check text-success me-2"></i>Rozumienie mechaniki</li>
<li><i class="fas fa-check text-success me-2"></i>Rozwiązywanie problemów</li>
</ul>
<a href="/robotyka" class="btn btn-gold w-100">
<i class="fas fa-arrow-right me-2"></i>Dowiedz się więcej
</a>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- =======================
Courses Section END -->
<!-- =======================
Benefits Section START -->
<section class="py-5 py-lg-7">
<div class="container">
<div class="row justify-content-center mb-5">
<div class="col-lg-8 text-center">
<h2 class="section-title mb-3" data-aos="fade-up">
Dlaczego warto uczyć dziecko <span class="text-gold">programowania</span>?
</h2>
<p class="section-subtitle" data-aos="fade-up" data-aos-delay="100">
Programowanie to nie tylko umiejętność techniczna, ale przede wszystkim rozwój kluczowych kompetencji
</p>
</div>
</div>
<div class="row g-4">
<div class="col-md-6 col-lg-3" data-aos="fade-up" data-aos-delay="200">
<div class="benefit-card text-center">
<div class="benefit-icon mb-3">
<i class="fas fa-brain fa-3x text-gold"></i>
</div>
<h5 class="benefit-title mb-3">Logiczne myślenie</h5>
<p class="benefit-text">
Programowanie uczy rozwiązywania problemów krok po kroku i analitycznego myślenia
</p>
</div>
</div>
<div class="col-md-6 col-lg-3" data-aos="fade-up" data-aos-delay="300">
<div class="benefit-card text-center">
<div class="benefit-icon mb-3">
<i class="fas fa-lightbulb fa-3x text-warning"></i>
</div>
<h5 class="benefit-title mb-3">Kreatywność</h5>
<p class="benefit-text">
Dzieci tworzą własne projekty, rozwijając wyobraźnię i innowacyjne podejście
</p>
</div>
</div>
<div class="col-md-6 col-lg-3" data-aos="fade-up" data-aos-delay="400">
<div class="benefit-card text-center">
<div class="benefit-icon mb-3">
<i class="fas fa-users fa-3x text-success"></i>
</div>
<h5 class="benefit-title mb-3">Współpraca</h5>
<p class="benefit-text">
Praca w grupach uczy komunikacji, dzielenia się pomysłami i wspólnego rozwiązywania problemów
</p>
</div>
</div>
<div class="col-md-6 col-lg-3" data-aos="fade-up" data-aos-delay="500">
<div class="benefit-card text-center">
<div class="benefit-icon mb-3">
<i class="fas fa-rocket fa-3x text-danger"></i>
</div>
<h5 class="benefit-title mb-3">Przyszłość</h5>
<p class="benefit-text">
Umiejętności cyfrowe to klucz do sukcesu w przyszłym świecie technologii
</p>
</div>
</div>
</div>
</div>
</section>
<!-- =======================
Benefits Section END -->
<!-- =======================
Najważniejsze informacje START -->
<section class="py-5 py-lg-7 bg-light">
<div class="container">
<div class="row justify-content-center mb-5">
<div class="col-lg-8 text-center">
<h2 class="section-title mb-3" data-aos="fade-up">
Najważniejsze <span class="text-gold">informacje</span>
</h2>
<p class="lead text-muted" data-aos="fade-up" data-aos-delay="100">
Kluczowe szczegóły dotyczące organizacji zajęć
</p>
</div>
</div>
<div class="row g-4 justify-content-center">
<!-- Zajęcia w szkole -->
<div class="col-sm-6 col-lg-4 col-xl-3" data-aos="fade-up" data-aos-delay="200">
<div class="info-card card border-0 shadow-lg h-100 position-relative overflow-hidden">
<div class="card-header bg-gradient-primary text-white p-4 text-center border-0">
<i class="bi bi-building fs-1 mb-3 d-block"></i>
<h5 class="mb-0 fw-bold">Zajęcia w szkole</h5>
</div>
<div class="card-body p-4 text-center">
<p class="mb-0 fw-medium">Zajęcia odbywają się w szkole Twojego dziecka</p>
</div>
</div>
</div>
<!-- Odbieramy ze świetlicy -->
<div class="col-sm-6 col-lg-4 col-xl-3" data-aos="fade-up" data-aos-delay="300">
<div class="info-card card border-0 shadow-lg h-100 position-relative overflow-hidden">
<div class="card-header bg-gradient-success text-white p-4 text-center border-0">
<i class="bi bi-people fs-1 mb-3 d-block"></i>
<h5 class="mb-0 fw-bold">Odbieramy dzieci</h5>
</div>
<div class="card-body p-4 text-center">
<p class="mb-0 fw-medium">Odbieramy dzieci bezpośrednio ze świetlicy</p>
</div>
</div>
</div>
<!-- 30 zajęć -->
<div class="col-sm-6 col-lg-4 col-xl-3" data-aos="fade-up" data-aos-delay="400">
<div class="info-card card border-0 shadow-lg h-100 position-relative overflow-hidden">
<div class="card-header bg-gradient-primary text-white p-4 text-center border-0">
<i class="bi bi-calendar-check fs-1 mb-3 d-block"></i>
<h5 class="mb-0 fw-bold">30 zajęć rocznie</h5>
</div>
<div class="card-body p-4 text-center">
<p class="mb-0 fw-medium">30 zajęć w trakcie roku szkolnego</p>
</div>
</div>
</div>
<!-- Częstotliwość -->
<div class="col-sm-6 col-lg-4 col-xl-3" data-aos="fade-up" data-aos-delay="500">
<div class="info-card card border-0 shadow-lg h-100 position-relative overflow-hidden">
<div class="card-header bg-gradient-success text-white p-4 text-center border-0">
<i class="bi bi-clock fs-1 mb-3 d-block"></i>
<h5 class="mb-0 fw-bold">Raz w tygodniu</h5>
</div>
<div class="card-body p-4 text-center">
<p class="mb-0 fw-medium">Raz w tygodniu po 60 minut</p>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- =======================
Najważniejsze informacje END -->
<!-- =======================
FAQ Section START -->
<section class="py-5 py-lg-7">
<div class="container">
<div class="row justify-content-center mb-5">
<div class="col-lg-8 text-center">
<h2 class="section-title mb-3" data-aos="fade-up">
Często zadawane <span class="text-gold">pytania</span>
</h2>
</div>
</div>
<div class="row justify-content-center">
<div class="col-lg-8">
<div class="accordion" id="faqAccordion">
<div class="accordion-item border-0 shadow-sm mb-3" data-aos="fade-up" data-aos-delay="200">
<h2 class="accordion-header">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#faq1">
W jakim wieku dziecko może zacząć naukę programowania?
</button>
</h2>
<div id="faq1" class="accordion-collapse collapse show" data-bs-parent="#faqAccordion">
<div class="accordion-body">
Zajęcia są dostosowane do różnych grup wiekowych. Scratch jest idealny dla dzieci od 7 lat,
robotyka od 8 lat, a Minecraft od 9 lat. Każdy kurs ma odpowiedni poziom trudności.
</div>
</div>
</div>
<div class="accordion-item border-0 shadow-sm mb-3" data-aos="fade-up" data-aos-delay="300">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq2">
Czy dziecko potrzebuje własnego komputera?
</button>
</h2>
<div id="faq2" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
<div class="accordion-body">
Nie, wszystkie potrzebne urządzenia i materiały są dostępne na zajęciach.
Oferujemy nowoczesne komputery z zainstalowanym oprogramowaniem, tablety do robotyki
oraz zestawy Lego WeDo 2.0. Dzieci pracują w małych grupach, więc każdy ma dostęp
do własnego stanowiska pracy.
</div>
</div>
</div>
<div class="accordion-item border-0 shadow-sm mb-3" data-aos="fade-up" data-aos-delay="400">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq3">
Jak długo trwają zajęcia?
</button>
</h2>
<div id="faq3" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
<div class="accordion-body">
Standardowe zajęcia trwają 60 minut. To optymalny czas, aby dziecko mogło się skupić
i efektywnie pracować, jednocześnie nie męcząc się zbytnio.
</div>
</div>
</div>
<div class="accordion-item border-0 shadow-sm mb-3" data-aos="fade-up" data-aos-delay="500">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq4">
Czy oferujecie darmową lekcję próbną?
</button>
</h2>
<div id="faq4" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
<div class="accordion-body">
Nie oferujemy darmowej lekcji próbnej, ale mamy gwarancję satysfakcji!
Jeśli po pierwszych zajęciach Twojemu dziecku się nie spodoba, nie musisz nic płacić.
Jesteśmy pewni jakości naszych zajęć.
</div>
</div>
</div>
<div class="accordion-item border-0 shadow-sm mb-3" data-aos="fade-up" data-aos-delay="600">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq5">
Co to jest gwarancja satysfakcji?
</button>
</h2>
<div id="faq5" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
<div class="accordion-body">
Gwarancja satysfakcji oznacza, że jeśli po pierwszych zajęciach Twoje dziecko nie będzie zadowolone,
zwrócimy Ci pełną kwotę lub nie będziesz musiał płacić. Jesteśmy pewni, że nasze zajęcia
spodobają się każdemu dziecku!
</div>
</div>
</div>
<div class="accordion-item border-0 shadow-sm mb-3" data-aos="fade-up" data-aos-delay="700">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq6">
Ile dzieci jest w grupie?
</button>
</h2>
<div id="faq6" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
<div class="accordion-body">
Maksymalnie 8 dzieci w grupie. To pozwala nam na indywidualne podejście do każdego dziecka
i zapewnia, że każdy uczestnik otrzyma odpowiednią uwagę i wsparcie.
</div>
</div>
</div>
<div class="accordion-item border-0 shadow-sm mb-3" data-aos="fade-up" data-aos-delay="800">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq7">
Czy dziecko może dołączyć w trakcie roku szkolnego?
</button>
</h2>
<div id="faq7" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
<div class="accordion-body">
Tak, dziecko może dołączyć w dowolnym momencie. Nasze kursy są zaprojektowane tak,
aby nowi uczestnicy mogli łatwo nadrobić materiał i dołączyć do grupy.
</div>
</div>
</div>
<div class="accordion-item border-0 shadow-sm mb-3" data-aos="fade-up" data-aos-delay="900">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq8">
Co jeśli dziecko opuści zajęcia?
</button>
</h2>
<div id="faq8" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
<div class="accordion-body">
Należy pamiętać, że nie ma zwrotu kosztów za opuszczone zajęcia, ponieważ zajęcia się odbyły
i ponieśliśmy koszty związane z ich organizacją. Zajęcia są prowadzone w grupach, więc
nieobecność jednego dziecka nie wpływa na przebieg lekcji. Jeśli dziecko opuści zajęcia,
może nadrobić materiał na kolejnych zajęciach lub skorzystać z dodatkowych konsultacji
z nauczycielem w razie potrzeby.
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- =======================
FAQ Section END -->
<!-- =======================
CTA Section START -->
<section class="py-5 py-lg-7 bg-primary text-white">
<div class="container">
<div class="row justify-content-center text-center">
<div class="col-lg-8">
<h2 class="mb-4" data-aos="fade-up">
Gotowy, aby dać swojemu dziecku <span class="text-warning">lepszy start</span> w przyszłość?
</h2>
<p class="lead mb-4" data-aos="fade-up" data-aos-delay="100">
Dołącz do grona zadowolonych rodziców i pozwól swojemu dziecku odkryć świat programowania!
</p>
<div class="cta-buttons" data-aos="fade-up" data-aos-delay="200">
<a href="https://zatokakodu.langlion.com/forms/rejestracja" class="btn btn-primary btn-lg me-3 mb-3">
<i class="fas fa-rocket me-2"></i>Zapisz dziecko teraz
</a>
<a href="/kontakt" class="btn btn-gold btn-lg mb-3">
<i class="fas fa-phone me-2"></i>Zadzwoń do nas
</a>
</div>
</div>
</div>
</div>
</section>
<!-- =======================
CTA Section END -->
<!-- =======================
Schools Section START -->
<section class="py-5 py-lg-7 bg-light">
<div class="container">
<div class="row justify-content-center">
<div class="col-12 col-lg-10">
<div class="card shadow rounded-4 border-0">
<!-- Card header -->
<div class="card-header bg-white text-center py-4 border-bottom border-light">
<h2 class="mb-0 fw-semibold text-dark">Szkoły, w których prowadzimy zajęcia</h2>
</div>
<!-- Card body -->
<div class="card-body p-4 p-md-5">
<!-- Filters -->
<div class="row g-3 align-items-center mb-4">
<!-- City input -->
<div class="col-md-8">
<form id="filter-form" class="rounded position-relative">
<input id="city-input" class="form-control pe-5 bg-transparent" type="search" name="city" placeholder="Podaj Miasto" aria-label="Podaj Miasto" style="color:#000;">
<button type="submit" class="bg-transparent p-2 position-absolute top-50 end-0 translate-middle-y border-0 text-primary-hover text-reset">
<i class="fas fa-search fs-6"></i>
</button>
</form>
</div>
<!-- Course select -->
<div class="col-md-4">
<form id="course-form">
<select id="course-select" class="form-select js-choice border-1 z-index-9 bg-transparent" name="course" aria-label=".form-select-sm" style="color:#000">
<option value="">Wybierz Kurs</option>
<option value="Robotyka">Robotyka</option>
<option value="Programowanie">Programowanie</option>
</select>
</form>
</div>
</div>
<!-- Group list -->
<div id="groups-container" class="table-responsive">
{% include 'lang_lion/groups.html.twig' %}
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- =======================
Schools Section END -->
<!-- =======================
Newsletter Section START -->
<section class="py-5 py-lg-7">
<div class="container">
<div class="row justify-content-center">
<div class="col-11 col-md-10 mx-auto">
<div class="bg-warning rounded-3 shadow p-3 p-sm-4 position-relative overflow-hidden">
<!-- SVG decoration -->
<figure class="position-absolute top-100 start-100 translate-middle mt-n6 ms-n5">
<svg width="211px" height="211px">
<path class="fill-white opacity-4" d="M210.030,105.011 C210.030,163.014 163.010,210.029 105.012,210.029 C47.013,210.029 -0.005,163.014 -0.005,105.011 C-0.005,47.015 47.013,-0.004 105.012,-0.004 C163.010,-0.004 210.030,47.015 210.030,105.011 Z"></path>
</svg>
</figure>
<!-- SVG decoration -->
<figure class="position-absolute top-100 start-0 translate-middle mt-n6 ms-5">
<svg width="141px" height="141px">
<path class="fill-white opacity-4" d="M140.520,70.258 C140.520,109.064 109.062,140.519 70.258,140.519 C31.454,140.519 -0.004,109.064 -0.004,70.258 C-0.004,31.455 31.454,-0.003 70.258,-0.003 C109.062,-0.003 140.520,31.455 140.520,70.258 Z"></path>
</svg>
</figure>
<!-- SVG decoration -->
<figure class="position-absolute top-0 start-50 mt-4 ms-n9">
<svg width="41px" height="41px">
<path class="fill-white opacity-4" d="M40.531,20.265 C40.531,31.458 31.457,40.531 20.265,40.531 C9.072,40.531 -0.001,31.458 -0.001,20.265 C-0.001,9.073 9.072,-0.001 20.265,-0.001 C31.457,-0.001 40.531,9.073 40.531,20.265 Z"></path>
</svg>
</figure>
<div class="row">
<div class="col-md-8 mx-auto text-center py-5 position-relative">
<!-- Title -->
<h2 id="newsletter_title">Zapisz się do Newslettera i bądź na bieżąco z promocjami</h2>
<!-- Form -->
<form class="row align-items-center justify-content-center mt-3">
<div class="col-lg-8" id="newsletter_input">
<div class="bg-body shadow rounded-pill p-2">
<div class="input-group">
<input class="form-control border-0 me-1" id="newsletter_email" type="email" placeholder="Wprowadź swój adres email">
<button type="button" id="newsletter_button" class="btn btn-blue mb-0 rounded-pill">Zapisz!</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- =======================
Newsletter Section END -->
</main>
{% endblock %}
{% block js %}
<script src="{{ asset('./assets/js/jquery-3.6.4.min.js') }}"></script>
<script>
function isValidEmail() {
var input = document.getElementById('newsletter_email')
var pattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
return pattern.test(input.value);
}
function sendMessage() {
const data = {
email: $('#newsletter_email').val(),
type: 'newsletter'
};
$.ajax({
url: '/message',
method: 'POST',
data: data,
success: function(response) {
document.getElementById('newsletter_title').innerHTML = "Dziękujemy!</br>Twój adres mailowy został dodany do Newslettera";
document.getElementById('newsletter_input').style.setProperty('display', 'none');
},
error: function(jqXHR, textStatus, errorThrown) {
console.error('Error sending message:', errorThrown);
}
});
}
document.getElementById('newsletter_button').addEventListener('click', function() {
var alert = document.createElement('div');
if(isValidEmail()) {
sendMessage();
} else {
alert.className = 'alert text-center alert-danger';
alert.innerHTML = '<h4 class="alert-heading">Podaj prawidłowy adres email</h4>';
}
alert.style.position = 'fixed';
alert.style.left = '50%';
alert.style.top = '30%';
alert.style.transform = 'translate(-50%, -50%)';
alert.style.borderRadius = "10px";
alert.style.zIndex = '10';
document.body.appendChild(alert);
setTimeout(function() {
document.body.removeChild(alert);
}, 2000);
});
document.addEventListener('DOMContentLoaded', function() {
const filterForm = document.getElementById('filter-form');
const courseForm = document.getElementById('course-form');
const groupsContainer = document.getElementById('groups-container');
// Funkcja do wysyłania zapytania AJAX
function sendAjaxRequest() {
const city = document.getElementById('city-input').value;
const course = document.getElementById('course-select').value;
const xhr = new XMLHttpRequest();
xhr.open('GET', `{{ path('get_groups') }}?city=${city}&course=${course}`, true);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.onload = function() {
if (xhr.status >= 200 && xhr.status < 400) {
// Aktualizuj zawartość wyników
groupsContainer.innerHTML = xhr.responseText;
} else {
console.error('Error:', xhr.statusText);
}
};
xhr.onerror = function() {
console.error('Request failed');
};
xhr.send();
}
// Obsługa wysłania formularza filtrowania
filterForm.addEventListener('submit', function(event) {
event.preventDefault();
sendAjaxRequest();
});
// Obsługa zmiany kursu
courseForm.addEventListener('change', function(event) {
event.preventDefault();
sendAjaxRequest();
});
});
</script>
{{ parent() }}
{% endblock %}