{% extends 'SaloonPreview/grid.html.twig' %}
{% block navbar %}
{{ parent() }}
{% set excludeRecommendationProfileIds = [] %}
{% include 'Recommendations/_profile_recommendations.html.twig' %}
{% endblock %}
{% block mainContainer %}
<h5 alt="{{ saloon.seo ? saloon.seo.phone : '' }}">{{ saloon.name|trans }} {{ rating }}★
{% if saloon.active %}
<small><a href="tel:{{ saloon.phoneNumber }}">{{ saloon.phoneNumber }}</a></small>
{% endif %}
</h5>
<p>{{ saloon.address|trans }}</p>
<dl>
<dt>{% trans %}Город{% endtrans %}</dt>
<dd>{{ saloon.city.name|trans }}</dd>
<dt>{% trans %}Метро{% endtrans %}</dt>
<dd>
{% for station in saloon.stationsSortedByPrimary %}
{% if loop.first %}<strong>{{ station.name|trans }} *</strong>
{% else %}{{ station.name|trans }}{% endif %}<br/>
{% endfor %}
</dd>
<dt>{% trans %}Район{% endtrans %}</dt>
<dd>
{% for station in saloon.stationsSortedByPrimary %}
{% set stationDistrict = station.district %}
{% if stationDistrict %}
{% set districtCounty = stationDistrict.county %}
{% if districtCounty %}
{{ districtCounty.name|trans }}
{% endif %}
{{ stationDistrict.name|trans }}<br/>
{% endif %}
{% endfor %}
</dd>
{% if saloon.active
and feature('extended_profile_form')
and saloon.messengers
and saloon.messengers.hasTelegram
and saloon.messengers.telegramUsername is not empty %}
<dt><strong>{% trans %}Телеграм{% endtrans %}</strong></dt>
<dd><a href="https://t.me/{{ saloon.messengers.telegramUsername }}"
target="_blank" rel="nofollow noopener">
@{{ saloon.messengers.telegramUsername }}
</a></dd>
{% endif %}
{% if saloon.active
and feature('extra_category_with_max')
and saloon.messengers
and saloon.messengers.hasMax
and saloon.messengers.maxUrl is not empty %}
<dt><strong>MAX</strong></dt>
<dd><a href="{{ saloon.messengers.maxUrl }}"
target="_blank" rel="nofollow noopener">MAX</a></dd>
{% endif %}
</dl>
<p>{{ saloon.description|trans }}</p>
{% if feature('extended_profile_form') %}
<h6>{% trans %}Предпочтения{% endtrans %}</h6>
{% for group, servicesGroup in services %}
<p><strong>{{ group|service_group|trans({}, 'service_groups') }}</strong></p>
<ul>
{% for service in servicesGroup %}
{% set providedService = saloon.providedService(service) %}
<li class="{% if providedService %}text-success{% else %}text-danger{% endif %}">
<a href="{{ path('profile_list.list_by_provided_service', {'city': saloon.city.uriIdentity, 'service': service.uriIdentity}) }}">{{ service.name|trans }}</a>
</li>
{% if providedService %}
{{ providedService.condition|provided_service_condition|trans({},'service_conditions') }}{% if providedService.condition == 3 %}, цена:{{ providedService.extraCharge }}{% endif %}
{% endif %}
{% endfor %}
</ul>
{% endfor %}
{% endif %}
{% if feature('extended_profile_form') %}
<div>
{% if saloon.expressPricing %}
<b>Экспресс:</b>
{% if saloon.expressPricing.provided %}
Да, стоимость{{ saloon.expressPricing.price }}
{% else %}
Нет
{% endif %}
{% endif %}
</div>
<div>
{% if saloon.clientTypes %}
<b>Услуги для:</b>
{% for clientType in saloon.clientTypes %}
{{ clientType|client_type|trans({}, 'client_types') }}<br>
{% endfor %}
{% endif %}
</div>
<div>
{% if saloon.messengers %}
<b>Мессенджеры</b><br>
<b>Telegram</b> {{ saloon.messengers.telegram ? 'Да' : 'Нет' }}
<b>WhatsApp</b> {{ saloon.messengers.whatsApp ? 'Да' : 'Нет' }}
{% if feature('extra_category_with_max') %}
<b>MAX</b> {{ saloon.messengers.max ? 'Да' : 'Нет' }}
{% endif %}
{% endif %}
</div>
{% endif %}
<div>
<b>Отвечаю на:</b>
{% for answeringTo in saloon.phoneCallRestrictions.answeringTo %}
{{ answeringTo|answering_to|trans({}, 'phone_call_restrictions') }}<br>
{% endfor %}
</div>
{% if not saloon.deleted %}
<img src="{{ saloon.thumbnail ? asset(saloon.thumbnail.path, 'saloon_media_thumb') : '' }}" width="100"
alt="{{ saloon.seo ? saloon.seo.phone : '' }}"/>
{% for photo in saloon.photos %}
<img src="{{ asset(photo.path, 'saloon_media') }}"/>
{% endfor %}
{% if feature('extended_profile_form') %}
{% for video in saloon.videos %}
<video width="320" height="240" controls
poster="{{ responsive_asset(video.previewPath, 'saloon_media_video', "fullsize", "jpg") }}">
<source src="{{ asset(video.path, 'saloon_media_video') }}">
</video>
{% endfor %}
{% endif %}
{% else %}
Фото-заглушка
{% endif %}
{% include 'SaloonPreview/_profiles.html.twig' with {
saloon: saloon,
profiles: saloon_profiles,
total_count: saloon_profiles_total_count,
per_page: saloon_profiles_per_page,
rotation_offset: saloon_profiles_rotation_offset,
} %}
<h6>{% trans %}Отзывы{% endtrans %}</h6>
<div id="comments">
{% for comment in saloon.comments %}
{% include 'SaloonPreview/comment.html.twig' %}
{% else %}
<p>{% trans %}Отзывов нет{% endtrans %}</p>
{% endfor %}
</div>
<div id="commentFormContainer">
</div>
<div id="recaptcha-container"></div>
<script type="text/javascript">
var onloadCallback = function () {
grecaptcha.render('recaptcha-container', {
'sitekey': '{{ ewz_recaptcha_site_key }}'
});
};
</script>
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script>
<script src="{{ asset('ajax.js', 'js_script') }}"></script>
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function () {
ajax({
url: '{{ path('saloon.comment.comment_form', {saloon: saloon.id}) }}',
callback: function (response) {
// console.log(response);
if ('' !== response) {
document.querySelector('#commentFormContainer').innerHTML = response;
setCommentFormListeners();
}
},
dataType: 'json',
responseType: 'text/html',
});
function setCommentFormListeners() {
const formName = 'comment_form';
{# console.log(document.querySelector('input[name="{{ comment_form.mark.vars.full_name }}"]:checked').value); #}
document.querySelector('#send_comment').addEventListener('click', function () {
ajax({
url: '{{ path('saloon.comment.create', {saloon: saloon.id}) }}',
method: '',
data: {
'g-recaptcha-response': grecaptcha.getResponse(),
'entity_id': document.querySelector(`#${formName}_entity_id`).value,
'mark': document.querySelector(`input[name="${formName}[mark]"]:checked`).value,
'text': document.querySelector(`#${formName}_text`).value,
},
callback: function (response) {
if (response) {
if (response.success) {
//document.querySelector(`#{formName}`).style.display = 'none';
//document.querySelector('#send_comment').style.display = 'none';
document.querySelector(`form[name="${formName}"]`).reset();
grecaptcha.reset();
let template =
'<div>' +
(response.comment.nickname ?
'<span class="author">' +
'<img src="#avatar" alt="shift" width="25">' +
'<span class="name">#nickname</span>' +
'</span>' : '') +
'<span class="date">#createdAt</span>' +
'<span>#text</span>' +
'</div>'
;
response.comment.createdAt = new Date(response.comment.createdAt * 1000);
for (let k in response.comment) {
template = template.replace('#' + k, response.comment[k]);
}
document.querySelector('#comments').innerHTML += template;
// console.log(template);
// document.querySelector('#comments').innerHTML += response.html;
} else {
alert(response.error);
}
}
},
dataType: 'json',
responseType: 'json',
});
});
}
});
</script>
{% endblock %}