{% extends 'account/grid.html.twig' %}
{% block name_page %}account-profile-form{% endblock %}
{% block title %}Добавление анкеты - Личный Кабинет{% endblock %}
{# Обработка списка услуг. Получаем список переменных. Название группы и кол-во элементов внутри
array:6 [▼
0 => array:2 [▼
0 => "Секс"
1 => 14
]
1 => array:2 [▶]
2 => array:2 [▶]
3 => array:2 [▶]
4 => array:2 [▶]
5 => array:2 [▶]
]
#}
{% set photo_media_upload_url = oneup_uploader_endpoint('profile_photo') %}
{% set selfie_media_upload_url = oneup_uploader_endpoint('profile_selfie') %}
{% set approval_media_upload_url = oneup_uploader_endpoint(feature('approval_by_video') and feature('postprocess_video') ? 'tmp_media' : 'profile_media_approval') %}
{% set video_media_upload_url = oneup_uploader_endpoint('process_queue') %}
{% if approval_media_upload_domain %}
{% set photo_media_upload_url = 'https://' ~ approval_media_upload_domain ~ photo_media_upload_url %}
{% set selfie_media_upload_url = 'https://' ~ approval_media_upload_domain ~ selfie_media_upload_url %}
{% set approval_media_upload_url = 'https://' ~ approval_media_upload_domain ~ approval_media_upload_url %}
{% set video_media_upload_url = 'https://' ~ approval_media_upload_domain ~ video_media_upload_url %}
{% endif %}
{% set services_array = [] %}
{% set count_in_group = 0 %}
{% set current_group = 0 %}
{% set title_group = 0 %}
{% set services = services_list() %}
{% for provided_service in form.provided_services %}
{% set service = services[provided_service.service.vars.value] %}
{% if current_group != service.group %}
{% if not loop.first %}
{% set services_array = services_array|merge([
[title_group,count_in_group]
]) %}
{% endif %}
{% set current_group = service.group %}
{% set title_group = current_group|service_group|trans({}, 'service_groups') %} {#Заголовок группы#}
{% set count_in_group = 0 %}
{% endif %}
{% set count_in_group = count_in_group + 1 %}
{% endfor %}
{% set services_array = services_array|merge([
[title_group,count_in_group]
]) %}
{%- macro _service_block(provided_service, service) -%}
<div class="checkbox-form d-flex" data-id="{{ provided_service.vars.name }}">
<div class="checkbox-block d-flex{% if not provided_service.enabled.vars.checked %} not-selected{% endif %}">
<div class="conditions d-flex">
{{ form_widget(provided_service.condition[0]) }}
<label for="{{provided_service.condition[0].vars.id}}" title="Включено" class="d-flex include">
<svg class="icon">
<use xlink:href="{{ asset('assets_domain/images/icons/account/svg-library.svg', 'nodomainConfig') }}#icon-condition-include"></use>
</svg>
</label>
{{ form_widget(provided_service.condition[1]) }}
<label for="{{provided_service.condition[1].vars.id}}" title="По симпатии" class="d-flex sympathy">
<svg class="icon">
<use xlink:href="{{ asset('assets_domain/images/icons/account/svg-library.svg', 'nodomainConfig') }}#icon-condition-sympathy"></use>
</svg>
</label>
{{ form_widget(provided_service.condition[2]) }}
<label for="{{provided_service.condition[2].vars.id}}" title="За дополнительную плату" class="d-flex extra">
<svg class="icon">
<use xlink:href="{{ asset('assets_domain/images/icons/account/svg-library.svg', 'nodomainConfig') }}#icon-condition-with-price"></use>
</svg>
</label>
</div>
<div class="main-checkbox d-flex">
{{ form_widget(provided_service.enabled) }}
<label for="{{ provided_service.vars.id }}_enabled" class="">{{ service.name|trans({}, 'left_menu') }}</label>
</div>
<div class="price d-flex">
<div class="input__sub">
{{ form_widget(provided_service.extra_charge, {'attr': {
'class': 'basic-view extra-price input__sub__input',
maxlength: '6'
}}) }}
<span class="input__sub__text">₽</span>
</div>
</div>
</div>
<div class="services__comment services__comment--empty d-none" data-services-comment>
{{ form_widget(provided_service.comment, {'attr': {
'class': 'services__comment__textarea',
'placeholder': 'Дополнительная информация по услуге (необязательно)',
'data-services-comment-textarea':'',
'maxlength': '80'
}}) }}
<div class="services__comment__count" data-services-comment-count>80</div>
</div>
{% set error_message = form_errors(provided_service.extra_charge) %}
<p class="field-error services-error{% if error_message|length > 0 %} show{% endif %}" id="{{ provided_service.extra_charge.vars.id }}_error">{{ error_message }}</p>
<div>{{ form_widget(provided_service.service) }}</div>
</div>
{%- endmacro -%}
{# {% form_theme form _self %}
{% set city = app.request.attributes.get('city', default_city()) %}
{% block _stations_widget %}
{% for choice in form.vars.choices %}
<div class="fake-checkbox-label" data-city-id="{{ choice.data.city.id }}">
<label class="checkbox" for="check{{ loop.index }}"></label>
<input class="input-for-valid" name="{{ form.vars.full_name }}" type="checkbox" id="check{{ loop.index }}" value="{{ choice.value }}" {% if choice is selectedchoice(value) %}checked{% endif %}>
<label for="check{{ loop.index }}">{{ choice.label }}</label>
</div>
{% endfor %}
{% endblock %} #}
{# переменная отвечает за отметку редактирование это или добавление #}
{% set editCheck = form.vars.value ? true : false %}
{% block specialPageClass %} girl-form{% endblock %}
{% block mainContainer %}
<ul class="breadcrumbs" vocab="http://schema.org/" typeof="BreadcrumbList">
<li class="" property="itemListElement" typeof="ListItem">
<a href="{{ path('account') }}" property="item" typeof="WebPage">Личный кабинет</a>
<meta property="position" content="1">
</li>
<li class="last-crumb"><span>{% if editCheck %}Редактирование анкеты{% else %}Добавить новую анкету{% endif %}</span></li>
</ul>
<h1 class="border-line" role="heading">{% if editCheck %}Редактирование анкеты{% else %}Новая анкета{% endif %}</h1>
<div class="girl-form"
{# data-masseur-id="{{ form.is_masseur.vars.id }}"#}
{#data-masseur-exclude-service-groups="{{ form.masseur_exclude_service_groups.vars.value }}"#}>
{{ form_start(form, {'attr': {
'novalidate': 'novalidate',
'class': 'profile-form',
'data-edit': editCheck ? 'true' : 'false'
}}) }}
{% if form_errors(form) %}
<div class="field-error form-error is-flex level">
<i><img src="{{ asset('assets/images/icons/alert.svg','basicConfig') }}"></i>
<p>{{ form_errors(form) }}</p>
</div>
{% endif %}
{% include 'account/flashes.html.twig' %}
{# Главное фото анкеты + Основная информация + Основные параметры + Расценки + О себе #}
<div class="main-block">
<div class="block avatar">
<h2 class="border-line">Главное фото анкеты</h2>
{% set error_message = form_errors(form.avatar) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}" id="{{form.avatar.vars.id }}_error">{{ error_message }}</p>
<div class="photo-data" style="display:none"></div>
<div class="photo">
{% if form.avatar.vars.value %}
<div class="preview">
<img src="{{ responsive_asset(form.avatar.vars.value, 'profile_media_avatar', "357x500", "jpg") }}" id="avatar_preview">
</div>
{% else %}
<div class="empty-image">
<svg class="icon mr-1">
<use xlink:href="{{ asset('assets_domain/images/icons/account/svg-library.svg', 'nodomainConfig') }}#icon-empty-girl"></use>
</svg>
</div>
<div class="preview invisible">
<img data-src="{{ responsive_asset(form.avatar.vars.value, 'profile_media_avatar', "357x500", "jpg") }}" id="avatar_preview">
</div>
{% endif %}
</div>
<div class="upload-photo">
<p>Рекомендованный размер: 500х700px.</p>
<div class="button">
{{ form_widget(form.avatar) }}
<input type="file"
id="set_avatar"
style="position:absolute;left:-999999px"
accept="image/jpg,image/jpeg"
data-url="{{ oneup_uploader_endpoint('profile_media_avatar') }}"
data-id="{{ form.avatar.vars.id }}"
data-original-path="{{ responsive_media_base_url }}"
data-type="avatar">
<label class="btn btn-secondary d-flex" for="set_avatar">
<svg class="icon mr-2">
<use xlink:href="{{ asset('assets_domain/images/icons/account/svg-library.svg', 'nodomainConfig') }}#icon-profile"></use>
</svg>
<span>Загрузить аватар</span>
</label>
</div>
</div>
</div>
<div class="block main-information">
<h2 class="border-line">Основная информация</h2>
<div class="field">
<div class="wrap d-flex">
<label class="name" for="{{ form.name.vars.id }}">Имя:</label>
{{ form_widget(form.name, {'attr': {
'class': 'basic-view',
'maxlength': '30',
'placeholder': 'Введите имя'
}}) }}
</div>
{% set error_message = form_errors(form.name) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}" id="{{form.name.vars.id }}_error">{{ error_message }}</p>
</div>
{% if form.city is defined %}
<div class="field">
<div class="wrap d-flex">
<label class="name" for="{{ form.name.vars.id }}">Город:</label>
{% if editCheck %}
{{ form_widget(form.city, {'attr': {
'class': 'basic-view disabled',
"disabled": "disabled"
}}) }}
<input type="hidden" name="{{form.city.vars.name}}" value="{{form.city.vars.value}}">
{% else %}
<div class="info selector">
<div class="selector-block">
<button class=""
type="button"
data-toggle="selector" data-noempty="true"></button>
<div class="tags"></div>
</div>
<div class="form-data">
{{ form_widget(form.city) }}
</div>
</div>
{% endif %}
</div>
{% set error_message = form_errors(form.city) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}" id="{{form.city.vars.id }}_error">{{ error_message }}</p>
</div>
{% endif %}
<div class="field">
<div class="wrap d-flex phone-block">
<label class="name" for="phone_number">Телефон:</label>
{{ form_widget(form.phone_number, {'attr': {
'class': 'basic-view',
'maxlength': '20',
'minlength': '11',
'placeholder': '+7 (___) ___ __ __'
}}) }}
<div class="additional d-flex">
<div class="checkbox-form">
{{ form_widget(form.messengers.telegram) }}
<label for="messengers_telegram" class="level">Telegram</label>
</div>
<div class="checkbox-form">
{{ form_widget(form.messengers.whatsapp) }}
<label for="messengers_whatsapp" class="level">WhatsApp</label>
</div>
</div>
<div class="messengers__tg{{ form.messengers.telegram.vars.checked ? ' show' : '' }}" id="messengers-telegram-root">
<label for="messengers_telegram_username">Юзернейм Телеграм:</label>
<div class="messengers__tg-wrap">
<span class="messengers__tg-pre">@</span>
{{ form_widget(form.messengers.telegram_username, {'attr': {
'class': 'messengers__tg-input basic-view',
'minlength': '5',
'maxlength': '32',
'placeholder': '',
'pattern': '[A-Za-z0-9_]{5,32}'
}}) }}
</div>
{% set error_message = form_errors(form.messengers.telegram_username) %}
<p class="field-error for-messengers{% if error_message|length > 0 %} show{% endif %}" id="messengers_error">{{ error_message }}</p>
</div>
</div>
{% set error_message = form_errors(form.phone_number) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}" id="{{form.phone_number.vars.id }}_error">{{ error_message }}</p>
</div>
<div class="field time-to-call">
<label class="name">Время для звонка:</label>
<div class="wrap d-flex">
<div class="invisible">
<input type="radio" name="time-to-call" id="time-all">
<label for="time-all" class="level">Круглосуточно</label>
</div>
<div class="wrap {% if form_errors(form.phone_call_restrictions.time_from) %} have-error{% endif %}">
<div class="radiobox-form invisible">
<input type="radio" name="time-to-call" id="time-sep">
<label for="time-sep" class="">В указанный промежуток времени:</label>
{% set error_message = form_errors(form.phone_call_restrictions.time_from) %}
<p class="field-error for-time{% if error_message|length > 0 %} show{% endif %}" id="time-sep_error">{{ error_message }}</p>
</div>
<div class="time-to-call-cell d-flex">
<span>с</span>
<input type="number" class="basic-view"
id="{{form.phone_call_restrictions.time_from.vars.id}}"
name="{{form.phone_call_restrictions.time_from.vars.full_name}}"
placeholder="0"
min="0"
max="24"
{% if editCheck %}value="{{form.phone_call_restrictions.time_from.vars.value}}"{% endif %}>
<span>до</span>
<input type="number"
class="basic-view"
id="{{form.phone_call_restrictions.time_to.vars.id}}"
name="{{form.phone_call_restrictions.time_to.vars.full_name}}"
placeholder="24"
min="0"
max="24"
{% if editCheck %}value="{{form.phone_call_restrictions.time_to.vars.value}}"{% endif %}>
</div>
<div class="time-to-call-cell-hide invisible">
{{ form_widget(form.phone_call_restrictions.time_from) }}
{{ form_widget(form.phone_call_restrictions.time_to) }}
</div>
</div>
</div>
</div>
<div class="field answer-only">
<div class="wrap d-flex">
<label class="name">Отвечаю на:</label>
<div class="additional d-flex">
{% for i in form.phone_call_restrictions.answering_to %}
<div class="checkbox-form">
{{ form_widget(i) }}
<label for="{{ i.vars.id }}" class="">{{ i.vars.label|trans({}, 'phone_call_restrictions') }}</label>
</div>
{% endfor %}
</div>
</div>
</div>
</div>
<div class="block main-parameters">
<h2 class="border-line">Основные параметры</h2>
<div class="input-group">
<div class="field">
<label>Возраст:</label>
{{ form_widget(form.person_parameters.age, {'attr': {
'class': 'basic-view',
'min': '18',
'max': '100',
'placeholder': 'лет'
}}) }}
{% set error_message = form_errors(form.person_parameters.age) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}" id="{{form.person_parameters.age.vars.id }}_error">{{ error_message }}</p>
</div>
<div class="field">
<label>Вес:</label>
{{ form_widget(form.person_parameters.weight, {'attr': {
'class': 'basic-view',
'placeholder': 'кг',
'min': '25',
'max': '250'
}}) }}
{% set error_message = form_errors(form.person_parameters.weight) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}" id="{{form.person_parameters.weight.vars.id }}_error">{{ form_errors(form.person_parameters.weight) }}</p>
</div>
<div class="field">
<label>Одежда:</label>
{{ form_widget(form.person_parameters.cloth_size, {'attr': {
'class': 'basic-view',
'placeholder': 'Размер',
'min': '38',
'max': '80'
}}) }}
{% set error_message = form_errors(form.person_parameters.cloth_size) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}" id="{{form.person_parameters.cloth_size.vars.id }}_error">{{ error_message }}</p>
</div>
<div class="field">
<label>Рост:</label>
{{ form_widget(form.person_parameters.height, {'attr': {
'class': 'basic-view',
'placeholder': 'см',
'min': '120',
'max': '220'
}}) }}
{% set error_message = form_errors(form.person_parameters.height) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}" id="{{form.person_parameters.height.vars.id }}_error">{{ error_message }}</p>
</div>
<div class="field">
<label>Грудь:</label>
{{ form_widget(form.person_parameters.breast_size, {'attr': {
'class': 'basic-view',
'placeholder': 'Размер',
'min': '1',
'max': '12'
}}) }}
{% set error_message = form_errors(form.person_parameters.breast_size) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}" id="{{form.person_parameters.breast_size.vars.id }}_error">{{ error_message }}</p>
</div>
<div class="field">
<label>Обувь:</label>
{{ form_widget(form.person_parameters.shoes_size, {'attr': {
'class': 'basic-view',
'placeholder': 'Размер',
'min': '33',
'max': '48'
}}) }}
{% set error_message = form_errors(form.person_parameters.shoes_size) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}" id="{{form.person_parameters.shoes_size.vars.id }}_error">{{ error_message }}</p>
</div>
</div>
<div class="checkboxes">
<div class="field d-flex">
<div class="additional d-flex">
<div class="checkbox-form">
{{ form_widget(form.person_parameters.has_tattoo, {'attr': {}}) }}
<label for="person_parameters_has_tattoo" class="">Тату</label>
</div>
<div class="checkbox-form">
{{ form_widget(form.person_parameters.has_piercing, {'attr': {}}) }}
<label for="person_parameters_has_piercing" class="">Пирсинг</label>
</div>
</div>
</div>
</div>
<div class="dropdown-elements">
<div class="field">
<div class="wrap is-flex level">
<label class="name">Национальность:</label>
<div class="info selector">
<div class="selector-block">
<button class=""
type="button"
data-toggle="selector" data-noempty="true"></button>
<div class="tags"></div>
</div>
<div class="form-data">
{{ form_widget(form.person_parameters.nationality, {'attr': {
'class': 'basic-view',
}}) }}
</div>
</div>
</div>
{% set error_message = form_errors(form.person_parameters.nationality) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}">{{ error_message }}</p>
</div>
<div class="field">
<div class="wrap is-flex level">
<label class="name">Телосложение:</label>
<div class="info selector">
<div class="selector-block">
<button class=""
type="button"
data-toggle="selector" data-noempty="true"></button>
<div class="tags"></div>
</div>
<div class="form-data">
{{ form_widget(form.person_parameters.body_type, {'attr': {
'class': 'basic-view',
}}) }}
</div>
</div>
</div>
{% set error_message = form_errors(form.person_parameters.body_type) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}">{{ error_message }}</p>
</div>
<div class="field">
<div class="wrap is-flex level">
<label class="name">Цвет волос:</label>
<div class="info selector">
<div class="selector-block">
<button class=""
type="button"
data-toggle="selector" data-noempty="true"></button>
<div class="tags"></div>
</div>
<div class="form-data">
{{ form_widget(form.person_parameters.hair_color, {'attr': {
'class': 'basic-view',
}}) }}
</div>
</div>
</div>
{% set error_message = form_errors(form.person_parameters.hair_color) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}">{{ error_message }}</p>
</div>
<div class="field">
<div class="wrap is-flex level">
<label class="name">Интимная стрижка:</label>
<div class="info selector">
<div class="selector-block">
<button class=""
type="button"
data-toggle="selector" data-noempty="true"></button>
<div class="tags"></div>
</div>
<div class="form-data">
{{ form_widget(form.person_parameters.private_haircut, {'attr': {
'class': 'basic-view',
}}) }}
</div>
</div>
</div>
{% set error_message = form_errors(form.person_parameters.private_haircut) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}">{{ error_message }}</p>
</div>
</div>
</div>
<div class="block prices">
<h2 class="border-line">Расценки</h2>
<div class="wrap d-flex">
<div class="apartments">
<h3>
<svg class="icon mr-1">
<use xlink:href="{{ asset('assets_domain/images/icons/account/svg-library.svg', 'nodomainConfig') }}#icon-house"></use>
</svg>
<span>Апартаменты</span>
</h3>
<div class="input-group d-flex">
<div class="field">
<label>1 час:</label>
{{ form_widget(form.apartments_pricing.one_hour_price, {'attr': {
'class': 'basic-view',
'min': '1',
maxlength: '6'
}}) }}
{% set error_message = form_errors(form.apartments_pricing.one_hour_price) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}" id="{{form.apartments_pricing.one_hour_price.vars.id }}_error">{{ error_message }}</p>
</div>
<div class="field">
<label>2 часа:</label>
{{ form_widget(form.apartments_pricing.two_hours_price, {'attr': {
'class': 'basic-view',
'min': '1',
maxlength: '6'
}}) }}
{% set error_message = form_errors(form.apartments_pricing.two_hours_price) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}" id="{{form.apartments_pricing.two_hours_price.vars.id }}_error">{{ error_message }}</p>
</div>
<div class="field">
<label>Ночь:</label>
{{ form_widget(form.apartments_pricing.night_price, {'attr': {
'class': 'basic-view',
'min': '1',
maxlength: '6'
}}) }}
{% set error_message = form_errors(form.apartments_pricing.night_price) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}" id="{{form.apartments_pricing.night_price.vars.id }}_error">{{ error_message }}</p>
</div>
</div>
</div>
<div class="takeout">
<h3>
<svg class="icon mr-1">
<use xlink:href="{{ asset('assets_domain/images/icons/account/svg-library.svg', 'nodomainConfig') }}#icon-car"></use>
</svg>
<span>Выезд</span>
</h3>
<div class="input-group d-flex">
<div class="field">
<label>1 час:</label>
{{ form_widget(form.take_out_pricing.one_hour_price, {'attr': {
'class': 'basic-view',
'min': '1',
maxlength: '6'
}}) }}
{% set error_message = form_errors(form.take_out_pricing.one_hour_price) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}" id="{{form.take_out_pricing.one_hour_price.vars.id }}_error">{{ error_message }}</p>
</div>
<div class="field">
<label>2 часа:</label>
{{ form_widget(form.take_out_pricing.two_hours_price, {'attr': {
'class': 'basic-view',
'min': '1',
maxlength: '6'
}}) }}
{% set error_message = form_errors(form.take_out_pricing.two_hours_price) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}" id="{{form.take_out_pricing.two_hours_price.vars.id }}_error">{{ error_message }}</p>
</div>
<div class="field">
<label>Ночь:</label>
{{ form_widget(form.take_out_pricing.night_price, {'attr': {
'class': 'basic-view',
'min': '1',
maxlength: '6'
}}) }}
{% set error_message = form_errors(form.take_out_pricing.night_price) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}" id="{{form.take_out_pricing.night_price.vars.id }}_error">{{ error_message }}</p>
</div>
</div>
</div>
</div>
<div class="express{% if not form.express_pricing.provided.vars.checked %} no-ex1press{% endif %}">
<div class="wrap">
<div class="field">
{{ form_widget(form.express_pricing.provided) }}
<label for="express_pricing_provided" class="level">Есть экспресс</label>
</div>
{{ form_widget(form.express_pricing.price, {'attr': {
'class': 'express-price basic-view',
'min': '1',
maxlength: '6'
}}) }}
</div>
{% set error_message = form_errors(form.express_pricing.price) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}" id="{{form.express_pricing.price.vars.id }}_error">{{ error_message }}</p>
</div>
<div class="services-special">
<h3>Выезд:</h3>
<div class="services-list">
{% for take_out_location in form.take_out_pricing.locations %}
<div class="checkbox-form">
{{ form_widget(take_out_location) }}
<label for="{{ take_out_location.vars.id }}" class="">{{ take_out_location.vars.label|trans({}, 'take_out_location') }}</label>
</div>
{% endfor %}
<div class="checkbox-form">
{{ form_widget(form.car_pricing.provided) }}
<label for="{{ form.car_pricing.provided.vars.id }}" class="">В машине</label>
</div>
</div>
{% set error_message = form_errors(form.take_out_pricing.locations) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}">{{ error_message }}</p>
</div>
</div>
<div class="block about">
<h2 class="border-line">О себе</h2>
<div class="textarea">
{{ form_widget(form.about, {'attr': {
'class': 'basic-view',
'placeholder': 'Напишите о себе',
'maxlength': '3000',
'minlength': '100'
}}) }}
</div>
<p class="info">Напишите о себе (минимум 100 символов):</p>
{% set error_message = form_errors(form.about) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}" id="{{form.about.vars.id }}_error">{{ error_message }}</p>
</div>
</div>
{#<div class="additional-info masseur">
<div class="field is-flex level">
<div class="additional">
<div class="checkbox-form level">
{{ form_widget(form.is_masseur, {'attr': {}}) }}
<label for="is_masseur" class="level">Массажистка</label>
</div>
<p>Анкета будет показываться только в разделе "Массажистки"</p>
</div>
</div>
</div>#}
<div class="block map-block">
<h2 class="border-line">Расположение</h2>
<div class="metro d-flex" id="metro-choice">
<div class="info selector">
<p>Выберите станции метро (максимум 3 станции):</p>
<div class="selector-block">
<button class=""
type="button"
data-toggle="selector"
data-limit="3"
data-empty-text="Выберите станции метро"></button>
<div class="tags"></div>
</div>
<div class="form-data">
{{ form_widget(form.stations) }}
</div>
{% set error_message = form_errors(form.stations) %}
<p class="field-error{% if error_message|length > 0 %} show{% endif %}">{{ error_message }}</p>
</div>
</div>
<div class="metro-selected-list" id="metro-selected">
</div>
{{ form_widget(form.primary_station) }}
<div class="map">
<div style="display:none">
{{ form_widget(form.map_coordinate.latitude) }}
{{ form_widget(form.map_coordinate.longitude) }}
</div>
<div class="info">
<div class="map-wrap"
id="ya-map"
data-lat="{% if city.mapCoordinate.latitude %}{{city.mapCoordinate.latitude}}{% else %}55.752{% endif %}"
data-lon="{% if city.mapCoordinate.longitude %}{{city.mapCoordinate.longitude}}{% else %}37.61{% endif %}"></div>
</div>
</div>
</div>
<div class="block services-block">
<h2 class="border-line">Предоставляемые услуги</h2>
<ul class="about-services d-flex">
<li class="d-flex include">
<svg class="icon">
<use xlink:href="{{ asset('assets_domain/images/icons/account/svg-library.svg', 'nodomainConfig') }}#icon-condition-include"></use>
</svg>
<span>- включено в стоимость</span>
</li>
<li class="d-flex sympathy">
<svg class="icon">
<use xlink:href="{{ asset('assets_domain/images/icons/account/svg-library.svg', 'nodomainConfig') }}#icon-condition-sympathy"></use>
</svg>
<span>- по настроению</span>
</li>
<li class="d-flex price">
<svg class="icon">
<use xlink:href="{{ asset('assets_domain/images/icons/account/svg-library.svg', 'nodomainConfig') }}#icon-condition-with-price"></use>
</svg>
<span>- за дополнительную плату</span>
</li>
<li class="d-flex not-include">
<svg class="icon">
<use xlink:href="{{ asset('assets_domain/images/icons/account/svg-library.svg', 'nodomainConfig') }}#icon-condition-with-price"></use>
</svg>
<span>- услуга не предоставляется</span>
</li>
</ul>
<div class="services">
{# Пояснения
Эти открывающие дивы создаются вначале итерации. Но чтобы их закрыть, проще всего пихать закрывающий див при создании нового блока.
Так запутанней, но так легче работать.
<div class="group-6"> <------- этот див открывает группу. Он создается при первой проверке. Там же он закрывается.
<p>Разное</p>
<div class="is-flex level"> <------ этот див открывает блок чекбоксов. Тоже создается при первой проверке в цикле. закрывается тоже вначале цикла.
<div class="checkbox-form level">
<input type="checkbox" id="services_42" name="services[]" service-group="6" class="input-for-valid" value="42">
<label class="b-checkbox__text" for="services_42">Ролевые игры</label>
</div>
<div class="checkbox-form level">
<input type="checkbox" id="services_43" name="services[]" service-group="6" class="input-for-valid" value="43">
<label class="b-checkbox__text" for="services_43">Фото/видео съемка</label>
</div>
---------------------------------------------
</div>
</div>
#}
{% set current_group = 0 %}
{% set count_in_group = 0 %}
{% set title_group = 0 %}
{% set initional_group_2 = 0 %}
{% set group_2_minet = [] %}
{% set group_2_okon = [] %}
{% set group_2_okon_trigger = ['Окончание на грудь','Окончание на лицо','Окончание в рот'] %} {# Слова триггеры в 2 категории для блока Окончание. Все остальные уйдут в минет #}
{% for provided_service in form.provided_services %}
{% set service = services[provided_service.service.vars.value] %}
{% if current_group != service.group %}
{# Первый див это окончание блока checkbox-group предыдущего. Второй - тоже самое но для обёртки группы #}
{% if not loop.first and current_group != 2 %}</div></div>{% endif %}
{% set current_group = service.group %}
{# Нужно обернуть блок Заголовок+его чекбоксы в див #}
{% set title_group = current_group|service_group|trans({}, 'service_groups') %} {#Заголовок группы#}
{% set count_in_group = (services_array[current_group-1][1]/2)|round %} {#Кол-во элементов в группе#}
{% if current_group == 2 %}
{% elseif current_group == 3 %}
<div class="group-2-1" data-group="2-1">
<h3>Минет</h3>
<div class="checkbox-group count-{{ count_in_group }}">
{% for data in group_2_minet %}
{% set _form = data.form %}
{% set _service = data.service %}
{{ _self._service_block(_form, _service) }}
{% endfor %}
</div>
</div>
<div class="group-2-2" data-group="2-2">
<h3>Окончание</h3>
<div class="checkbox-group count-{{ count_in_group }}">
{% for data in group_2_okon %}
{% set _form = data.form %}
{% set _service = data.service %}
{{ _self._service_block(_form, _service) }}
{% endfor %}
</div>
</div>
{# Тут выводится третья категория #}
<div class="group-{{ current_group }}" data-group="{{ current_group }}">
<h3>{{ title_group }}</h3>
<div class="checkbox-group count-{{ count_in_group }}">
{% else %}
<div class="group-{{ current_group }}" data-group="{{ current_group }}">
<h3>{{ title_group }}</h3>
<div class="checkbox-group count-{{ count_in_group }}">
{% endif %}
{% endif %}
{% if current_group == 2 %}
{% if service.name|trans({}, 'left_menu') in group_2_okon_trigger %}
{% set group_2_okon = group_2_okon|merge([{form:provided_service, service: service}]) %}
{% else %}
{% set group_2_minet = group_2_minet|merge([{form:provided_service, service: service}]) %}
{% endif %}
{% else %}
{{ _self._service_block(provided_service, service) }}
{% endif %}
{% endfor %}
</div>
</div>
</div>
<div class="services-special">
<h3>Услуги для:</h3>
<div class="services-list d-flex">
{% for client_type in form.client_types %}
<div class="checkbox-form{{ client_type.vars.label == 'TRANS' ? ' d-none': '' }}">
{{ form_widget(client_type) }}
<label for="{{ client_type.vars.id }}" class="">{{ client_type.vars.label|trans({}, 'client_types') }}</label>
</div>
{% endfor %}
</div>
</div>
</div>
<div class="block additional-info">
<h2 class="border-line">Дополнительная информация</h2>
<div class="age-prevent">
<div class="field d-flex">
<div class="text d-flex">
<input type="checkbox" id="age-prevent">
<label for="age-prevent">Ограничение по возрасту партнёра:</label>
</div>
<div class="age-prevent-cell d-flex">
<span>от</span>
{{ form_widget(form.client_restrictions.min_age, {'attr': {
'class': 'basic-view',
'min': '18',
'max': '100',
'placeholder': '18'
}}) }}
<span>до</span>
{{ form_widget(form.client_restrictions.max_age, {'attr': {
'class': 'basic-view',
'min': '18',
'max': '100',
'placeholder': '100'
}}) }}
</div>
</div>
{% set error_message = form_errors(form.client_restrictions.min_age) %}
<p class="field-error field-error-min{% if error_message|length > 0 %} show{% endif %}" id="{{form.client_restrictions.min_age.vars.id }}_error">
Ошибка ввода минимального значения: {{ error_message }}
</p>
{% set error_message = form_errors(form.client_restrictions.max_age) %}
<p class="field-error field-error-max{% if error_message|length > 0 %} show{% endif %}" id="{{form.client_restrictions.max_age.vars.id }}_error">
Ошибка ввода максимального значения: {{ error_message }}</p>
</div>
{# <div class="has-friend">
<div class="checkbox-form level">
<input type="checkbox" id="has-friend">
<label for="has-friend" class="level">Есть подруга</label>
</div>
<a href="">Пригласить подругу</a>
</div>
<div class="work-in-saloon">
<div class="checkbox-form level">
<input type="checkbox" id="work-in-saloon">
<label for="work-in-saloon" class="level">Работаю в салоне</label>
</div>
</div> #}
</div>
<div class="block media-block">
<div class="tabs-block d-flex" id="media-tabs">
<div class="tab-header d-flex">
<button type="button" class="btn d-flex photo active" data-toggle="photo">
<svg class="icon">
<use xlink:href="{{ asset('assets_domain/images/icons/account/svg-library.svg', 'nodomainConfig') }}#icon-photo"></use>
</svg>
<span>Фото</span>
</button>
{% if form.selfies is defined %}
<button type="button" class="btn d-flex selfie" data-toggle="selfie">
<svg class="icon">
<use xlink:href="{{ asset('assets_domain/images/icons/account/svg-library.svg', 'nodomainConfig') }}#icon-selfie"></use>
</svg>
<span>Селфи</span>
</button>
{% endif %}
<button type="button" class="btn d-flex video" data-toggle="video">
<svg class="icon">
<use xlink:href="{{ asset('assets_domain/images/icons/account/svg-library.svg', 'nodomainConfig') }}#icon-video"></use>
</svg>
<span>Видео</span>
</button>
<button type="button" class="btn d-flex verify-photo" data-toggle="verify-photo">
<svg class="icon">
<use xlink:href="{{ asset('assets_domain/images/icons/account/svg-library.svg', 'nodomainConfig') }}#icon-approved"></use>
</svg>
<span>Проверочное фото</span>
</button>
</div>
<div class="tab-content">
<div class="tab photo active" data-id="photo">
<div class="photos-block" id="photo-block">
<div style="display:none" id="photo_widget">{{ form_widget(form.photos) }}</div>
<template id="template_photo_element">
<div class="attach__element attach__element--loading" data-media-rotater-element>
<img class="attach__element__photo" data-image data-media-rotater-target/>
<button class="btn attach__element__button attach__element__move" type="button" data-button-move>
<svg class="icon" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.39 6.6a1.02 1.02 0 0 1 0-1.45l2.81-2.82a1.12 1.12 0 0 1 1.6 0l2.81 2.82a1.02 1.02 0 1 1-1.44 1.44l-1.15-1.14v5.53h5.53l-1.14-1.15a1.02 1.02 0 1 1 1.44-1.44l2.82 2.82a1.12 1.12 0 0 1 0 1.58l-2.82 2.82a1.02 1.02 0 0 1-1.44-1.44l1.14-1.15h-5.53v5.53l1.15-1.14a1.02 1.02 0 0 1 1.44 1.44l-2.82 2.82a1.12 1.12 0 0 1-1.59 0L8.4 18.85a1.02 1.02 0 1 1 1.44-1.44l1.15 1.14v-5.53H5.45l1.14 1.15a1.02 1.02 0 1 1-1.44 1.44L2.33 12.8a1.12 1.12 0 0 1 0-1.58l2.82-2.82a1.02 1.02 0 0 1 1.44 1.44l-1.14 1.15h5.53V5.45L9.83 6.59a1.02 1.02 0 0 1-1.44 0Z" /></svg>
</button>
<button class="btn attach__element__button attach__element__remove" type="button" data-button-remove>
<svg class="icon" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7.33 8h-.77v10.4c0 .42.16.83.45 1.13.3.3.69.47 1.1.47h7.78c.41 0 .8-.17 1.1-.47.3-.3.45-.7.45-1.13V8H7.34Zm3.11 9.6H8.9v-7.2h1.55v7.2Zm4.67 0h-1.55v-7.2h1.55v7.2Zm.48-12L14.33 4H9.67L8.4 5.6H5v1.6h14V5.6h-3.4Z"/></svg>
</button>
<button class="btn attach__element__button attach__element__rotate" type="button" data-button-rotate data-media-rotater-button>
<svg class="icon" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3.86 18.46a8.98 8.98 0 0 0 10.74 2.8c.61-.28.74-1.1.27-1.57l-.05-.05a1 1 0 0 0-1.1-.19A7 7 0 0 1 5.19 9.1 6.95 6.95 0 0 1 11 6.03V7.8c0 .45.54.67.86.36l2.79-2.79a.5.5 0 0 0 0-.7l-2.8-2.8a.5.5 0 0 0-.85.35v1.8a8.98 8.98 0 0 0-7.14 14.45Z"/><path d="M17.7 7.71a1 1 0 0 0-1.41 0L11.7 12.3a1 1 0 0 0 0 1.41l4.59 4.6a1 1 0 0 0 1.41 0l4.59-4.6a1 1 0 0 0 0-1.4L17.7 7.7Z" /></svg>
</button>
<svg class="attach__element__progress" data-progress width="100" height="101" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="50" cy="50" r="50" fill="#F7901D"/>
<circle data-progress-animate cx="50" cy="50" r="47" transform="rotate(0 0 0)" fill="none" stroke-dashoffset="314" stroke-dasharray="314" stroke="#F7901D" stroke-width="6" />
<circle cx="50" cy="50" r="45" fill="#ffffff"/>
<text data-progress-value x="33" y="55" font-family="Verdana" font-size="20" fill="#F7901D">0%</text>
</svg>
</div>
</template>
<div class="attach attach--empty" id="photo_list"></div>
<div class="attach__add">
<input
type="file"
class="visually_hidden"
id="profile-photo-input"
multiple=""
style="position:absolute;left:-999999px"
accept="image/jpg,image/jpeg"
data-url="{{ photo_media_upload_url }}"
data-type="photo"
/>
<label class="attach__add__label" for="profile-photo-input">
<svg class="attach__add__icon" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.94 11.11A7 7 0 0 0 12 5a6.74 6.74 0 0 0-6.24 4.15A5.25 5.25 0 0 0 2 14a5 5 0 0 0 5 5h11a4 4 0 0 0 .94-7.89ZM13 14v3h-2v-3H8l4-5 4 5h-3Z"/></svg>
<span>Загрузить фото</span>
</label>
</div>
</div>
<p class="info">Загрузите фотографии. Не больше 2500px по большей из сторон и не менее 500px по меньшей. <br>Формат: JPG или PNG</p>
</div>
{% if form.selfies is defined %}
<div class="tab selfie" data-id="selfie">
<div class="photos-block" id="selfie-block">
<div style="display:none" id="selfie_widget">{{ form_widget(form.selfies) }}</div>
<template id="template_selfie_element">
<div class="attach__element attach__element--loading" data-media-rotater-element>
<img class="attach__element__photo" data-image data-media-rotater-target/>
<button class="btn attach__element__button attach__element__move" type="button" data-button-move>
<svg class="icon" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m12 22-4-4h8l-4 4Zm0-20 4 4H8l4-4Zm0 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4ZM2 12l4-4v8l-4-4Zm20 0-4 4V8l4 4Z" /></svg>
</button>
<button class="btn attach__element__button attach__element__remove" type="button" data-button-remove>
<svg class="icon" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m19.37 9-1 1.73-12.13-7 1-1.73 3.04 1.75 1.36-.37 4.33 2.5.37 1.37L19.37 9ZM5 19.09v-12h5.07l6.93 4v8a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2Zm2 0h8v-6.8l-5.54-3.2H7v10Z"/></svg>
</button>
<button class="btn attach__element__button attach__element__rotate" type="button" data-button-rotate data-media-rotater-button>
<svg class="icon" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 11h3l-4 4-4-4h3a6 6 0 0 0-6-6l-1 .08V3.06L11 3a8 8 0 0 1 8 8ZM8 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-7L8 7Zm2 11H4V9h3v3h3v6Z" /></svg>
</button>
<svg class="attach__element__progress" data-progress width="100" height="101" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="50" cy="50" r="50" fill="#F7901D"/>
<circle data-progress-animate cx="50" cy="50" r="47" transform="rotate(0 0 0)" fill="none" stroke-dashoffset="314" stroke-dasharray="314" stroke="#F7901D" stroke-width="6" />
<circle cx="50" cy="50" r="45" fill="#ffffff"/>
<text data-progress-value x="33" y="55" font-family="Verdana" font-size="20" fill="#F7901D">0%</text>
</svg>
</div>
</template>
<div class="attach attach--empty" id="selfie_list"></div>
<div class="attach__add">
<input
type="file"
class="visually_hidden"
id="profile-selfie-input"
multiple=""
style="position:absolute;left:-999999px"
accept="image/jpg,image/jpeg"
data-url="{{ selfie_media_upload_url }}"
data-type="selfie"
/>
<label class="attach__add__label" for="profile-selfie-input">
<svg class="attach__add__icon" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.94 11.11A7 7 0 0 0 12 5a6.74 6.74 0 0 0-6.24 4.15A5.25 5.25 0 0 0 2 14a5 5 0 0 0 5 5h11a4 4 0 0 0 .94-7.89ZM13 14v3h-2v-3H8l4-5 4 5h-3Z"/></svg>
<span>Загрузить селфи</span>
</label>
</div>
</div>
<p class="info">Загрузите фотографии. Для удобства просмотра желательно что бы размер фотографии был не более 2500рх по большей стороне и не менее 1000рх по больше стороне.<br>Формат изображения: JPG или PNG</p>
</div>
{% endif %}
<div class="tab video" data-id="video">
<div class="photos-block videos-block" id="video-block">
<div style="display:none" id="video_widget" data-video-on-progress="{{videos_in_process}}">{{ form_widget(form.videos) }}</div>
<template id="template_video_element">
<div class="attach__element attach__element--loading attach__element-video" data-media-rotater-element>
<video class="attach__element__video" data-video data-media-rotater-target ></video>
{# <button class="btn attach__element__button attach__element__move" type="button" data-button-move>
<svg class="icon" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m12 22-4-4h8l-4 4Zm0-20 4 4H8l4-4Zm0 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4ZM2 12l4-4v8l-4-4Zm20 0-4 4V8l4 4Z" /></svg>
</button> #}
<button class="btn attach__element__button attach__element__remove" type="button" data-button-remove>
<svg class="icon" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m19.37 9-1 1.73-12.13-7 1-1.73 3.04 1.75 1.36-.37 4.33 2.5.37 1.37L19.37 9ZM5 19.09v-12h5.07l6.93 4v8a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2Zm2 0h8v-6.8l-5.54-3.2H7v10Z"/></svg>
</button>
<button class="attach__element__video__button" type="button" data-button-play>
<svg class="attach__element__video__play" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64" fill="none"><g fill="#fff" fill-rule="evenodd" clip-rule="evenodd" opacity=".6"><path d="M32 7.332c-13.623 0-24.667 11.044-24.667 24.667 0 13.623 11.044 24.666 24.667 24.666 13.623 0 24.666-11.043 24.666-24.666C56.666 18.376 45.623 7.332 32 7.332ZM3.333 31.999C3.333 16.167 16.168 3.332 32 3.332s28.666 12.834 28.666 28.667c0 15.832-12.834 28.666-28.666 28.666S3.333 47.831 3.333 32Z"/><path d="M25.723 19.569a2 2 0 0 1 2.053.099l16 10.667a2 2 0 0 1 0 3.328l-16 10.667a2 2 0 0 1-3.109-1.665V21.332a2 2 0 0 1 1.056-1.763Zm2.944 5.5v13.86l10.394-6.93-10.394-6.93Z"/></g></svg>
</button>
<svg class="attach__element__progress" data-progress xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64" fill="none">
<circle cx="32" cy="32" r="29" fill="#fff" opacity=".5"/>
<circle data-progress-animate cx="32" cy="32" r="27" stroke="#383838" stroke-linecap="round" stroke-linejoin="round" stroke-width="4" stroke-dasharray="169.65" stroke-dashoffset="169.65"/>
<text data-progress-value x="22" y="38" font-size="16" fill="#252525">0%</text>
</svg>
</div>
</template>
<div class="attach attach--empty" id="video_list">
{% if videos_in_process > 0 -%}
{% for i in 1..videos_in_process %}
<div class="attach__element__container">
<div class="attach__element attach__element-video">
<div class="item item-processing">
<svg viewBox="0 0 100 100" width="100" width="100" height="100" fill="none"><path fill="#000" fill-opacity=".3" fill-rule="evenodd" d="M25 10c-8.284 0-15 6.716-15 15v50c0 8.284 6.716 15 15 15h50c8.284 0 15-6.716 15-15V25c0-8.284-6.716-15-15-15H25Zm33 26c2.206 0 4 1.794 4 4v6.666L70 40v20l-8-6.666V60c0 2.206-1.794 4-4 4H34c-2.206 0-4-1.794-4-4V40c0-2.206 1.794-4 4-4h24Z" clip-rule="evenodd"/></svg>
</div>
</div>
</div>
{% endfor %}
{% endif %}
</div>
<div class="attach__add">
<input
type="file"
class="visually_hidden"
id="profile-video-input"
multiple=""
style="position:absolute;left:-999999px"
accept=".mp4, .mov"
data-url="{{ video_media_upload_url }}"
data-type="video"
/>
<label class="attach__add__label" for="profile-video-input">
<svg class="attach__add__icon" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.94 11.11A7 7 0 0 0 12 5a6.74 6.74 0 0 0-6.24 4.15A5.25 5.25 0 0 0 2 14a5 5 0 0 0 5 5h11a4 4 0 0 0 .94-7.89ZM13 14v3h-2v-3H8l4-5 4 5h-3Z"/></svg>
<span>Загрузить видео</span>
</label>
</div>
</div>
<p class="info">Загрузите видео. До 400 МБ. Mp4, Mov, HEVC</p>
</div>
<div class="tab verify-photo" data-id="verify-photo" id="approval_block">
<div style="display:none" id="approval_widget" data-status="{{ form.approval_status.vars.value }}">
{% if form.uploaded_approval_photo.vars.data is not null %}
<img id="uploaded_approval_photo" src="{{ responsive_asset(form.uploaded_approval_photo.vars.data, "profile_media_approval", "357x500", "jpg") }}" width="100" height="100"/><video id="uploaded_approval_photo" src="{{ asset(form.uploaded_approval_photo.vars.data, "profile_media_approval") }}" width="100" height="100"></video>
{% endif %}
<div class="form-error">{{ form_errors(form.approval_photo) }}</div>
{{ form_widget(form.approval_photo, {'attr': {
'class': 'custom-file-input',
'data-type': "verify",
'accept':"image/jpg,image/jpeg",
'data-url':"{{ approval_media_upload_url }}",
'style': "position:absolute;left:-999999px"
}}) }}
</div>
{% set classVerify = form.approval_status.vars.value ? form.approval_status.vars.value : 'NO_ADD' %}
<div class="photos-verify-block d-flex" id="approval_list">
<div class="status-block">
<div class="photo">
<div class="empty-image" id="approval_empty">
<svg class="icon">
<use xlink:href="{{ asset('assets_domain/images/icons/account/svg-library.svg', 'nodomainConfig') }}#icon-empty-girl"></use>
</svg>
</div>
<div class="current-image d-none status_image_{{ classVerify }}" id="approval_image">
<img class="main" src="" >
{# <img class="icon rejected" src="{{ asset('assets/images/icons/alert.svg') }}">
<img class="icon" src="{{ asset('assets/images/icons/alert-grey.svg') }}"> #}
</div>
</div>
<div class="status attach__approval__{{ classVerify }}" data-t="{{form.approval_status.vars.value}}" id="approval_photo_text">
<div class="status-info status-info-empty" id="status-info-empty">
<p class="colored">Ваша анкета ещё НЕ подтверждена.</p>
<p class="sub">Рекомендуем загрузить проверочное фото.</p>
</div>
<div class="status-info status-info-wait" id="status-info-wait">
<p class="colored">Ожидает модерации</p>
<p class="sub">Ваша проверочная фотография ожидает подтверждения от администрации сайта.</p>
<p class="sub-2">Проверка может занять до двух дней.<br>Пожалуйста, подождите.</p>
</div>
<div class="status-info status-info-rejected" id="status-info-rejected">
<p class="colored">Фото отклонено</p>
<p class="sub">К сожалению, <strong>Ваша анкета НЕ подтверждена</strong>.</p>
<p class="sub-2">Попробуйте отправить новое фото</p>
</div>
<div class="status-info status-info-approved" id="status-info-approved">
<p class="colored d-flex">
<svg class="icon">
<use xlink:href="{{ asset('assets_domain/images/icons/account/svg-library.svg', 'nodomainConfig') }}#icon-approved"></use>
</svg>
<span>Подтверждено</span>
</p>
<p class="sub">Поздравляем, Ваша анкета подтверждена.</p>
</div>
<div class="status-info status-info-wait-second-attempt" id="status-info-wait-second-attempt">
<p class="colored">Проверяется</p>
<p class="sub">Вы обновили свои фотографии. Знак верификации временно снят до проверки модератором.</p>
<p class="sub-2">Если Вы хотите изменить проверочное фото - загрузите его заново.</p>
</div>
<div class="add-block" id="status-info-add">
<div class="add">
<input class="custom-file-input d-none"
type="file"
id="profile-verify-input"
data-type="verify"
accept="image/jpg,image/jpeg"
data-url="{{ approval_media_upload_url }}"
/>
<label class="add-photo btn btn-secondary d-flex" for="profile-verify-input">
<svg class="icon">
<use xlink:href="{{ asset('assets_domain/images/icons/account/svg-library.svg', 'nodomainConfig') }}#icon-upload"></use>
</svg>
<span>Загрузить фото</span>
</label>
</div>
</div>
</div>
</div>
<div class="description">
<p class="heading">Что такое проверочное фото?</p>
<p>Чтобы анкета была с отметкой "<span class="colored-green">фото проверено</span>" и показывалась выше непроверенных анкет, <strong>Вам необходимо добавить проверочную фотографию</strong>.</p>
<p>Проверочная фотография - это фотография девушки из анкеты с листком бумаги, на котором от руки написана свежая дата.</p>
<p class="colored-red">Фотошоп, плохое качество фотографии запрещены на проверочной фотографии.</p>
<p>Если Вы добавите новые фотографии к уже проверенной анкете - отметка "фото проверено" пропадёт, и Вам нужно будет снова присылать проверочную фотографию.</p>
<p>Если Вы удалите одну или несколько фотографий из уже проверенной анкеты - отметка "фото проверено" останется</p>
<div class="sale">
<div class="info-box d-flex justify-content-center">
<svg class="icon icon-verify">
<use xlink:href="{{ asset('assets_domain/images/icons/account/svg-library.svg', 'nodomainConfig') }}#icon-approval-check"></use>
</svg>
<span class="info-box-center d-flex">
<span class="sale">10%</span>
<span class="text">скидка за <span class="marked">Проверенные анкеты</span></span>
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="submit-block">
{{ form_widget(form.submit, {
'label': editCheck ? 'Сохранить изменения' : 'Сохранить',
'attr': {
'class': 'btn btn-danger'
}}) }}
</div>
<div>
{{ form_end(form) }}
</div>
<div
class="dialog-container"
id="upload-dialog-id"
aria-labelledby="upload-dialog-title-id"
aria-hidden="true"
>
<!-- 2. The dialog overlay -->
<div class="dialog-overlay" data-a11y-dialog-hide></div>
<!-- 3. The actual dialog -->
<div class="dialog-content" role="document">
<!-- 4. The close button -->
<button class="dialog-button" type="button" data-a11y-dialog-hide aria-label="Close dialog">
×
</button>
<!-- 5. The dialog title -->
<div class="dialog-title" id="upload_dialog-title">upload title</div>
<div class="dialog-body" id="upload_dialog-content">upload content</div>
<!-- 6. Dialog content -->
</div>
</div>
{% endblock %}
{% block javascripts %}
{{ parent() }}
{{ encore_entry_script_tags('scripts/uploader', null, 'basicConfig') }}
<script>
// function is_click_masseur(load = false) {
// const checkBox = document.getElementById("is_masseur");
// let group1 = document.querySelector('.group-1');
// let group2 = document.querySelector('.group-5');
// let group3 = document.querySelector('.group-6');
// let group4 = document.querySelector('.group-7');
// if (!load) {
// if (checkBox.checked == true){
// group1.style.display = "block";
// group2.style.display = "block";
// group3.style.display = "block";
// group4.style.display = "block";
// } else {
// group1.style.display = "none";
// group2.style.display = "none";
// group3.style.display = "none";
// group4.style.display = "none";
// }
// } else {
// if (checkBox.checked == true) {
// group1.style.display = "none";
// group2.style.display = "none";
// group3.style.display = "none";
// group4.style.display = "none";
// }
// }
// }
// is_click_masseur(true);
</script>
{% endblock %}
{% block javascriptss %}
{{ parent() }}
<script src="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/16.0.4/js/intlTelInput.min.js"
integrity="sha256-Gf8PGNhkyd/4AuPWG7theaqc8hAvHzocloCkDN9pXFw="
crossorigin="anonymous"></script>
<script>
var input = document.querySelector("#phone"),
errorMsg = document.querySelector("#error-msg"),
validMsg = document.querySelector("#valid-msg");
// here, the index maps to the error code returned from getValidationError - see readme
var errorMap = ["Invalid number", "Invalid country code", "Too short", "Too long", "Invalid number"];
var input = document.querySelector("#phone");
var iti = window.intlTelInput(input, {
onlyCountries: ["al", "ad", "at", "by", "be", "ba", "bg", "hr", "cz", "dk",
"ee", "fo", "fi", "fr", "de", "gi", "gr", "va", "hu", "is", "ie", "it", "lv",
"li", "lt", "lu", "mk", "mt", "md", "mc", "me", "nl", "no", "pl", "pt", "ro",
"ru", "sm", "rs", "sk", "si", "es", "se", "ch", "ua", "gb"],
geoIpLookup: function(callback) {
$.get('https://ipinfo.io', function() {}, "jsonp").always(function(resp) {
var countryCode = (resp && resp.country) ? resp.country : "";
callback(countryCode);
});
},
utilsScript: "https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/16.0.4/js/utils.js" // just for formatting/placeholders etc
});
var reset = function() {
input.classList.remove("error");
errorMsg.innerHTML = "";
errorMsg.classList.add("hide");
validMsg.classList.add("hide");
};
// on blur: validate
input.addEventListener('blur', function() {
reset();
if (input.value.trim()) {
if (iti.isValidNumber()) {
validMsg.classList.remove("hide");
} else {
input.classList.add("error");
var errorCode = iti.getValidationError();
errorMsg.innerHTML = errorMap[errorCode];
errorMsg.classList.remove("hide");
}
}
});
// on keyup / change flag: reset
input.addEventListener('change', reset);
input.addEventListener('keyup', reset);
//-----------
document.addEventListener("DOMContentLoaded", function(event) {
document.querySelector('.selector-menu .menu').fakeScroll();
});
</script>
{% endblock %}