{% extends 'base.html.twig' %}
{% block title %}Contact form - Nova-Link
{% endblock %}
{% block stylesheets %}
{{ parent() }}
<style>
.alert.alert-success {
color: #000000; /* Чёрный цвет текста */
background-color: transparent;
border-left: none;
padding-left: 0;
margin: 0 auto 1rem;
text-align: left;
width: 100%;
max-width: 500px; /* Такая же ширина, как у формы */ /* Выравнивание по левому краю формы */
}
.contact-container {
div.alert.alert-success {
width: 100%;
/* color: red; */
margin-bottom: 1rem;
text-justify: center;
}
max-width: 800px;
margin: 2rem auto;
padding: 2rem;
{
# background-color: #fff; #
}
border-radius: 10px;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
}
.contact-title {
color: black;
font-weight: 700;
margin-bottom: 1.5rem;
text-align: center;
font-size: 2rem;
}
.contact-form {
width: 100%;
max-width: 500px;
margin: 0 auto;
}
.contact-form .form-control {
width: 100%;
border: 1px solidrgb(0, 0, 0);
border-radius: 5px;
padding: 12px 15px;
font-size: 1rem;
transition: all 0.3s;
}
.contact-form .form-control:focus {
border-color: black;
box-shadow: 0 0 0 0.2rem rgba(44, 62, 80, 0.25);
}
.contact-form label {
font-weight: 500;
margin-bottom: 0.5rem;
color: black;
display: block;
}
.contact-form .btn-submit {
{
# background-color: var(--primary); #
}
border: 1px solid rgb(0, 0, 0);
{
# color: black; #
}
padding: 12px 30px;
font-weight: 600;
font-size: 1rem;
border-radius: 5px;
width: 100%;
margin-top: 1rem;
transition: all 0.3s;
cursor: pointer;
}
.contact-form .btn-submit:hover {
{
# background-color: rgb(255, 255, 255); #
}
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
textarea.form-control {
min-height: 150px;
resize: vertical;
}
.invalid-feedback {
color: #dc3545;
font-size: 0.875rem;
margin-top: 0.25rem;
}
.form-group {
margin-bottom: 1.5rem;
}
.captcha-checkbox {
margin: 10px 0;
}
.custom-subject {
display: none;
margin-top: 10px;
}
button.btn-close {
display: none;
}
</style>
{% endblock %}
{% block javascripts %}
{{ parent() }}
<script>
document.addEventListener('DOMContentLoaded', function () {
const form = document.querySelector('.contact-form form');
if (! form)
return;
const subjectSelect = form.querySelector('.subject-select');
const customSubjectGroup = form.querySelector('.custom-subject-group');
if (subjectSelect && customSubjectGroup) {
subjectSelect.addEventListener('change', function () {
customSubjectGroup.style.display = this.value === 'Other issues' ? 'block' : 'none';
});
// Инициализация при загрузке
customSubjectGroup.style.display = subjectSelect.value === 'Other issues' ? 'block' : 'none';
}
});
</script>
{% endblock %}
{% block body %}
<div class="contact-container">
<h1 class="contact-title">Contact Us</h1>
{% for flash in app.flashes('success') %}
<div class="alert alert-success alert-dismissible fade show" role="alert">
{{ flash }}
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
{% endfor %}
<div class="contact-form">
{{ form_start(form, {'attr': {'class': 'needs-validation', 'novalidate': true}}) }}
<div class="form-group">
{{ form_label(form.name, 'Your Name', {'label_attr': {'class': 'form-label'}}) }}
{{ form_widget(form.name, {
'attr': {
'class': 'form-control',
'value': app.user ? app.user.firstName ~ ' ' ~ app.user.lastName : '',
'placeholder': 'Enter your full name'
}
}) }}
{{ form_errors(form.name) }}
</div>
<div class="form-group">
{{ form_label(form.email, 'Email Address', {'label_attr': {'class': 'form-label'}}) }}
{{ form_widget(form.email, {
'attr': {
'class': 'form-control',
'value': app.user ? app.user.email : '',
'placeholder': 'Enter your email address'
}
}) }}
{{ form_errors(form.email) }}
</div>
<div class="form-group">
{{ form_label(form.subject, 'Subject', {'label_attr': {'class': 'form-label'}}) }}
{{ form_widget(form.subject, {
'attr': {
'class': 'form-control subject-select'
}
}) }}
{{ form_errors(form.subject) }}
<div class="custom-subject-group" style="display: none;">
{{ form_label(form.customSubject, 'Please specify your subject', {'label_attr': {'class': 'form-label'}}) }}
{{ form_widget(form.customSubject, {
'attr': {
'class': 'form-control',
'placeholder': 'Enter your custom subject here...'
}
}) }}
{{ form_errors(form.customSubject) }}
</div>
</div>
<div class="form-group">
{{ form_label(form.message, 'Your Message', {'label_attr': {'class': 'form-label'}}) }}
{{ form_widget(form.message, {
'attr': {
'class': 'form-control',
'placeholder': 'Type your message here...'
}
}) }}
{{ form_errors(form.message) }}
</div>
{{ form_label(form.captcha) }}
{{ form_widget(form.captcha, {'attr': {'class': 'captcha-checkbox'}}) }}
{{ form_errors(form.captcha) }}
<div class="form-group">
<button type="submit" class="btn-submit">
<i class="bi bi-send-fill"></i>
Send Message
</button>
</div>
{{ form_end(form) }}
</div>
</div>
{% endblock %}