chore: initial import for test contour with k3s CI

This commit is contained in:
sova-bootstrap
2026-05-28 12:09:28 +03:00
commit d77d0a872f
423 changed files with 35401 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
{% set regionId = app.request.cookies.get('region')|default(94) %}
{% set modId = '' %}
{% if regionId == 91 or regionId == '91' %}
{% set modId = '95271cfe' %}
{% elseif regionId == 92 or regionId == '92' %}
{% set modId = '886a1412' %}
{% elseif regionId == 93 or regionId == '93' %}
{% set modId = 'ce64c813' %}
{% elseif regionId == 94 or regionId == '94' %}
{% set modId = 'yde3clnb' %}
{% endif %}
{% if modId %}
<!-- calltouch -->
<script>
(function(w,d,n,c){w.CalltouchDataObject=n;w[n]=function(){w[n]["callbacks"].push(arguments)};if(!w[n]["callbacks"]){w[n]["callbacks"]=[]}w[n]["loaded"]=false;if(typeof c!=="object"){c=[c]}w[n]["counters"]=c;for(var i=0;i<c.length;i+=1){p(c[i])}function p(cId){var a=d.getElementsByTagName("script")[0],s=d.createElement("script"),i=function(){a.parentNode.insertBefore(s,a)},m=typeof Array.prototype.find === 'function',n=m?"init-min.js":"init.js";s.async=true;s.src="https://mod.calltouch.ru/"+n+"?id="+cId;if(w.opera=="[object Opera]"){d.addEventListener("DOMContentLoaded",i,false)}else{i()}}})(window,document,"ct","{{ modId }}");
</script>
<!-- calltouch -->
{% endif %}
+32
View File
@@ -0,0 +1,32 @@
<div data-controller="changeRegion" class="modal" id="chengeRegion" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Выбрать город</h5>
</div>
<div class="modal-body">
<form>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="region" id="regionItem91" value="91" data-text="Саратов">
<label class="form-check-label" for="regionItem91">Саратов</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="region" id="regionItem92" value="92" data-text="Волгоград">
<label class="form-check-label" for="regionItem92">Волгоград</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="region" id="regionItem93" value="93" data-text="Воронеж">
<label class="form-check-label" for="regionItem93">Воронеж</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="region" id="regionItem94" value="94" data-text="Краснодар">
<label class="form-check-label" for="regionItem94">Краснодар</label>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary submit">Выбрать</button>
</div>
</div>
</div>
</div>
+33
View File
@@ -0,0 +1,33 @@
{% if isShowInRegion([91,92,93]) %}
<script type="text/javascript" >
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(86801749, "init", {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true,
webvisor:true
});
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/86801749" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
{% else %}
<script type="text/javascript" >
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(94422497, "init", {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true,
webvisor:true
});
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/94422497" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
{% endif %}
+80
View File
@@ -0,0 +1,80 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{% block title %}{% endblock %}</title>
{% if app.debug == false %}
{{ include('/_metrika.html.twig') }}
{{ include('/_calltouch.html.twig') }}
{% endif %}
{% block stylesheets %}
<meta name="viewport" content="width=device-width, initial-scale=1.0">
{{ encore_entry_link_tags('app_sovamed') }}
{% endblock %}
{% block javascripts %}
{{ encore_entry_script_tags('app_sovamed') }}
{% endblock %}
{% block js %}{% endblock %}
</head>
<body>
<div class="с-container main-container">
<div class="left-sidebar">
<a href="/" class="logo-link">
<img src="/images/logo.svg" alt="" class="logo">
<img src="/images/mobile-logo.svg" alt="" class="mobile-logo">
</a>
{{ include('menu.html.twig') }}
<span class="copyright">© {{ "now"|date('Y') }} Семья клиник «СОВА»</span>
</div>
<div class="center-content-2">
<div id="alert-system" data-controller="alertSystem" data-auth="{% if app.user %}true{% else %}false{% endif %}" data-tech-maintenance="{% if tech_maintenance %}true{% else %}false{% endif %}">
{% for message in app.flashes('notice') %}
<div class="alert alert-danger alert-dismissible fade show" role="alert">
{{ message }}
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
{% endfor %}
{% for message in app.flashes('success') %}
<div class="alert alert-success alert-dismissible fade show" role="alert">
{{ message }}
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
{% endfor %}
</div>
{% block body %}{% endblock %}
</div>
<div class="up-arrow d-none" data-controller="scrollTop"></div>
</div>
<div class="modal fade" id="popup" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div id="popup-body" class="modal-body"></div>
</div>
</div>
</div>
{{ include('_change_region.html.twig') }}
</body>
</html>
+4
View File
@@ -0,0 +1,4 @@
<form method="post" action="{{ path('banner_delete', {'id': banner.id}) }}" onsubmit="return confirm('Are you sure you want to delete this item?');">
<input type="hidden" name="_token" value="{{ csrf_token('delete' ~ banner.id) }}">
<button class="btn">Delete</button>
</form>
+5
View File
@@ -0,0 +1,5 @@
{% form_theme form 'bootstrap_3_layout.html.twig' %}
{{ form_start(form) }}
{{ form_widget(form) }}
<button class="btn">{{ button_label|default('Save') }}</button>
{{ form_end(form) }}
+13
View File
@@ -0,0 +1,13 @@
{% extends 'admin_base.html.twig' %}
{% block title %}Edit Banner{% endblock %}
{% block body %}
<h1>Edit Banner</h1>
{{ include('banner/_form.html.twig', {'button_label': 'Update'}) }}
<a href="{{ path('admin_banner_index') }}">back to list</a>
{{ include('banner/_delete_form.html.twig') }}
{% endblock %}
+40
View File
@@ -0,0 +1,40 @@
{% extends 'admin_base.html.twig' %}
{% block title %}Banner index{% endblock %}
{% block body %}
<h1>Banner index</h1>
<table class="table">
<thead>
<tr>
<th>Id</th>
<th>Href</th>
<th>Src</th>
<th>City</th>
<th>Active</th>
<th>actions</th>
</tr>
</thead>
<tbody>
{% for banner in banners %}
<tr>
<td>{{ banner.id }}</td>
<td>{{ banner.href }}</td>
<td><img src="/banners/{{ banner.src }}" alt="banner" width="100%"> </td>
<td>{{ banner.city.name }}</td>
<td>{{ banner.active? 'on' : 'off' }}</td>
<td>
<a href="{{ path('banner_edit', {'id': banner.id}) }}">edit</a>
</td>
</tr>
{% else %}
<tr>
<td colspan="5">no records found</td>
</tr>
{% endfor %}
</tbody>
</table>
<a href="{{ path('banner_new') }}">Create new</a>
{% endblock %}
+11
View File
@@ -0,0 +1,11 @@
{% extends 'admin_base.html.twig' %}
{% block title %}New Banner{% endblock %}
{% block body %}
<h1>Create new Banner</h1>
{{ include('banner/_form.html.twig') }}
<a href="{{ path('admin_banner_index') }}">back to list</a>
{% endblock %}
+149
View File
@@ -0,0 +1,149 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{% block title %}{% endblock %}</title>
{% if app.debug == false %}
{{ include('/_metrika.html.twig') }}
{{ include('/_calltouch.html.twig') }}
{% endif %}
{% block stylesheets %}
<link rel="icon" type="image/jpg" href="/favicon_sovamed.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
{{ encore_entry_link_tags('app_sovamed') }}
{% endblock %}
{% block javascripts %}
{{ encore_entry_script_tags('app_sovamed') }}
{% endblock %}
{% block js %}{% endblock %}
</head>
<body>
{# <div class="ny_top"></div> #}
<div class="с-container main-container">
<div class="left-sidebar">
<a href="/" class="logo-link">
<img src="/images/logo.svg" alt="" class="logo">
<img src="/images/mobile-logo.svg" alt="" class="mobile-logo">
</a>
{{ include('menu.html.twig') }}
<span class="copyright">© {{ "now"|date('Y') }} Семья клиник «СОВА»</span>
</div>
<div class="center-content">
{% block top %}
<div class="top-section">
<h1 class="title" id="page-title">
{% if app.request.get('_route') in ['security_card'] and app.request.get('tab') == 'allTest' %}
Результаты анализов
{% else %}
{{ title }}
{% endif %}
</h1>
<div class="search-wrap search-input">
<select id="select-search" name="searchType">
<option value="name">по имени</option>
<option value="dep">по отделению</option>
<option value="pl">по услуге</option>
</select>
<input id="select-name-input" data-controller="searchNameInput" type="text" class="form-control" placeholder="Поиск:">
<div class="show-content d-none"></div>
<div data-controller="searchButton" class="search-btn">
<button class="btn" type="button" data-action="click->searchButton#searchForm">
<i class="fa fa-search" aria-hidden="true"></i>
</button>
<button class="btn" type="button" data-action="click->searchButton#cancelForm">
<i class="fa fa-window-close" aria-hidden="true"></i>
</button>
</div>
</div>
</div>
{% endblock %}
<div id="alert-system" data-controller="alertSystem" data-auth="{% if app.user %}true{% else %}false{% endif %}" data-tech-maintenance="{% if tech_maintenance %}true{% else %}false{% endif %}">
{% for message in app.flashes('notice') %}
<div class="alert alert-danger alert-dismissible fade show" role="alert">
{{ message }}
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
{% endfor %}
{% for message in app.flashes('success') %}
<div class="alert alert-success alert-dismissible fade show" role="alert">
{{ message }}
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
{% endfor %}
</div>
{% block body %}{% endblock %}
</div>
{% block sidebar %}
<div class="right-content">
{% if (isMobile() == false) %}
<div class="right-sidebar__top">
<div id="favoritesNaw" class="favorites staff-icons-list"></div>
<a href="{{ path('default_favorites') }}" id="favoritesBtn" class="button">Мои врачи</a>
</div>
{% endif %}
{% block bonusWidget %}
{% endblock %}
<div class="filter">
{% block filter %}
<div class="filter__title">Найти специалиста</div>
{{ render(path('specialist_filter')) }}
{% endblock %}
</div>
<div class="banner" data-controller="bannersRegion"></div>
</div>
{% endblock %}
<div class="up-arrow d-none" data-controller="scrollTop"></div>
</div>
<div data-controller="modal" class="modal fade" id="popup" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"></h5>
<i class="full-scren-modal fa fa-window-maximize d-none" data-action="click->modal#fullScreen" aria-hidden="true"></i>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div id="popup-body" class="modal-body"></div>
</div>
</div>
</div>
<div id="cookie_note" class="d-none" data-controller="cookieNotice">
<p>Мы используем файлы cookie, чтобы улучшить работу сайта и предоставить вам больше возможностей.
<br>Продолжая использовать сайт, вы соглашаетесь с <a href="/docs/sovamed-cookie.pdf" target="_blank" rel="noreferrer noopener"> политикой использования</a> cookie-файлов.</p>
<button class="button cookie_accept btn btn-outline-secondary btn-white btn-sm" data-action="click->cookieNotice#accept">
Я согласен
</button>
</div>
{{ include('_change_region.html.twig') }}
<script data-controller="jivo" async></script>
</body>
</html>
@@ -0,0 +1,38 @@
<span class="filter__close">
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.9596 6.95962C12.2134 6.70578 12.2134 6.29422 11.9596 6.04038C11.7057 5.78654 11.2942 5.78654 11.0403 6.04038L11.9596 6.95962ZM6.04033 11.0404C5.78649 11.2942 5.78649 11.7058 6.04033 11.9596C6.29417 12.2135 6.70573 12.2135 6.95957 11.9596L6.04033 11.0404ZM6.95967 6.04038C6.70583 5.78654 6.29428 5.78654 6.04043 6.04038C5.78659 6.29422 5.78659 6.70578 6.04043 6.95962L6.95967 6.04038ZM11.0404 11.9596C11.2943 12.2135 11.7058 12.2135 11.9597 11.9596C12.2135 11.7058 12.2135 11.2942 11.9597 11.0404L11.0404 11.9596ZM11.0403 6.04038L6.04033 11.0404L6.95957 11.9596L11.9596 6.95962L11.0403 6.04038ZM6.04043 6.95962L11.0404 11.9596L11.9597 11.0404L6.95967 6.04038L6.04043 6.95962ZM15.85 9C15.85 12.7832 12.7832 15.85 9 15.85V17.15C13.5011 17.15 17.15 13.5011 17.15 9H15.85ZM9 15.85C5.21685 15.85 2.15 12.7832 2.15 9H0.85C0.85 13.5011 4.49888 17.15 9 17.15V15.85ZM2.15 9C2.15 5.21685 5.21685 2.15 9 2.15V0.85C4.49888 0.85 0.85 4.49888 0.85 9H2.15ZM9 2.15C12.7832 2.15 15.85 5.21685 15.85 9H17.15C17.15 4.49888 13.5011 0.85 9 0.85V2.15Z" fill="#8E8C8C"/>
</svg>
</span>
{{ form_start(searchForm) }}
<div class="filter__input-wrap">
{{ form_widget(searchForm.schname, {'attr': {
'class': 'form-control input-castom',
'placeholder': 'Название услуги'
}}) }}
</div>
<div class="filter__input-wrap">
{{ form_widget(searchForm.kodoper, {'attr': {
'class': 'form-control input-castom',
'placeholder': 'Код услуги'
}}) }}
</div>
<div class="filter__input-wrap">
{{ form_widget(searchForm.groupId, {'attr': {
'class': 'filter__select',
'data-live-search': 'true',
'data-controller' : 'selectpicker'
}}) }}
</div>
<div class="filter__input-wrap">
{{ form_widget(searchForm.filial, {'attr': {
'class': 'filter__select selectpicker',
'data-controller' : 'selectpicker',
'data-placeholder': 'Все клиники'
}}) }}
</div>
{{ form_row(searchForm._token) }}
<div class="text-center">
<button type="submit" class="btn btn-outline-secondary submit-filter filter__btn submit-filter">Найти</button>
</div>
{{ form_end(searchForm) }}
+25
View File
@@ -0,0 +1,25 @@
{% extends template ~ '.html.twig' %}
{% block title %}{{ title }}{% endblock %}
{% block body %}
<div class="main" data-controller="doc">
<div class="block-content">
<div class="col-12 my-3 mx-2">
<h3>Пациентам</h3>
<hr>
{% include '/base/patient.html.twig' %}
</div>
</div>
<div class="block-content mt-2">
<div class="col-12 my-3 mx-2">
<h3><a href="{{ getLicenseLink() }}" target="_blank">Документы и лицензии</a></h3>
</div>
</div>
</div>
{% endblock %}
+25
View File
@@ -0,0 +1,25 @@
{% extends template ~ '.html.twig' %}
{% block title %}{{ title }}{% endblock %}
{% block body %}
<div class="main" data-controller="docYuorHome">
<div class="text-center mb-3">
<button class="btn button d-inline">Вызвать врача на дом</button>
</div>
<div class="block-content">
<div class="col-12 my-3 mx-2">
<p>Вызов врача на дом – это популярная услуга, ведь каждый сталкивался с ситуацией, когда срочно необходима медицинская помощь, а попасть в больницу нет возможности. Причины могут быть разные: плохое самочувствие, ограничение подвижности, обострение болезни. Кому-то не с кем оставить ребенка или хочется облегчить жизнь пожилых людей, для которых визит к специалисту стал трудновыполнимой задачей. В условиях распространения коронавируса многие сознательно ограничивают посещение публичных мест, опасаясь инфекции.</p>
<p>Оптимальное решение проблемы – оформить заявку по нужному адресу в удобное для вас время. В комфортной обстановке будет проведен осмотр и назначено эффективное лечение. При необходимости составляется план дальнейшего обследования.</p>
<p>Преимущества обращения в клинику «СОВА»:</p>
<ul>
<li>Соблюдение повышенных мер безопасности.</li>
<li>Современное портативное диагностическое оборудование.</li>
<li>Высококвалифицированные доктора и внимательное отношение к пациентам.</li>
</ul>
<p>Время платного выезда врача на дом оговаривается индивидуально и зависит от штатного расписания того или иного специалиста.
<br>Отправьте заявку и и мы свяжемся с Вами в ближайшее время.</p>
</div>
</div>
</div>
{% endblock %}
+40
View File
@@ -0,0 +1,40 @@
{% extends template ~ '.html.twig' %}
{% block title %}{{ title }}{% endblock %}
{% block js %}
<script id="smartCaptcha" src="https://smartcaptcha.yandexcloud.net/captcha.js"></script>
{% endblock %}
{% block sidebar %}
<div class="right-content">
<div class="filter">
{% block filter %}
<div class="filter__title">Найти специалиста</div>
{{ render(path('specialist_filter')) }}
{% endblock %}
</div>
<div class="banner" data-controller="bannersRegion"></div>
</div>
{% endblock %}
{% block body %}
<div id="specialist" class="main">
<div class="specialist-items staff-block-wrap" data-controller="specialistView" data-st="{{ st|date('Y-m-d') }}" data-en="{{ en|date('Y-m-d') }}">
{% for specialist in pagination %}
{% include '/specialist/_item.html.twig' with {'link': true} %}
{% else %}
<p>Вы пока не добавили врачей в избранное</p>
{% endfor %}
</div>
<div class="d-block text-center">
{{ knp_pagination_render(pagination) }}
</div>
</div>
{% include '/specialist/_calendar.html.twig' %}
{% endblock %}
+127
View File
@@ -0,0 +1,127 @@
{% extends template ~ '.html.twig' %}
{% block title %}{{ title }}{% endblock %}
{% block body %}
<div class="main">
{% if isShowInRegion([91,92,93]) %}
<div class="collapses block-content">
<a class="collapses__link" data-toggle="collapse" href="#collapse-d-online-1" role="button" aria-expanded="false" aria-controls="collapse-d-online-1">
Онлайн консультация
</a>
<div class="collapse show" id="collapse-d-online-1">
<div class="collapse-item collapse-item--text">
<p>Онлайн консультация проводится через личный кабинет, никаких приложений устанавливать не нужно.</p>
<p>Если у Вас есть логин и пароль – выберите удобный интервал, авторизуйтесь и оплатите запись. <a href="/docs/online.pdf">Читать инструкцию.</a></p>
<p>Если логина и пароля нет – то рекомендуем войти через Госуслуги и затем вернутся в раздел Онлайн консультации. <a href="/docs/onlinegos.pdf">Читать инструкцию.</a></p>
<p>Возврат средств при несостоявшейся консультации производится в разделе приемы – история записей. <a href="/docs/vozvrat.pdf">Инструкция по возврату средств</a></p>
</div>
</div>
</div>
{% endif %}
<div class="collapses block-content">
<a class="collapses__link" data-toggle="collapse" href="#collapse-d-4385" role="button" aria-expanded="false" aria-controls="collapse-d-4385">
Что такое Личный кабинет пациента и для чего он нужен?
</a>
<div class="collapse" id="collapse-d-4385">
<div class="collapse-item collapse-item--text">
<p>Здесь Вы сможете:</p>
<ul>
<li>найти необходимого специалиста</li>
<li>записаться на прием к врачу или записать своих близких или родственников</li>
<li>получить результаты исследований</li>
<li>получить историю посещений специалистов</li>
{% if isShowInRegion([91,92,93]) %}
<li>получить информацию о бонусных балах</li>
{% endif %}
<li>получить информацию о платежах</li>
<li>оплатить онлайн услуги</li>
<li>запросить оформление</li>
<li>ознакомится с ценами на услуги</li>
<li>запросить получение документов на налоговый вычет</li>
</ul>
</div>
</div>
</div>
<div class="collapses block-content">
<a class="collapses__link collapsed" data-toggle="collapse" href="#collapse-d-4386" role="button" aria-expanded="false" aria-controls="collapse-d-4386">
Как начать пользоваться личным кабинетом?
</a>
<div class="collapse" id="collapse-d-4386">
<div class="collapse-item collapse-item--text">
{% if isShowInRegion([91,92,93]) %}
<p>Самостоятельная регистрация на сайте предоставляет ограниченный доступ в Личный кабинет – доступна только запись на прием. <br> Для получения полного доступа необходимо обратиться в регистратуру любой клиники сети «Сова» с паспортом и подписать соглашение на использование Личного кабинета пациента.</p>
{% else %}
<p>Самостоятельная регистрация на сайте предоставляет ограниченный доступ в Личный кабинет – доступна только запись на прием. <br> Для получения полного доступа необходимо обратиться в регистратуру любой клиники сети «WMT» с паспортом и подписать соглашение на использование Личного кабинета пациента.</p>
{% endif %}
</div>
</div>
</div>
{% if isShowInRegion([0]) %}
<div class="collapses block-content">
<a class="collapses__link collapsed" data-toggle="collapse" href="#collapse-d-4388" role="button" aria-expanded="false" aria-controls="collapse-d-4388">
Как я могу оплатить онлайн консультацию?
</a>
<div class="collapse" id="collapse-d-4388">
<div class="collapse-item collapse-item--text">
<p>Пациент осуществляет предоплату онлайн консультации через Личный кабинет в процессе записи на консультацию. <br>Предусмотрены несколько вариантов осуществления оплаты. <br>Обычно оплата поступает в течение 3-5 минут. <br>Подтверждение оплаты и резервирования времени консультации осуществляется в течение 5-10 минут.<br> Пациент получит подтверждение на электронную почту, указанную при регистрации</p>
</div>
</div>
</div>
{% endif %}
</div>
<div class="modal fade" id="callback" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Отправить сообщение</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form action="{{ path('default_help') }}" method="POST">
<div class="form-group">
<label for="callback-fio">ФИО</label>
<input type="text" class="form-control" id="callback-fio" name="help[fio]" required>
</div>
<div class="form-group">
<label for="callback-phone">Телефон</label>
<input data-controller="inputMask" type="text" class="form-control" id="callback-phone" name="help[phone]" required>
</div>
<div class="form-group">
<label for="callback-email">E-mail</label>
<input type="email" class="form-control" id="callback-email" name="help[email]" required>
</div>
<div class="form-group">
<label for="callback-team">Тема</label>
<select class="form-control" name="help[team]" id="callback-team">
<option value="Проблема с входом/регистрацией в личном кабинете">Проблема с входом/регистрацией в личном кабинете</option>
<option value="Проблема с записью к врачу">Проблема с записью к врачу</option>
<option value="Проблема с онлайн-оплатой">Проблема с онлайн-оплатой</option>
<option value="Иной технический вопрос">Иной технический вопрос</option>
<option value="Иное обращение">Иное обращение</option>
</select>
</div>
<div class="form-group">
<label for="callback-question">Вопрос</label>
<textarea class="form-control" name="help[question]" id="callback-question" rows="5" required></textarea>
</div>
<div class="modal-footer">
<button id="callback-submit" class="help-btn">отправить сообщение</button>
</div>
</form>
</div>
</div>
</div>
</div>
{% endblock %}
+72
View File
@@ -0,0 +1,72 @@
{% extends template ~ '.html.twig' %}
{% block title %}Личный кабинет{% endblock %}
{% block body %}
<div class="main-blocks" data-controller="widgets">
{% if isMobile() %}
<div class="main-block">
<div class="sova-bonus-line mb-0">
<a class="sova-bonus-line__text" href="{{ path('specialist_index') }}">записаться на прием</a>
</div>
</div>
{% endif %}
<div class="main-block">
<div class="main-block__tabs-title">
{# /security-card #}
<a class="main-block__title" href="{{ path('security_card') }}">Медицинская карта</a>
</div>
<div class="main-block__content" id="security-card-widget">
<span class="line-item">Загрузка данных..</span>
</div>
</div>
<div class="main-block">
<div class="main-block__tabs-title">
{# /case-history #}
<a class="main-block__title" href="{{ path('security_case_history') }}">Ближайшая запись</a>
<a class="tab-title" href="{{ path('security_case_history') }}">История записей</a>
</div>
<div class="tabs-content">
<div id="case-history-widget" class="tab-content tab-content--active">
<span class="line-item">Загрузка данных..</span>
</div>
</div>
</div>
<div class="main-block">
{# /bonus #}
<div class="sova-bonus-line">
{% if isShowInRegion([91,92,93]) %}
<img class="sova-bonus-line__logo" src="/img/sova-bonus-logo.svg" />
{% endif %}
<div class="sova-bonus-line__text">бонусов на счете: <span id="bonus-widget">0</span></div>
</div>
<div class="main-block__tabs-title">
<a class="tab-title tab-title--active" href="{{ path('security_payment') }}">Платежи</a>
<a class="tab-title" href="{{ path('security_payment') }}">История платежей</a>
</div>
<div class="tabs-content">
<div id="finance-widget" class="tab-content tab-content--active">
<div class="payment-line">
<span class="payment-line__id">Загрузка данных..</span>
</div>
</div>
</div>
</div>
<div class="main-block">
{# /favorites #}
<div class="main-block__title">Мои врачи</div>
<div class="main-block__content">
<div class="staff-icons-list" id="favorites-widget" data-controller="favoritesNaw"></div>
</div>
</div>
</div>
{% endblock %}
+46
View File
@@ -0,0 +1,46 @@
{#
/**
* @file
* Twitter Bootstrap v4 Sliding pagination control implementation.
*
* View that can be used with the pagination module
* from the Twitter Bootstrap v4 CSS Toolkit
* https://v4-alpha.getbootstrap.com/components/pagination/
*
* @author Carlos Delgado <dev@ourcodeworld.com>
*/
#}
{% if pageCount > 1 %}
<div class="pagination mt-3 mb-1">
{% if startPage > 1 %}
<a href="{{ path(route, query|merge({(pageParameterName): 1})) }}" class="pagination__item">1</a>
{% if startPage == 3 %}
<a href="{{ path(route, query|merge({(pageParameterName): 2})) }}" class="pagination__item">2</a>
{% elseif startPage != 2 %}
<span class="pagination__item disabled">&hellip;</span>
{% endif %}
{% endif %}
{% for page in pagesInRange %}
{% if page != current %}
<a href="{{ path(route, query|merge({(pageParameterName): page})) }}" class="pagination__item">{{ page }}</a>
{% else %}
<span class="pagination__item pagination__item--active">{{ page }}</span>
{% endif %}
{% endfor %}
{% if pageCount > endPage %}
{% if pageCount > (endPage + 1) %}
{% if pageCount > (endPage + 2) %}
<span class="pagination__item disabled">&hellip;</span>
{% else %}
<a href="{{ path(route, query|merge({(pageParameterName): (pageCount - 1)})) }}" class="pagination__item">{{ pageCount -1 }}</a>
{% endif %}
{% endif %}
<a href="{{ path(route, query|merge({(pageParameterName): pageCount})) }}" class="pagination__item">{{ pageCount }}</a>
{% endif %}
</div>
{% endif %}
+10
View File
@@ -0,0 +1,10 @@
<h5>Социальный налоговый вычет по расходам на лечение</h5>
<p>Социальный налоговый вычет на лечение может получить физлицо, оплатившее медицинские услуги, в том числе дорогостоящие, оказанные ему самому, его супругу (супруге), родителям, а также детям (в том числе усыновленным) в возрасте до 18 лет (до 24 лет, если дети (в том числе усыновленные) являются обучающимися по очной форме обучения в организациях, осуществляющих образовательную деятельность), подопечным в возрасте до 18 лет.
</p>
<p>В наших клиниках вы можете получить справку об оплате медицинских услуг для предоставления в налоговую инспекцию. Для получения такой справки вам необходимо заполнить заявку на нашем сайте или обратиться к администраторам в регистратуру клиники.
</p>
<p>Срок подготовки справки - до 14 рабочих дней с момента обращения.После этого вам нужно будет обратиться на ресепшен к администратору клиники, указанной в вашей заявке, имея при себе паспорт.</p>
<p>Обращаем Ваше внимание, что в соответствии с Налоговым кодексом РФ, суммы, уплаченные за пребывание, уход и наблюдение в палатах стационара, в итоговую сумму справки не входят.</p>
<p>Перечень медицинских услуг и видов дорогостоящего лечения утвержден <a href="https://www.nalog.gov.ru/rn77/about_fts/docs/12739246/" target="_blank">Постановлением Правительства РФ от 08.04.2020 N 458 «Об утверждении перечней медицинских услуг и дорогостоящих видов лечения в медицинских организациях, у индивидуальных предпринимателей, осуществляющих медицинскую деятельность, суммы оплаты которых за счет собственных средств налогоплательщика учитываются при определении суммы социального налогового вычета».</a></p>
<button class="show-reference-modal btn btn-outline-secondary">Заказать справку 3 НДФЛ</button>
+65
View File
@@ -0,0 +1,65 @@
{% extends template ~ '.html.twig' %}
{% block title %}{{ title }}{% endblock %}
{% block top %}
<div class="top-section">
<h1 class="title" id="page-title">{{ title }}</h1>
<div class="search-wrap search-input">
<select id="select-search" name="searchType">
<option value="name">по имени</option>
<option value="dep">по отделению</option>
<option value="pl" selected>по услуге</option>
</select>
<input id="select-name-input" data-controller="searchNameInput" type="text" class="form-control" placeholder="Поиск:">
<div class="show-content d-none"></div>
<div data-controller="searchButton" class="search-btn">
<button class="btn" type="button" data-action="click->searchButton#searchForm">
<i class="fa fa-search" aria-hidden="true"></i>
</button>
<button class="btn" type="button" data-action="click->searchButton#cancelForm">
<i class="fa fa-window-close" aria-hidden="true"></i>
</button>
</div>
</div>
</div>
{% endblock %}
{% block filter %}
<div class="filter__title">Найти услугу</div>
{{ include('base/_search_form_price.html.twig', {'searchForm': searchForm}) }}
{% endblock %}
{% block body %}
<div class="main pt-md-3">
{% for item in pagination %}
{% if item.priceInfo.price != 0 %}
<div class="staff-detail block-content mb-2">
<div class="row">
<div class="col-md-10">
<h5>{{ item.schname }}</h5>
<p>Код услуги: {{ item.kodoper }}</p>
</div>
<div class="col-md-2">
<p class="pull-right"><b>{{ item.priceInfo.price }} ₽</b></p>
</div>
</div>
<div class="row">
<div class="col-md-8">
<p>{{ item.fname }}</p>
</div>
<div class="col-md-4">
<div class="pull-right">
<button data-comment="{{ item.kodoper }}, {{ item.schname }}, {{ item.specname }}" class="btn btn-outline-secondary btn-uslugi collapse-item__btn" type="button" data-controller="uslugi">Записаться</button>
</div>
</div>
</div>
</div>
{% endif %}
{% endfor %}
<div class="d-block text-center">
{{ knp_pagination_render(pagination) }}
</div>
</div>
{% endblock %}
+88
View File
@@ -0,0 +1,88 @@
{% extends 'admin_base.html.twig' %}
{% block title %}{{ title }}{% endblock %}
{% block body %}
<p class="lead">
Для того чтобы цены подгрузились с инфоклиники, выберите департамент и нажмите на кнопку <b>"Search"</b>. <br>
<b>Не найдено</b> - данная услуга в Инфоклиници отсутствует, либо не загружена.<br>
<b>active = true</b> - данная услуга отображается в кабинете.
</p>
<div class="row">
<div class="my-2 col-6">
<h4>{{ title }}</h4>
{{ include('specialist/admin/_form.html.twig') }}
</div>
<div class="my-2 col-6">
<h4>Обновить цены</h4>
<div data-controller="priceList">
<div class="form-group group-update">
<label class="required" for="price_list_admin_form_groupId">Департамент</label>
</div>
<div><button class="btn btn-secondary" id="update-price-list">Обновить</button></div>
<div class="msg py-1"></div>
</div>
</div>
</div>
<table class="table">
<thead>
<tr>
<th>schname</th>
<th>specname</th>
<th>kodoper</th>
<th>price cabinet</th>
<th>price infoclinica</th>
<th>date update</th>
<th>active</th>
<th>filial</th>
</tr>
</thead>
<tbody>
{% for item in pagination %}
{% set list = priceSearch(item.priceInfo.schid, item.filial, priceList) %}
<tr>
<td>{{ item.schname }}</td>
<td>{{ item.specname }}</td>
<td>{{ item.kodoper }}</td>
<td>{{ item.priceInfo.price }}</td>
{% if list.priceInfo.price is defined %}
{% if list.priceInfo.price == item.priceInfo.price %}
<td>{{ list.priceInfo.price }}</td>
{% else %}
<td style="color:red;">{{ list.priceInfo.price }}</td>
{% endif %}
{% else %}
<td style="color:red;">Не&nbsp;найдено</td>
{% endif %}
<td>{{ item.dateUpdate|date('d.m.Y') }}</td>
{% if item.dateUpdate|date('U') >= dateActive|date('U') %}
{% if item.priceInfo.price == 0 %}
<td style="color:red;">false</td>
{% else %}
<td>true</td>
{% endif %}
{% else %}
<td style="color:red;">false</td>
{% endif %}
<td>{{ item.fname }}</td>
</tr>
{% else %}
<tr>
<td colspan="6">Записи не найдены или отсутствуют</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="d-block text-center">
{{ knp_pagination_render(pagination) }}
</div>
{% endblock %}
File diff suppressed because one or more lines are too long
+36
View File
@@ -0,0 +1,36 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{% block title %}{% endblock %}</title>
{% block stylesheets %}
<meta name="viewport" content="width=device-width, initial-scale=1.0">
{{ encore_entry_link_tags('app_widget') }}
{% endblock %}
{% block javascripts %}
{{ encore_entry_script_tags('app_widget') }}
{% endblock %}
{% block js %}{% endblock %}
</head>
<body>
{% block body %}{% endblock %}
<div class="modal fade" id="popup" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div id="popup-body" class="modal-body"></div>
</div>
</div>
</div>
</body>
</html>
+138
View File
@@ -0,0 +1,138 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{% block title %}{% endblock %}</title>
{% if app.debug == false %}
{{ include('/_metrika.html.twig') }}
{{ include('/_calltouch.html.twig') }}
{% endif %}
{% block stylesheets %}
<link rel="icon" type="image/jpg" href="/favicon_wmtmed.ico"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
{{ encore_entry_link_tags('app_wmtmed') }}
{% endblock %}
{% block javascripts %}
{{ encore_entry_script_tags('app_wmtmed') }}
{% endblock %}
{% block js %}{% endblock %}
</head>
<body>
{# <div class="ny_top"></div> #}
<div class="с-container main-container">
<div class="left-sidebar">
<a href="/" class="logo-link">
<img src="/img/logo_wmt/logo.svg" alt="wmtmed" class="logo" width="100%">
<img src="/img/logo_wmt/mobile-logo.png" alt="wmtmed" class="mobile-logo" width="50px">
</a>
{{ include('menu.html.twig') }}
<span class="copyright">© {{ "now"|date('Y') }} КЛИНИКА WMT</span>
</div>
<div class="center-content">
{% block top %}
<div class="top-section">
<h1 class="title" id="page-title">
{% if app.request.get('_route') in ['security_card'] and app.request.get('tab') == 'allTest' %}
Результаты анализов
{% else %}
{{ title }}
{% endif %}
</h1>
<div class="search-wrap search-input">
<select id="select-search">
<option value="name">по имени</option>
<option value="dep">по отделению</option>
</select>
<input data-controller="searchNameInput" type="text" class="form-control" placeholder="Поиск:">
<div class="show-content d-none"></div>
</div>
</div>
{% endblock %}
<div id="alert-system" data-controller="alertSystem" data-auth="{% if app.user %}true{% else %}false{% endif %}" data-tech-maintenance="{% if tech_maintenance %}true{% else %}false{% endif %}">
{% for message in app.flashes('notice') %}
<div class="alert alert-danger alert-dismissible fade show" role="alert">
{{ message }}
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
{% endfor %}
{% for message in app.flashes('success') %}
<div class="alert alert-success alert-dismissible fade show" role="alert">
{{ message }}
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
{% endfor %}
</div>
{% block body %}{% endblock %}
</div>
{% block sidebar %}
<div class="right-content">
{% if (isMobile() == false) %}
<div class="right-sidebar__top">
<div id="favoritesNaw" class="favorites staff-icons-list"></div>
<a href="{{ path('default_favorites') }}" id="favoritesBtn" class="button">Мои врачи</a>
</div>
{% endif %}
{% block bonusWidget %}
{% endblock %}
<div class="filter">
{% block filter %}
<div class="filter__title">Найти специалиста</div>
{{ render(path('specialist_filter')) }}
{% endblock %}
</div>
<div class="banner" data-controller="bannersRegion"></div>
</div>
{% endblock %}
<div class="up-arrow d-none" data-controller="scrollTop"></div>
</div>
<div class="modal fade" id="popup" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div id="popup-body" class="modal-body"></div>
</div>
</div>
</div>
<div id="cookie_note" class="d-none" data-controller="cookieNotice">
<p>Мы используем файлы cookie, чтобы улучшить работу сайта и предоставить вам больше возможностей.
<br>Продолжая использовать сайт, вы соглашаетесь с <a href="/docs/wmtmed-cookie.pdf" target="_blank" rel="noreferrer noopener"> политикой использования</a> cookie-файлов.</p>
<button class="button cookie_accept btn btn-outline-secondary btn-white btn-sm" data-action="click->cookieNotice#accept">
Я согласен
</button>
</div>
{{ include('_change_region.html.twig') }}
<script data-controller="jivo" async></script>
</body>
</html>
@@ -0,0 +1,4 @@
<form method="post" action="{{ path('category_page_delete', {'id': category_page.id}) }}" onsubmit="return confirm('Are you sure you want to delete this item?');">
<input type="hidden" name="_token" value="{{ csrf_token('delete' ~ category_page.id) }}">
<button class="btn">Delete</button>
</form>
+5
View File
@@ -0,0 +1,5 @@
{% form_theme form 'bootstrap_4_layout.html.twig' %}
{{ form_start(form) }}
{{ form_widget(form) }}
<button class="btn">{{ button_label|default('Save') }}</button>
{{ form_end(form) }}
+13
View File
@@ -0,0 +1,13 @@
{% extends 'admin_base.html.twig' %}
{% block title %}Edit CategoryPage{% endblock %}
{% block body %}
<h1>Edit CategoryPage</h1>
{{ include('category_page/_form.html.twig', {'button_label': 'Update'}) }}
<a href="{{ path('category_page_index') }}">back to list</a>
{{ include('category_page/_delete_form.html.twig') }}
{% endblock %}
+37
View File
@@ -0,0 +1,37 @@
{% extends 'admin_base.html.twig' %}
{% block title %}CategoryPage index{% endblock %}
{% block body %}
<h1>CategoryPage index</h1>
<table class="table">
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>Active</th>
<th>actions</th>
</tr>
</thead>
<tbody>
{% for category_page in category_pages %}
<tr>
<td>{{ category_page.id }}</td>
<td>{{ category_page.name }}</td>
<td>{{ category_page.active ? 'Yes' : 'No' }}</td>
<td>
<a href="{{ path('category_page_show', {'id': category_page.id}) }}">show</a>
<a href="{{ path('category_page_edit', {'id': category_page.id}) }}">edit</a>
</td>
</tr>
{% else %}
<tr>
<td colspan="4">no records found</td>
</tr>
{% endfor %}
</tbody>
</table>
<a href="{{ path('category_page_new') }}">Create new</a>
{% endblock %}
+11
View File
@@ -0,0 +1,11 @@
{% extends 'admin_base.html.twig' %}
{% block title %}New CategoryPage{% endblock %}
{% block body %}
<h1>Create new CategoryPage</h1>
{{ include('category_page/_form.html.twig') }}
<a href="{{ path('category_page_index') }}">back to list</a>
{% endblock %}
+30
View File
@@ -0,0 +1,30 @@
{% extends 'admin_base.html.twig' %}
{% block title %}CategoryPage{% endblock %}
{% block body %}
<h1>CategoryPage</h1>
<table class="table">
<tbody>
<tr>
<th>Id</th>
<td>{{ category_page.id }}</td>
</tr>
<tr>
<th>Name</th>
<td>{{ category_page.name }}</td>
</tr>
<tr>
<th>Active</th>
<td>{{ category_page.active ? 'Yes' : 'No' }}</td>
</tr>
</tbody>
</table>
<a href="{{ path('category_page_index') }}">back to list</a>
<a href="{{ path('category_page_edit', {'id': category_page.id}) }}">edit</a>
{{ include('category_page/_delete_form.html.twig') }}
{% endblock %}
+5
View File
@@ -0,0 +1,5 @@
{% form_theme form 'bootstrap_4_layout.html.twig' %}
{{ form_start(form) }}
{{ form_widget(form) }}
<button class="btn">{{ button_label|default('Save') }}</button>
{{ form_end(form) }}
+11
View File
@@ -0,0 +1,11 @@
{% extends 'admin_base.html.twig' %}
{% block title %}Edit Department{% endblock %}
{% block body %}
<h1>Edit Department</h1>
{{ include('department/_form.html.twig', {'button_label': 'Update'}) }}
<a href="{{ path('department_index') }}">back to list</a>
{% endblock %}
+38
View File
@@ -0,0 +1,38 @@
{% extends 'admin_base.html.twig' %}
{% block title %}Department index{% endblock %}
{% block body %}
<h1>Department index</h1>
<table class="table">
<thead>
<tr>
<th>Dcode</th>
<th>Name</th>
<th>Alias</th>
<th>Active</th>
<th>MiddleName</th>
<th>actions</th>
</tr>
</thead>
<tbody>
{% for department in departments %}
<tr>
<td>{{ department.did }}</td>
<td>{{ department.name }}</td>
<td>{{ department.alias }}</td>
<td>{{ department.active ? 'Yes' : 'No' }}</td>
<td>{{ department.middleName }}</td>
<td>
<a href="{{ path('department_edit', {'id': department.id}) }}">edit</a>
</td>
</tr>
{% else %}
<tr>
<td colspan="9">no records found</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
+9
View File
@@ -0,0 +1,9 @@
{% extends 'base_widget.html.twig' %}
{% block title %}Open API sovamed{% endblock %}
{% block body %}
<div id="swagger-ui" data-controller="swaggerUI"></div>
{% endblock %}
+100
View File
@@ -0,0 +1,100 @@
{% set route = app.request.get('_route') %}
{% if (isMobile() == false) %}
<div data-controller="menu">
{% endif %}
{% if app.user %}
<div class="login-menu">
<span class="login-menu__name">
<svg width="17" height="18" viewBox="0 0 17 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.58523 12.15H10.4148V10.85H6.58523V12.15ZM10.4148 12.15C11.7597 12.15 12.85 13.2403 12.85 14.5852H14.15C14.15 12.5223 12.4777 10.85 10.4148 10.85V12.15ZM6.58523 10.85C4.52232 10.85 2.85 12.5223 2.85 14.5852H4.15C4.15 13.2403 5.24029 12.15 6.58523 12.15V10.85ZM10.35 6.5C10.35 7.52173 9.52173 8.35 8.5 8.35V9.65C10.2397 9.65 11.65 8.2397 11.65 6.5H10.35ZM8.5 8.35C7.47827 8.35 6.65 7.52173 6.65 6.5H5.35C5.35 8.2397 6.7603 9.65 8.5 9.65V8.35ZM6.65 6.5C6.65 5.47827 7.47827 4.65 8.5 4.65V3.35C6.7603 3.35 5.35 4.7603 5.35 6.5H6.65ZM8.5 4.65C9.52173 4.65 10.35 5.47827 10.35 6.5H11.65C11.65 4.7603 10.2397 3.35 8.5 3.35V4.65ZM15.35 9C15.35 12.7832 12.2832 15.85 8.5 15.85V17.15C13.0011 17.15 16.65 13.5011 16.65 9H15.35ZM8.5 15.85C4.71685 15.85 1.65 12.7832 1.65 9H0.35C0.35 13.5011 3.99888 17.15 8.5 17.15V15.85ZM1.65 9C1.65 5.21685 4.71685 2.15 8.5 2.15V0.85C3.99888 0.85 0.35 4.49888 0.35 9H1.65ZM8.5 2.15C12.2832 2.15 15.35 5.21685 15.35 9H16.65C16.65 4.49888 13.0011 0.85 8.5 0.85V2.15Z" fill="white"/>
</svg>
<div id="fullName">
{{ app.user.fullName }}
</div>
</span>
{# window.webSDK.data.user.represents #}
<div class="login-menu__wrap">
<button class="login-menu__item btn" data-controller="changePatient">Выбор пациента</button>
<a href="{{ path('security_setting') }}" class="login-menu__item">Редактировать профиль</a>
<a href="#chengeRegion" class="login-menu__item" data-toggle="modal" data-target="#chengeRegion">Выбрать город</a>
<a href="{{ path('security_logout') }}" class="login-menu__item signout" data-action="menu#signOut">Выйти</a>
</div>
<span class="login-menu__arrow"></span>
</div>
{% endif %}
{% if (isMobile() == false) %}
<div class="burger">
{% else %}
<div class="burger" data-controller="menu">
{% endif %}
<span></span>
<span></span>
<span></span>
</div>
<div class="mobile-menu">
{% if app.user.fullName is not defined %}
<nav class="menu">
<a href="{{ path('security_login') }}" class="menu__item">Авторизация/регистрация</a>
</nav>
{% endif %}
<nav class="menu">
{% if is_granted('ROLE_ADMIN') %}
<div class="dropdown show">
<a class="menu__item dropdown-toggle" href="#" role="button" id="adminMenu" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Панель администратора</a>
<div class="dropdown-menu" aria-labelledby="adminMenu">
<a class="dropdown-item" href="{{ path('department_index') }}">Редактировать отделения</a>
<a class="dropdown-item" href="{{ path('app_review_source_index') }}">Редактировать отзывы</a>
<a class="dropdown-item" href="{{ path('admin_banner_index') }}">Настроить баннеры</a>
<a class="dropdown-item" href="{{ path('default_price_list') }}">Сравнение цен</a>
<a class="dropdown-item" href="{{ path('widget_form_index') }}">Виджет формы</a>
<a class="dropdown-item" href="{{ path('page_index') }}">Статьи</a>
</div>
</div>
{% endif %}
<a href="{{ path('security_card') }}" class="menu__item {{ route in ['security_card'] and app.request.get('tab') != 'allTest' ? 'active' }}">Медицинская карта</a>
<a href="{{ path('security_card', {'tab': 'allTest'}) }}" class="menu__item {{ route in ['security_card'] and app.request.get('tab') == 'allTest' ? 'active' }}">Результаты анализов</a>
<a href="{{ path('security_case_history') }}" class="menu__item {{ route in ['security_case_history'] ? 'active' }}">Приемы <span id="countRecord" class="count d-none">0</span></a>
<a href="{{ path('specialist_index') }}" class="menu__item {{ route in ['specialist_index'] ? 'active' }}">Записаться к врачу</a>
{% if is_granted('ROLE_USER') %}
<a href="{{ path('specialist_online_index') }}" class="menu__item {{ route in ['specialist_online_index'] ? 'active' }}">Онлайн консультация</a>
{% endif %}
<a href="{{ path('security_payment') }}" class="menu__item {{ route in ['security_payment'] ? 'active' }}">Финансы
<span id="bonus-menu" class="count d-none">0</span>
</a>
</nav>
<nav class="menu">
{% if isShowInRegion([91,92,93]) %}
<a href="{{ path('default_doc_your_home') }}" class="menu__item {{ route in ['default_doc_your_home'] ? 'active' }}">Вызов врача на дом</a>
{% endif %}
<a href="{{ path('default_info') }}" class="menu__item {{ route in ['default_info'] ? 'active' }}">Налоговый вычет</a>
<a href="{{ path('default_price') }}" class="menu__item {{ route in ['default_price'] ? 'active' }}">Услуги и цены</a>
<a href="{{ path('default_info') }}" class="menu__item {{ route in ['default_info'] ? 'active' }}">Информация</a>
<a href="{{ path('default_help') }}" class="menu__item {{ route in ['default_help'] ? 'active' }}">Помощь</a>
<a id="btn-callback-clinic" href="#" class="menu__item" >Позвонить в клинику</a>
</nav>
</div>
{% if (isMobile() == false) %}
</div>
{% endif %}
+4
View File
@@ -0,0 +1,4 @@
<form method="post" action="{{ path('page_delete', {'id': page.id}) }}" onsubmit="return confirm('Are you sure you want to delete this item?');">
<input type="hidden" name="_token" value="{{ csrf_token('delete' ~ page.id) }}">
<button class="btn">Delete</button>
</form>
+5
View File
@@ -0,0 +1,5 @@
{% form_theme form 'bootstrap_4_layout.html.twig' %}
{{ form_start(form) }}
{{ form_widget(form) }}
<button class="btn">{{ button_label|default('Save') }}</button>
{{ form_end(form) }}
+13
View File
@@ -0,0 +1,13 @@
{% extends 'admin_base.html.twig' %}
{% block title %}Edit Page{% endblock %}
{% block body %}
<h1>Edit Page</h1>
{{ include('page/_form.html.twig', {'button_label': 'Update'}) }}
<a href="{{ path('page_index') }}">back to list</a>
{{ include('page/_delete_form.html.twig') }}
{% endblock %}
+43
View File
@@ -0,0 +1,43 @@
{% extends 'admin_base.html.twig' %}
{% block title %}Page index{% endblock %}
{% block body %}
<h1>Page index</h1>
<table class="table">
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>Description</th>
<th>Active</th>
<th>Alias</th>
<th>actions</th>
</tr>
</thead>
<tbody>
{% for page in pages %}
<tr>
<td>{{ page.id }}</td>
<td>{{ page.name }}</td>
<td>{{ page.description }}</td>
<td>{{ page.active ? 'Yes' : 'No' }}</td>
<td>{{ page.alias }}</td>
<td>
<a href="{{ path('page_show', {'alias': page.alias}) }}">show</a>
<a href="{{ path('page_edit', {'id': page.id}) }}">edit</a>
</td>
</tr>
{% else %}
<tr>
<td colspan="6">no records found</td>
</tr>
{% endfor %}
</tbody>
</table>
<a href="{{ path('page_new') }}">Create new</a>
<br>
<a href="{{ path('category_page_index') }}">Все категории</a>
{% endblock %}
+11
View File
@@ -0,0 +1,11 @@
{% extends 'admin_base.html.twig' %}
{% block title %}New Page{% endblock %}
{% block body %}
<h1>Create new Page</h1>
{{ include('page/_form.html.twig') }}
<a href="{{ path('page_index') }}">back to list</a>
{% endblock %}
+7
View File
@@ -0,0 +1,7 @@
{% extends 'base_widget.html.twig' %}
{% block title %}{{ page.name }}{% endblock %}
{% block body %}
{{ page.description | raw}}
{% endblock %}
+3
View File
@@ -0,0 +1,3 @@
{% form_theme form 'bootstrap_4_layout.html.twig' %}
{{ form_start(form) }}
{{ form_end(form) }}
+10
View File
@@ -0,0 +1,10 @@
{% extends 'base.html.twig' %}
{% block title %}{{ title }}{% endblock %}
{% block body %}
<div class="def" data-controller="report">
<canvas id="myChart" width="600" height="400"></canvas>
</div>
{% endblock %}
@@ -0,0 +1,4 @@
<form method="post" action="{{ path('app_review_source_delete', {'id': review_source.id}) }}" onsubmit="return confirm('Are you sure you want to delete this item?');">
<input type="hidden" name="_token" value="{{ csrf_token('delete' ~ review_source.id) }}">
<button class="btn">Delete</button>
</form>
+5
View File
@@ -0,0 +1,5 @@
{% form_theme form 'bootstrap_4_layout.html.twig' %}
{{ form_start(form) }}
{{ form_widget(form) }}
<button class="btn">{{ button_label|default('Save') }}</button>
{{ form_end(form) }}
+13
View File
@@ -0,0 +1,13 @@
{% extends 'admin_base.html.twig' %}
{% block title %}Edit ReviewSource{% endblock %}
{% block body %}
<h1>Edit ReviewSource</h1>
{{ include('review_source/_form.html.twig', {'button_label': 'Update'}) }}
<a href="{{ path('app_review_source_index') }}">back to list</a>
{{ include('review_source/_delete_form.html.twig') }}
{% endblock %}
+42
View File
@@ -0,0 +1,42 @@
{% extends 'admin_base.html.twig' %}
{% block title %}ReviewSource index{% endblock %}
{% block body %}
<h1>ReviewSource index</h1>
<table class="table">
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>CountRow</th>
<th>Rating</th>
<th>Filial</th>
<th>Active</th>
<th>actions</th>
</tr>
</thead>
<tbody>
{% for review_source in review_sources %}
<tr>
<td>{{ review_source.id }}</td>
<td>{{ review_source.name }}</td>
<td>{{ review_source.countRow }}</td>
<td>{{ review_source.rating }}</td>
<td>{{ review_source.filial.address }}</td>
<td>{{ review_source.active }}</td>
<td>
<a href="{{ path('app_review_source_edit', {'id': review_source.id}) }}">edit</a>
</td>
</tr>
{% else %}
<tr>
<td colspan="6">no records found</td>
</tr>
{% endfor %}
</tbody>
</table>
<a href="{{ path('app_review_source_new') }}">Create new</a>
{% endblock %}
+11
View File
@@ -0,0 +1,11 @@
{% extends 'admin_base.html.twig' %}
{% block title %}New ReviewSource{% endblock %}
{% block body %}
<h1>Create new ReviewSource</h1>
{{ include('review_source/_form.html.twig') }}
<a href="{{ path('app_review_source_index') }}">back to list</a>
{% endblock %}
+46
View File
@@ -0,0 +1,46 @@
{% extends template ~ '.html.twig' %}
{% block title %}
{% if app.request.get('tab') == 'allTest' %}
Результаты анализов
{% else %}
{{ title }}
{% endif %}
{% endblock %}
{% block body %}
<div class="row">
<div class="col-12">
<div id="security-card" data-controller="securityCard">
{% if(isMobile()) %}
<div class="form-group">
<select class="form-control" id="security-tabs">
<option value="all">Всё документы</option>
<option value="allTest">Результаты анализов</option>
<option value="referrals">Направления</option>
</select>
</div>
{% else %}
<div id="security-tabs" class="tabs">
<a data-allow-target="all" class="tab-item tab-item--active">Все документы</a>
<a data-allow-target="allTest" class="tab-item">Результаты анализов</a>
<a data-allow-target="referrals" class="tab-item">Направления</a>
</div>
{% endif %}
<div class="load mt-3">Загрузка данных</div>
<div class="section-wrap d-none"></div>
</div>
</div>
</div>
<br>
{% endblock %}
+81
View File
@@ -0,0 +1,81 @@
{% extends template ~ '.html.twig' %}
{% block title %}{{ title }}{% endblock %}
{% block body %}
<div class="row">
<div class="col-12" >
<div id="security-record" data-controller="caseHistory">
{% if(isMobile()) %}
<div class="form-group">
<select class="form-control" id="security-tabs">
<option data-alert="false" value="true">Ближайшие записи на прием</option>
<option data-alert="true" value="false">История записей</option>
</select>
</div>
{% else %}
<div id="security-tabs" class="tabs">
<a class="tab-item tab-item--active" data-alert="false" data-allow-remove="true">Ближайшие записи на прием</a>
<a class="tab-item" data-alert="true" data-allow-remove="false">История записей</a>
</div>
{% endif %}
<br>
<div id="alert-case-history-info" class="alert alert-dismissible fade show alert-info d-none" role="alert">
<div class="alert-msg">Для возврата средств по онлайн-консультированию нажмите кнопку "вернуть оплату" и следуйте дальнейшим инструкциям<br>
Если Вы не видите в истории записи оплаченную, но не состоявшуюся запись - для возврата перейдите в раздел "Помощь" и оставьте заявку на возврат через кнопку "Техническая поддержка"
</div>
</div>
<div class="load">Загрузка данных</div>
<div class="section-wrap">
<div class="staff-block block-content block-item item-record d-none">
<div class="staff-block__main">
<a href="/" class="staff-block__img img-vr" style="background: url('/images/no_img.png') center -5px / cover;"></a>
<div class="staff-block__info staff-info">
<a href="#" class="staff-info__name specialist link-specialist"></a>
<div class="staff-info__position position"></div>
<div class="staff-info__param d-none kinder">Приём детей с <span class="val"></span></div>
<div class="staff-info__param d-none expirience">Опыт работы <span class="val"></span></div>
<a href="#" class="staff-info__review">&nbsp;{# Отзывы #}</a>
</div>
</div>
<div class="staff-info__visit visit">
<div class="visit__info">
<div class="visit__time">Ваша запись: <br> <span class="month"></span>, <span class="date"></span></div>
<a href="#" class="visit__cancel btn-close">Отменить</a>
</div>
<div class="visit__bottom">
<div class="visit__place address"></div>
<div class="visit__place accept"></div>
<div class="d-inline">
<button class="card-item__btn button d-none btn-pay disabled" disabled>Оплатить <span class="amt">0</span> ₽</button>
<button class="card-item__btn button d-none btn-conference">Онлайн прием</button>
<button class="card-item__btn button d-none btn-cash-back" data-action="click->caseHistory#cashBack">
Вернуть оплату
</button>
<div class="col-12 d-none online-warning">
<small class="text-danger">Чтобы активировать кнопку оплаты, подтвердите согласие.</small>
</div>
</div>
<div class="visit__btns pull-right mt-mb-3">
<a href="#" class="staff-info__review mr-2 link-specialist">Повторить запись</a>
{# <div class="calendar-btn">добавить в календарь</div> #}
<div data-controller='favorites' class="section-favorite d-block text-right mr-3">
<i class="fa fa-bookmark d-none dislike" aria-hidden="true">
<span class="dislike" aria-hidden="true"> В моих врачах</span>
</i>
<i class="fa fa-bookmark-o like" aria-hidden="true">
<span class="like" aria-hidden="true"> В избранное</span>
</i>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
+27
View File
@@ -0,0 +1,27 @@
{% extends template ~ '.html.twig' %}
{% block title %}Confirm{% endblock %}
{% block body %}
{% for flashError in app.flashes('verify_email_error') %}
<div class="alert alert-danger" role="alert">{{ flashError }}</div>
{% endfor %}
<h1>Confirm</h1>
{{ form_start(form) }}
{{ form_errors(form) }}
{{ form_row(form._token) }}
<div class="form-group">
{{ form_label(form.smsCode, 'smsCode') }}
{{ form_widget(form.smsCode, {'attr': {'class': 'form-control'}}) }}
<div class="form-error">
{{ form_errors(form.smsCode) }}
</div>
</div>
<button class="btn btn-primary">Confirm</button>
{{ form_end(form) }}
{% endblock %}
+105
View File
@@ -0,0 +1,105 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{% block title %}{{ title }}{% endblock %}</title>
{% block js %}
<script id="smartCaptcha" src="https://smartcaptcha.yandexcloud.net/captcha.js"></script>
{% endblock %}
{% block stylesheets %}
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/jpg" href="/favicon_sovamed.ico" />
{{ encore_entry_link_tags('app_sovamed') }}
{% endblock %}
{% block javascripts %}
{{ encore_entry_script_tags('app_sovamed') }}
{% endblock %}
</head>
<body>
<div class="container login-page" data-controller="signin">
<div class="content-fluid auth border-radius py-3 px-5 h-100">
<div class="row justify-content-md-center h-100">
<div class="col-md-4">
{% if (isMobile()) %}
<div class="row">
<div class="col-6">
<a href="{{ path('default_index') }}">
<img src="/images/mobile-logo.svg" class="mobile-logo" alt="Семья многопрофильных клиник">
</a>
</div>
<div class="col-6">
<p class="pull-right">
<span data-toggle="modal" data-target="#chengeRegion" class="city pr-2" id="regionName">Саратов</span>
</p>
</div>
</div>
{% else %}
<a href="{{ path('default_index') }}">
<img src="/images/logo.svg" class="logo mb-5" alt="Семья многопрофильных клиник">
</a>
{% endif %}
</div>
<div class="col-md-4 h-md-100">
<div class="row align-items-center h-md-100">
<div class="col-12 p-0">
<div class="hello-text">
Добро пожаловать <br>
в личный кабинет <br>
пациента сети клиник «СОВА»
</div>
<br>
<a type="button" data-action="signin#login" class="btn login-btn login-btn--bold-border my-1 w-100 py-3">Войти и записаться на прием</a>
<a class="btn login-btn login-btn--bold-border my-1 w-100 py-3" href="{{ path('specialist_index', {'alias': alias}) }}">Запись без авторизации</a>
<button class="btn login-btn login-btn--bold-border my-1 w-100 py-3" data-action="signin#login" type="button">Результаты анализов</button>
<br>
{% if (isMobile()) %}
<a type="button" data-action="signin#login" class="btn login-btn login-btn--bold-border py-3 w-100 auth-btn">Войти в кабинет</a>
<a type="button" data-action="signin#esia" class="btn login-btn login-btn--bold-border py-3 w-100 auth-btn">Войти через Госуслуги</a>
<a href="{{ path('security_reg') }}" class="btn login-btn login-btn--bold-border py-3 w-100 auth-btn">Регистрация</a>
<br>
{% endif %}
<a class="btn login-btn my-1 w-100 py-3" href="{{ path('default_price') }}">Услуги и цены</a>
<a class="btn login-btn my-1 w-100 py-3" href="{{ path('default_info') }}">Информация</a>
<a class="btn login-btn my-1 w-100 py-3" href="{{ path('default_help') }}">Помощь</a>
</div>
</div>
</div>
{% if (isMobile() == false) %}
<div class="col-md-4 text-right">
<span data-toggle="modal" data-target="#chengeRegion" class="city pr-2" id="regionName">Саратов</span>
<div class="auth-btns">
<a type="button" data-action="signin#login" class="auth-btn">Войти в кабинет</a>
<br>
<a type="button" data-action="signin#esia" class="auth-btn">Войти через Госуслуги</a>
<br>
<a href="{{ path('security_reg') }}" class="auth-btn auth-btn--normal">Регистрация</a>
</div>
</div>
{% endif %}
</div>
</div>
</div>
<div class="modal fade" id="popup" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div id="popup-body" class="modal-body" data-csrf="{{ csrf_token('authenticate') }}"></div>
</div>
</div>
</div>
{{ include('_change_region.html.twig') }}
</body>
</html>
+104
View File
@@ -0,0 +1,104 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{% block title %}{{ title }}{% endblock %}</title>
{% block js %}
<script id="smartCaptcha" src="https://smartcaptcha.yandexcloud.net/captcha.js"></script>
{% endblock %}
{% block stylesheets %}
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/jpg" href="/favicon_wmtmed.ico" />
{{ encore_entry_link_tags('app_wmtmed') }}
{% endblock %}
{% block javascripts %}
{{ encore_entry_script_tags('app_wmtmed') }}
{% endblock %}
</head>
<body>
<div class="container login-page" data-controller="signin">
<div class="content-fluid auth border-radius py-3 px-5 h-100">
<div class="row justify-content-md-center h-100">
<div class="col-md-4">
{% if (isMobile()) %}
<div class="row">
<div class="col-6">
<a href="{{ path('default_index') }}">
<img src="/img/logo_wmt/mobile-logo.png" class="mobile-logo" alt="Сеть клиник «WMT»" width="35px">
</a>
</div>
<div class="col-6">
<p class="pull-right">
<span data-toggle="modal" data-target="#chengeRegion" class="city pr-2" id="regionName">Краснодар</span>
</p>
</div>
</div>
{% else %}
<a href="{{ path('default_index') }}">
<img src="/img/logo_wmt/logo.svg" class="logo mb-5" alt="Сеть клиник «WMT»" width="135px">
</a>
{% endif %}
</div>
<div class="col-md-4 h-md-100">
<div class="row align-items-center h-md-100">
<div class="col-12 p-0">
<div class="hello-text">
Добро пожаловать <br>
в личный кабинет <br>
пациента клиники «WMT»
</div>
<br>
<a type="button" data-action="signin#login" class="btn login-btn login-btn--bold-border my-1 w-100 py-3">Войти и записаться на прием</a>
<a class="btn login-btn login-btn--bold-border my-1 w-100 py-3" href="{{ path('specialist_index') }}">Запись без авторизации</a>
<button class="btn login-btn login-btn--bold-border my-1 w-100 py-3" data-action="signin#login" type="button">Результаты анализов</button>
<br>
{% if (isMobile()) %}
<a type="button" data-action="signin#login" class="btn login-btn login-btn--bold-border py-3 w-100 auth-btn">Войти в кабинет</a>
<a type="button" data-action="signin#esia" class="btn login-btn login-btn--bold-border py-3 w-100 auth-btn">Войти через Госуслуги</a>
<a href="{{ path('security_reg') }}" class="btn login-btn login-btn--bold-border py-3 w-100 auth-btn">Регистрация</a>
<br>
{% endif %}
<a class="btn login-btn my-1 w-100 py-3" href="{{ path('default_price') }}">Услуги и цены</a>
<a class="btn login-btn my-1 w-100 py-3" href="{{ path('default_info') }}">Информация</a>
<a class="btn login-btn my-1 w-100 py-3" href="{{ path('default_help') }}">Помощь</a>
</div>
</div>
</div>
{% if (isMobile() == false) %}
<div class="col-md-4 text-right">
<span data-toggle="modal" data-target="#chengeRegion" class="city pr-2" id="regionName">Краснодар</span>
<div class="auth-btns">
<a type="button" data-action="signin#login" class="auth-btn">Войти в кабинет</a>
<br>
<a type="button" data-action="signin#esia" class="auth-btn">Войти через Госуслуги</a>
<br>
<a href="{{ path('security_reg') }}" class="auth-btn auth-btn--normal">Регистрация</a>
</div>
</div>
{% endif %}
</div>
</div>
</div>
<div class="modal fade" id="popup" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div id="popup-body" class="modal-body" data-csrf="{{ csrf_token('authenticate') }}"></div>
</div>
</div>
</div>
{{ include('_change_region.html.twig') }}
</body>
</html>
+53
View File
@@ -0,0 +1,53 @@
{% extends template ~ '.html.twig' %}
{% block title %}{{ title }}{% endblock %}
{% block bonusWidget %}
<div class="sova-bonus-line">
{% if isShowInRegion([91,92,93]) %}
<img class="sova-bonus-line__logo" src="img/sova-bonus-logo.svg" />
{% endif %}
<div class="sova-bonus-line__text">бонусов на счете: <span id="bonus-widget">0</span></div>
</div>
{% endblock %}
{% block body %}
{% if app.request.get('pay') is not null %}
{% if app.request.get('pay') is defined and app.request.get('pay') == 'true' %}
<div class="alert alert-success alert-dismissible fade show" role="alert">
Спасибо! <br>Оплата прошла успешно. <br>Текущий статус платежей доступен в разделе "Финансы"
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
{% else %}
<div class="alert alert-danger alert-dismissible fade show" role="alert">
Ошибка платежа! <br>К сожалению, возникла ошибка проведения платежа, просьба повторить его чуть позже.
<br>Вы можете связаться с нами по вопросам оплаты через раздел "Помощь"
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
{% endif %}
{% endif %}
<div id="security-payment" data-controller="payment">
<div class="main payment-wrap">
<div class="finance block-content payment-item d-none">
<div class="finance__date"><span class="month"></span>, <span class="date"></span></div>
<div class="finance__name comment"></div>
<div class="finance__bill">
Счет № <span class="pay-id"></span>
от <span class="pay-date"></span>
<br> <span class="service"></span>
</div>
<div class="finance__staff">Специалист: <br> <span class="specialist"></span></div>
<div class="finance__filial address"></div>
<div class="pay">
<button class="finance__btn button-revers d-none">Оплатить&nbsp;<span class="amt">0</span>&nbsp;₽</button>
<div class="finance__price price d-none">Оплачено&nbsp;<span class="amt">0</span>&nbsp;₽</div>
</div>
</div>
</div>
</div>
{% endblock %}
+28
View File
@@ -0,0 +1,28 @@
{% extends template ~ '.html.twig' %}
{% block title %}{{ title }}{% endblock %}
{% block body %}
<div id="refferals-list">
<div class="row">
<div class="col-12 refferals-wrap">
<div class="block-item p-4 refferals-item d-none">
<div class="row">
<div class="col-6">
<p><b><span class="month"></span>, <span class="date"></span></b></p>
<p class="refname"></p>
<p class="fromfname"></p>
</div>
<div class="col-6">
<p class="refcomment"></p>
<p>Специалист: <br>
<span class="fromdname"></span>
</p>
<p class="refstatusname"></p>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
+76
View File
@@ -0,0 +1,76 @@
{% extends 'base_pdf.html.twig' %}
{% block head %}
<table border="0" cellpadding="0" cellspacing="0" style="width: 210mm;">
<tbody>
<tr>
<td colspan="2" rowspan="1" style="padding-bottom: 15px;">Распечатайте, подпишите и пришлите фото со своей почты на почту: {{ to_email }}</td>
</tr>
</tbody>
</table>
{% endblock %}
{% block body %}
<table border="0" cellpadding="0" cellspacing="0" style="width: 210mm;">
<tbody>
<tr>
<td rowspan="10" style="vertical-align: top;">&nbsp;</td>
</tr>
<tr>
<td style="width:40%; padding-top: 5px;">Генеральному директору {{ company_name }}</td>
</tr>
<tr>
<td style="width:40%; padding-top: 5px;">{{ company_director }}</td>
</tr>
<tr>
<td style="width:40%; padding-top: 5px;">От: {{ fio }}</td>
</tr>
<tr>
<td style="width:40%; padding-top: 5px;">Паспорт: серия {{ passport_serial }} номер {{ passport_number }}</td>
</tr>
<tr>
<td style="width:40%; padding-top: 5px;">Выдан: {{ passport_issued }}</td>
</tr>
<tr>
<td style="width:40%; padding-top: 5px;">Дата выдачи: {{ passport_date }} г.</td>
</tr>
<tr>
<td style="width:40%; padding-top: 5px;">Проживающий по адресу: {{ address }}</td>
</tr>
<tr>
<td style="width:40%; padding-top: 5px;">Телефон: {{ phone }}</td>
</tr>
<tr>
<td style="width:40%; padding-top: 5px;">Email: {{ email }}</td>
</tr>
<tr>
<td colspan="2" style="text-align:center; padding-top:80px; font-size: 18px;">
<b>Заявление</b> <br>о возврате денежных средств
</td>
</tr>
<tr>
<td colspan="2" style="padding-top:10px;">
Прошу вернуть мне денежные средства в размере {{ sum }} руб. ({{ amountInWords(sum) }})
оплаченные {{ refund_date }} г. за онлайн-консультацию.
</td>
</tr>
<tr>
<td colspan="2">
Основание возврата: {{ refund_bases }}
</td>
</tr>
<tr>
<td colspan="1"></td>
<td colspan="1" style="padding-top:80px;">
Дата {{ current_date|date('d.m.Y') }} г.
</td>
</tr>
</tbody>
</table>
<table border="0" cellpadding="0" cellspacing="0" style="width: 210mm;">
<tbody>
<tr>
<td colspan="2" rowspan="1" style="padding-top: 25px;">Распечатайте, подпишите и пришлите фото со своей почты на почту: {{ to_email }}</td>
</tr>
</tbody>
</table>
{% endblock %}
+38
View File
@@ -0,0 +1,38 @@
{% extends 'base_widget.html.twig' %}
{% block title %}refund{% endblock %}
{% block body %}
<div class="refund-wrapper">
<div class="alert alert-primary" role="alert">
Для возврата средств если консультация не состоялась: <br>
1. Заполните все поля в этой форме, <br>
2. Сформируйте заявление, распечатайте его, подпишите, сделайте фото и отправьте его со своего e-mail на адрес
{% set filial = app.request.get('filial') %}
{% if filial == 3 %}
<a href="mailto:vozvrat-vlg@sova.clinic">vozvrat-vlg@sova.clinic</a>
{% else %}
<a href="mailto:vozvrat@sova.clinic">vozvrat@sova.clinic</a>
{% endif %}
</div>
{% form_theme form 'bootstrap_4_layout.html.twig' %}
<form id="refund-form" action="/refund" method="post" target="_blank">
<input type="hidden" name="phone" id="refund_phone">
<input type="hidden" name="filial" id="refund_filial" value="{{ filial }}">
<input type="hidden" name="address" id="refund_address">
<input type="hidden" name="email" id="refund_email">
<input type="hidden" name="time" id="refund_time">
<input type="hidden" name="docName" id="refund_doc_name">
<input type="hidden" name="schedident" id="refund_schedident">
{{ form_widget(form) }}
<button class="btn btn-primary w-100" target="_blank">Готово</button>
</form>
</div>
{% endblock %}
+141
View File
@@ -0,0 +1,141 @@
{% extends template ~ '.html.twig' %}
{% block title %}Регистрация пациента{% endblock %}
{% block js %}
<script id="smartCaptcha" src="https://smartcaptcha.yandexcloud.net/captcha.js"></script>
{% endblock %}
{% block top %}
<div class="top-section">
<h1 class="title" id="page-title">{{ title }}</h1>
</div>
{% endblock %}
{% block body %}
<div data-controller="registration" id="register" class="form">
<div class="alert filter msg" role="alert">
Поля, обозначенные звездочкой (<span class="text-danger">*</span>), обязательны для заполнения
</div>
<div class="register-start">
<div class="form-group row">
<label for="phone" class="col-sm-3 col-form-label">Телефон<span class="text-danger">*</span></label>
<div class="col-sm-9">
<input type="text" class="form-control" id="phone" data-controller="inputMask">
<div class="msg-valid valid-phone"></div>
</div>
</div>
<div class="form-group row">
<div class="col-md-5 d-capcha-start"></div>
<div class="col-md-7 license"></div>
</div>
<button class="btn btn-outline-secondary submit-filter filter__btn submit-filter" data-action="registration#btnStart">Далее</button>
</div>
<div class="register-init d-none">
<div class="form-group row">
<label for="lastName" class="col-sm-3 col-form-label">Фамилия<span class="text-danger">*</span></label>
<div class="col-sm-9">
<input type="text" class="form-control" id="lastName">
<div class="msg-valid valid-lastName"></div>
</div>
</div>
<div class="form-group row">
<label for="firstName" class="col-sm-3 col-form-label">Имя<span class="text-danger">*</span></label>
<div class="col-sm-9">
<input type="text" class="form-control" id="firstName">
<div class="msg-valid valid-firstName"></div>
</div>
</div>
<div class="form-group row">
<label for="middleName" class="col-sm-3 col-form-label">Отчество<span class="text-danger">*</span></label>
<div class="col-sm-9">
<input type="text" class="form-control" id="middleName">
<div class="msg-valid valid-middleName"></div>
</div>
</div>
<div class="form-group row">
<label for="staticEmail" class="col-sm-3 col-form-label">Email<span class="text-danger">*</span></label>
<div class="col-sm-9">
<input type="email" class="form-control" id="email">
<div class="msg-valid valid-email">указывайте действующий e-mail, к&nbsp;которому привязан ваш аккаунт <br> на сайте Госуслуги</div>
</div>
</div>
<div class="form-group row">
<label for="birthDate" class="col-sm-3 col-form-label">Дата рождения<span class="text-danger">*</span></label>
<div class="col-sm-9">
<input type="text" class="form-control" id="birthDate" data-controller = 'datePicker' range = 'false'>
<div class="msg-valid valid-birthDate"></div>
</div>
</div>
<div class="form-group row">
<label class="col-sm-3 col-form-label">Пол<span class="text-danger">*</span></label>
<div class="col-sm-9">
<div class="form-check form-check-inline">
<input class="form-check-input gender" type="radio" name="gender" id="gender_0" value="1">
<label class="form-check-label" for="gender_0">
Мужской
</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input gender" type="radio" name="gender" id="gender_1" value="2">
<label class="form-check-label" for="gender_1">
Женский
</label>
</div>
<div class="msg-valid valid-gender"></div>
</div>
</div>
<div class="form-group row">
<div class="col-md-5 d-capcha-init"></div>
<div class="col-md-7 license"></div>
</div>
<button class="btn btn-back button d-inline" data-action="registration#btnBack">Назад</button>
<button class="btn btn-outline-secondary submit-filter filter__btn submit-filter d-inline" data-action="registration#btnReg">Регистрация</button>
</div>
<div class="register-complete d-none" data-r-token="null" data-pwd-token="null" data-type="null">
<div class="form-group row smsCode d-none">
<div class="col-12">
<div class="alert alertSmsCode filter" role="alert">
На номер телефона <span class="smsView"></span> был выслан код подтверждения. Введите его в поле "Код из SMS" и нажмите "Подтвердить" <br>
Введите пароль, который вы хотите использовать для входа в свой личный кабинет на сайте
</div>
</div>
<label for="smsCode" class="col-sm-2 col-form-label">Код из SMS<span class="text-danger">*</span></label>
<div class="col-sm-9">
<input type="text" class="form-control" id="smsCode">
<div class="msg-valid valid-smsCode"></div>
</div>
</div>
<div class="form-group row emailCode d-none">
<div class="col-12">
<div class="alert alertEmailView filter" role="alert">
На адрес <span class="emailView"></span> был выслан код подтверждения. Введите его в поле "Код из почты" и нажмите "Подтвердить" <br>
Введите пароль, который вы хотите использовать для входа в свой личный кабинет на сайте
</div>
</div>
<label for="emailCode" class="col-md-4 col-form-label">Код из почты<span class="text-danger">*</span></label>
<div class="col-md-8">
<input type="text" class="form-control" id="emailCode">
<div class="msg-valid valid-emailCode"></div>
</div>
</div>
<div class="form-group row">
<label for="password" class="col-md-4 col-form-label">Придумайте пароль<span class="text-danger">*</span></label>
<div class="col-sm-8">
<input type="password" class="form-control" id="password">
<div class="msg-valid valid-confirm valid-password">не менее 7 символов</div>
</div>
</div>
<div class="license"></div>
<button class="btn btn-back button d-inline" data-action="registration#btnBack">Назад</button>
<button class="btn button d-inline" data-action="registration#btnComplite">Подтвердить</button>
</div>
</div>
{% endblock %}
+42
View File
@@ -0,0 +1,42 @@
{% extends template ~ '.html.twig' %}
{% block title %}{{ title }}{% endblock %}
{% block body %}
<div class="row">
<div class="col-12" id="setting" data-controller="setting">
<div class="block-green p-4 mt-3">
<div class="form-group">
<label for="fullName">Пользователь</label>
<input type="text" value="{{ app.user.fullName }}" disabled="true" id="fullName" class="form-control">
</div>
<div class="form-group">
<label for="email">Email</label>
<input type="text" value="{{ app.user.email }}" disabled="true" id="email" class="form-control">
</div>
<div class="form-group">
<label for="phone">Телефон</label>
<input type="text" value="{{ app.user.phone }}" disabled="true" id="phone" class="form-control">
</div>
{{ form_start(form) }}
{{ form_errors(form) }}
{{ form_row(form._token) }}
<div class="form-group">
{{ form_label(form.plainPassword, 'Пароль') }}
{{ form_widget(form.plainPassword, {'attr': {'class': 'form-control'}}) }}
<div class="form-error">
{{ form_errors(form.plainPassword) }}
</div>
</div>
<div id="msg"></div>
<button type="button" class="btn btn-outline-secondary" data-action="setting#submit">Сохранить</button>
{{ form_end(form) }}
</div>
</div>
</div>
{% endblock %}
+36
View File
@@ -0,0 +1,36 @@
<div id="detail-specialist" class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-body">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<div class="modal-title popup__title">Полное расписание</div>
<div class="popup__content">
<div class="text-center loading d-none">
<img src="/images/eclipse.gif" alt="load">
</div>
<div class="popup-staff about-specialist d-none">
<a href="#" class="popup-staff__img"></a>
<div class="popup-staff__info">
<a href="#" class="popup-staff__name"></a>
<div class="popup-staff__position"></div>
<div class="popup-staff__exp"></div>
</div>
</div>
<div class="current-dates mb-3"></div>
<div class="popup-inteval calendar-wrap">
<div class="calendar-body popup-inteval__item"></div>
</div>
<div class="popup-btns mt-3">
<button class="popup-btn button btn-prev">Предыдущая неделя</button>
<button class="popup-btn button btn-next">Следующая неделя</button>
</div>
</div>
</div>
</div>
</div>
</div>
+208
View File
@@ -0,0 +1,208 @@
{% set onlineMode = 0 %}
{% set href = path('specialist_show', {'alias': specialist.alias}) %}
{% if app.request.attributes.get('_route') in ['specialist_online_index'] %}
{% set onlineMode = 1 %}
{% set href = path('specialist_show', {'alias': specialist.alias, 'specialist_search' : { 'onlineMode': onlineMode }}) %}
{% endif %}
{% if app.request.get('specialist_search')['onlineMode'] is defined and app.request.get('specialist_search')['onlineMode'] == 1 %}
{% set onlineMode = 1 %}
{% set href = path('specialist_show', {'alias': specialist.alias, 'specialist_search' : { 'onlineMode': onlineMode }}) %}
{% endif %}
{% set specialistMore = specialist.specialistMore %}
<div class="block-item staff-block block-content">
<div class="staff-block__main">
{% if link %}
<a href="{{ href }}" class="staff-block__img" style="
background: url(https://api.sovamed.ru/specialist/picture/{{ specialist.img }}) no-repeat;
background-size: cover;
background-position: center 0px;
"></a>
{% else %}
<span class="staff-block__img" style="
background: url(https://api.sovamed.ru/specialist/picture/{{ specialist.img }}) no-repeat;
background-size: cover;
background-position: center 0px;
"></span>
{% endif %}
<div class="staff-block__info staff-info">
{% if link %}
<a class="staff-info__name" href="{{ href }}">
{{ specialist.fio[0] }} <br>
{{ specialist.fio[1] }}&nbsp;
{% if specialist.fio[2] is defined %}
{{ specialist.fio[2] }}
{% endif %}
</a>
{% else %}
<p class="staff-info__name">
{{ specialist.fio[0] }} <br>
{{ specialist.fio[1] }}&nbsp;
{% if specialist.fio[2] is defined %}
{{ specialist.fio[2] }}
{% endif %}
</p>
{% endif %}
{% autoescape %}
<div class="staff-info__position">{{ specialist.speciality }}</div>
{% if specialist.degree is defined and specialist.degree is not null %}
<div class="staff-info__param">
{{ specialist.degree }}
</div>
{% endif %}
{% if specialist.kinder is defined and specialist.kinder is not null %}
<div class="staff-info__param">
Приём детей с {{ specialist.kinder }} {{ textYear(specialist.kinder, false) }}
</div>
{% endif %}
{% if specialist.experience is defined and specialist.experience is not null %}
<div class="staff-info__param">
Опыт работы: {{ specialist.experience }} {{ textYear(specialist.experience, true) }}
</div>
{% endif %}
{% if specialist.category is defined and specialist.category is not null %}
<div class="staff-info__param">
Категория: {{ specialist.category }}
</div>
{% endif %}
{% if specialist.acceptsDms is defined and specialist.acceptsDms is not null %}
<div class="staff-info__param{% if not specialist.acceptsDms %} staff-info__param--dms-no{% endif %}">
{{ specialist.acceptsDms ? 'Принимает по ДМС' : 'Не принимает по ДМС' }}
</div>
{% endif %}
{% endautoescape %}
{% if specialistMore.hasReviews %}
<a href="{{ path('specialist_show', {'alias': specialist.alias, '_fragment': 'reviews'}) }}" class="staff-info__review">
Отзывы
</a>
{% endif %}
</div>
</div>
<div class="staff-info__time-list time-list" id="pcode" data-pcode="{{ csrf_token('send-veretify-sms') }}">
<div {% if specialist.isInfoclinica %}
data-controller='checkSchedule' data-id="{{ specialistMore.defaultLocation.dcode|default(0) }}:{{ onlineMode }}:{{ specialist.infoclinica }}"
{% endif %}>
{% set render = true %}
{% if specialistMore.locationsCount > 1 %}
<div class="filter__input-wrap">
{% if onlineMode and render %}
{% for location in specialistMore.locations %}
{% if location.onlineMode == 1 and render %}
{% set render = false %}
<div class="filter__select bg-address onlineMode">
<span value="{{ location.dcode }}:{{ location.filial }}:{{ location.department }}:1:{{ specialist.infoclinica }}">
Онлайн консультация
</span>
</div>
{% endif %}
{% endfor %}
{% else %}
<select data-controller='selectpicker' data-width="100%" class="filter__select select-schedule" style="padding-left: 10px;padding-right: 10px;">
{% for location in specialistMore.locations %}
<option value="{{ location.dcode }}:{{ location.filial }}:{{ location.department }}:0:{{ specialist.infoclinica }}">
{{ location.addressName }}: {{ location.name }}
</option>
{% endfor %}
</select>
{% endif %}
</div>
{% else %}
<div class="filter__input-wrap">
{% if specialistMore.defaultLocation.onlineMode|default(false) == true and onlineMode and render %}
{% set render = false %}
<div class="filter__select bg-address onlineMode">
<span value="{{ specialistMore.defaultLocation.dcode }}:{{ specialistMore.defaultLocation.filial }}:{{ specialistMore.defaultLocation.department }}:1:{{ specialist.infoclinica }}">
Онлайн консультация
</span>
</div>
{% else %}
<div class="filter__select bg-address">
<span value="{{ specialist.defaultLocation.dcode|default(0) }}:{{ specialist.defaultLocation.filial|default(0) }}:{{ specialist.defaultLocation.department|default(0) }}:0:{{ specialist.infoclinica }}">
{{ specialistMore.defaultLocation.addressName|default('null') }}
</span>
</div>
{% endif %}
</div>
{% endif %}
</div>
{% if specialist.infoclinica %}
<p class="time-list__title">Удобное время для записи: <span class="cdate">загружается</span></p>
{% else %}
<p class="time-list__title">Вы можете записаться, оставив заявку</p>
{% endif %}
<div class="time-intervals mt-3 mb-1">
{% if specialist.infoclinica %}
<div class="intervals time-list__intervals" id="{{ specialistMore.defaultLocation.dcode|default(0) }}:{{ onlineMode }}:{{ specialist.infoclinica }}">
<div class="intervals-wrap"></div>
<span
class="btn-show-specialist-detail show-specialist-detail"
data-address="{{ specialistMore.defaultLocation.address|default('') }}"
data-company="{{ specialistMore.defaultLocation.company|default('') }}"
data-onlineMode="{{ onlineMode }}"
data-departmentId="{{ specialistMore.defaultLocation.department|default(0) }}"
data-filialId="{{ specialistMore.defaultLocation.filial|default(0) }}"
data-specialistId="{{ specialistMore.defaultLocation.dcode|default(0) }}"
data-docName="{{ specialist.name|default('') }}"
data-controller="calendar"
data-comment="{{ specialist.name|default('') }}, {{ specialist.speciality|default('') }}"
>Все даты</span>
</div>
{% else %}
<div class="intervals time-list__intervals space-between">
<button
data-docName="{{ specialist.name|default('') }}"
data-address="{{ specialistMore.defaultLocation.address|default('') }}"
data-company="{{ specialistMore.defaultLocation.company|default('') }}"
data-comment="{{ specialist.name|default('') }}, {{ specialist.speciality|default('') }}"
class="btn-show-specialist-detail"
type="button"
data-controller="uslugi"
>Записаться</button>
</div>
{% endif %}
</div>
<div class="time-list__bottom">
{% set route = app.request.get('_route') %}
{% if isShowInRegion([91,92,93]) %}
{% if specialistMore.minPrice is not null and route != 'specialist_online_index' and onlineMode != 1 %}
<span class="time-list__price">Прием от {{ specialistMore.minPrice.priceInfo.price }} ₽</span>
{% else %}
<span class="time-list__price">&nbsp;</span>
{% endif %}
{% endif %}
<div data-controller='favorites' data-sid="{{ specialistMore.defaultLocation.dcode|default(0) }}" class="d-block text-right mr-3">
<i class="fa fa-bookmark d-none dislike" aria-hidden="true">
<span class="dislike" aria-hidden="true">
<span style="font-family: Circe;">
В моих врачах
</span>
</span>
</i>
<i class="fa fa-bookmark-o like like-btn" aria-hidden="true">
<span class="like" aria-hidden="true">
<span style="font-family: Circe;">
В избранное
</span>
</span>
</i>
</div>
</div>
</div>
</div>
+43
View File
@@ -0,0 +1,43 @@
{% if specialistMore.hasReviews %}
{% set reviews = specialistMore.reviews %}
<div id="reviews" data-controller="slideshow" class="owl-carousel owl-theme hide">
{% for index, review in reviews %}
<div class="staff-review slide">
{% if review.active == true %}
<h6><b>{{ review.author }}</b></h6>
<hr>
<div class="rating mb-2">
{% for i in 1..5 %}
{% if review.rating|float >= i %}
<i class="fa fa-star" aria-hidden="true"></i>
{% else %}
<i class="fa fa-star-o" aria-hidden="true"></i>
{% endif %}
{% endfor %}
</div>
{% autoescape 'html' %}
{% set message = minText(review.message) %}
{% if message.crop %}
<div id="crop-{{ review.id }}" class="crop-message">{{ message.text }}</div>
<div id="full-{{ review.id }}" class="full-message d-none">{{ review.message|striptags }}</div>
{% else %}
<div class="full-message">{{ message.text|striptags }}</div>
{% endif %}
{% if message.crop %}
<button class="btn-show show-msg mt-3" data-show-id="{{ review.id }}">весь отзыв</button>
{% endif %}
<p>Дата написания: {{ review.dateCreate|date('d.m.Y', timezone='Europe/Moscow') }}</p>
<a class="reviews-block__link" rel="nofollow" target="_blank" href="{{ review.source }}">
Перейти на отзыв с портала
</a>
{% endautoescape %}
{% endif %}
</div>
{% endfor %}
</div>
{% endif %}
@@ -0,0 +1,74 @@
<span class="filter__close">
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.9596 6.95962C12.2134 6.70578 12.2134 6.29422 11.9596 6.04038C11.7057 5.78654 11.2942 5.78654 11.0403 6.04038L11.9596 6.95962ZM6.04033 11.0404C5.78649 11.2942 5.78649 11.7058 6.04033 11.9596C6.29417 12.2135 6.70573 12.2135 6.95957 11.9596L6.04033 11.0404ZM6.95967 6.04038C6.70583 5.78654 6.29428 5.78654 6.04043 6.04038C5.78659 6.29422 5.78659 6.70578 6.04043 6.95962L6.95967 6.04038ZM11.0404 11.9596C11.2943 12.2135 11.7058 12.2135 11.9597 11.9596C12.2135 11.7058 12.2135 11.2942 11.9597 11.0404L11.0404 11.9596ZM11.0403 6.04038L6.04033 11.0404L6.95957 11.9596L11.9596 6.95962L11.0403 6.04038ZM6.04043 6.95962L11.0404 11.9596L11.9597 11.0404L6.95967 6.04038L6.04043 6.95962ZM15.85 9C15.85 12.7832 12.7832 15.85 9 15.85V17.15C13.5011 17.15 17.15 13.5011 17.15 9H15.85ZM9 15.85C5.21685 15.85 2.15 12.7832 2.15 9H0.85C0.85 13.5011 4.49888 17.15 9 17.15V15.85ZM2.15 9C2.15 5.21685 5.21685 2.15 9 2.15V0.85C4.49888 0.85 0.85 4.49888 0.85 9H2.15ZM9 2.15C12.7832 2.15 15.85 5.21685 15.85 9H17.15C17.15 4.49888 13.5011 0.85 9 0.85V2.15Z" fill="#8E8C8C"/>
</svg>
</span>
{{ form_start(searchForm, {'attr': {'data-controller': 'kinderFilter'}}) }}
<div class="filter__input-wrap">
{{ form_widget(searchForm.kinder, {'attr': {
'class': 'filter__select',
'data-controller' : 'selectpicker'
}}) }}
</div>
<div class="filter__input-wrap">
{{ form_widget(searchForm.order_by, {'attr': {'class': 'filter__select d-none'}}) }}
</div>
<div class="filter__input-wrap">
{{ form_widget(searchForm.name, {'attr': {'class': 'filter__select d-none'}}) }}
</div>
<div class="filter__input-wrap">
{{ form_widget(searchForm.department, {'attr': {
'class': 'filter__select',
'data-live-search': 'true',
'data-controller' : 'selectpicker'
}}) }}
</div>
<div class="filter__input-wrap">
{{ form_widget(searchForm.category, {'attr': {
'class': 'filter__select',
'data-live-search': 'true',
'data-controller' : 'selectpicker',
'data-placeholder': 'Категория'
}}) }}
</div>
<div class="filter__input-wrap">
{{ form_widget(searchForm.filial, {'attr': {
'class': 'filter__select selectpicker',
'data-controller' : 'selectpicker',
'data-placeholder': 'Все клиники'
}}) }}
</div>
<div class="filter__input-wrap" data-controller="quickDateRange">
{{ form_widget(searchForm.current_date, {'attr': {
'class': 'filter__input filter__input--date',
'data-controller': 'datePicker',
'data-quickDateRange-target': 'input',
'range': 'true',
'placeholder': 'Сегодня',
'autocomplete': 'off'
}}) }}
<div class="d-flex gap-2 mt-2">
<button
type="button"
class="btn btn-outline-secondary flex-fill submit-filter filter__btn"
data-action="click->quickDateRange#today"
>Сегодня</button>
<button
type="button"
class="btn btn-outline-secondary flex-fill submit-filter filter__btn"
data-action="click->quickDateRange#tomorrow"
>Завтра</button>
</div>
</div>
<div class="filter__input-wrap">
{{ form_widget(searchForm.onlineMode, {'attr': {'class': 'filter__checkbox'}}) }}
{{ form_label(searchForm.onlineMode, 'Онлайн консультация', {'label_attr': {'class': 'filter__checkbox-label'}}) }}
</div>
{{ form_row(searchForm._token) }}
<div class="text-center">
<button type="submit" class="btn btn-outline-secondary submit-filter filter__btn submit-filter">Найти</button>
</div>
{{ form_end(searchForm) }}
@@ -0,0 +1,5 @@
{% form_theme searchForm 'bootstrap_4_layout.html.twig' %}
{{ form_start(searchForm) }}
{{ form_widget(searchForm) }}
<button class="btn btn-primary">{{ button_label|default('Search') }}</button>
{{ form_end(searchForm) }}
@@ -0,0 +1,4 @@
<form method="post" action="{{ path('admin_toggle_location_status', {'id': location.id }) }}" onsubmit="return confirm('Are you sure you want to change status active this item?');">
<input type="hidden" name="_token" value="{{ csrf_token('toggle' ~ location.id) }}">
<button class="btn btn-primary mb-1">{{ location.active ? 'Disable' : 'Enable' }}</button>
</form>
+113
View File
@@ -0,0 +1,113 @@
{% extends 'admin_base.html.twig' %}
{% block title %}{{ title }}{% endblock %}
{% block body %}
<h1>{{ title }}</h1>
<div class="my-2">
{{ include('specialist/admin/_form.html.twig') }}
</div>
<table class="table">
<thead>
<tr>
<th>ID</th>
<th>FIO</th>
<th>Picture</th>
<th>Address</th>
<th>Department</th>
<th>Dcode or bitrixID</th>
<th>Active</th>
<th>Actions</th>
<th>Updated Location</th>
<th>Update</th>
</tr>
</thead>
<tbody>
{% for specialist in pagination %}
<tr span="5">
<td>{{ specialist.id }}</td>
<td>{{ specialist.name }}</td>
<td><a href="/specialist/picture/{{ specialist.id }}?size=1" target="_blank">show picture</a></td>
{% if specialist.locationAllCount > 0 %}
<td>
{% for location in specialist.locationAll %}
<p>{{ location.filial.address }}</p>
{% endfor %}
</td>
{% else %}
<td>there is no data</td>
{% endif %}
{% if specialist.locationAllCount > 0 %}
<td>
{% for location in specialist.locationAll %}
<p>{{ location.department.did }}</p>
{% endfor %}
</td>
{% else %}
<td>there is no data</td>
{% endif %}
{% if specialist.locationAllCount > 0 %}
<td>
{% for location in specialist.locationAll %}
<p>{{ location.dcode }}</p>
{% endfor %}
</td>
{% else %}
<td>there is no data</td>
{% endif %}
{% if specialist.locationAllCount > 0 %}
<td>
{% for location in specialist.locationAll %}
<p>{{ location.active ? 'on' : 'off' }}</p>
{% endfor %}
</td>
{% else %}
<td>there is no data</td>
{% endif %}
{% if specialist.locationAllCount == 0 %}
<td>disabled</td>
{% else %}
<td>
{% for location in specialist.locationAll %}
{{ include('specialist/admin/_toggle_form.html.twig') }}
{% endfor %}
</td>
{% endif %}
{% if specialist.locationAllCount > 0 %}
<td>
{% for location in specialist.locationAll %}
<p>{{ location.updated|date('d.m.Y') }}</p>
{% endfor %}
</td>
{% else %}
<td>there is no data</td>
{% endif %}
{% if specialist.updated is defined %}
<td>
<p>{{ specialist.updated|date('d.m.Y') }}</p>
</td>
{% else %}
<td>there is no data</td>
{% endif %}
</tr>
{% else %}
<tr>
<td colspan="6">no records found</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="d-block text-center">
{{ knp_pagination_render(pagination) }}
</div>
{% endblock %}
+73
View File
@@ -0,0 +1,73 @@
{% extends template ~ '.html.twig' %}
{% block title %} {{ title }} {% endblock %}
{% block js %}
<script id="smartCaptcha" src="https://smartcaptcha.yandexcloud.net/captcha.js"></script>
{% endblock %}
{% block filter %}
<div class="filter__title">Найти специалиста</div>
{{ include('specialist/_search_form.html.twig', {'searchForm': searchForm}) }}
{% endblock %}
{% block body %}
<div id="specialist" class="main">
{% if(isMobile() == false) %}
<div class="sort-block">
<div class="call-back">
Не нашли нужного врача?&nbsp;
<a href="#" data-controller="uslugi" data-company="">Оставьте заявку для записи</a>
</div>
<div class="sort-line" data-controller="searchOrderByInput">
<span id="sort-time" class="sort-line__item sort-line__item asc mx-2">
<i class="fa fa-sort-amount-asc d-none" aria-hidden="true"></i>
<i class="fa fa-sort-amount-desc d-none" aria-hidden="true"></i>
по времени приема
</span>
{# <span id="sort-price" class="mr-2 asc">
<i class="fa fa-sort-amount-asc d-none" aria-hidden="true"></i>
<i class="fa fa-sort-amount-desc d-none" aria-hidden="true"></i>
по стоимости приема
</span> #}
<span id="sort-abc" class="sort-line__item sort-line__item sort-line__item--active asc">
<i class="fa fa-sort-amount-asc" aria-hidden="true"></i>
<i class="fa fa-sort-amount-desc d-none" aria-hidden="true"></i>
по афавиту
</span>
</div>
</div>
{% else %}
<div class="mobile-actions">
<div class="sort-select-wrap">
<select class="form-control" data-controller="mobileSearchOrderByInput">
<option value="sort-time" class="acs">по времени приема</option>
<option value="sort-abc" class="acs">по афавиту</option>
</select>
</div>
<a href="#" data-controller="filterMenu" class="mobile-filter-btn">
<svg width="16" height="17" viewBox="0 0 16 17" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.3335 1.33325V0.683252C1.0972 0.683252 0.879525 0.811482 0.764979 1.01815C0.650432 1.22482 0.657063 1.47738 0.782297 1.67775L1.3335 1.33325ZM14.6668 1.33325L15.218 1.67775C15.3433 1.47738 15.3499 1.22482 15.2353 1.01815C15.1208 0.811482 14.9031 0.683252 14.6668 0.683252V1.33325ZM5.50016 7.99992H6.15016C6.15016 7.8781 6.11593 7.75872 6.05136 7.65542L5.50016 7.99992ZM10.5002 7.99992L9.94896 7.65542C9.8844 7.75872 9.85016 7.8781 9.85016 7.99992H10.5002ZM5.50016 12.9999H4.85016C4.85016 13.2461 4.98926 13.4712 5.20947 13.5813L5.50016 12.9999ZM10.5002 15.4999L10.2095 16.0813C10.411 16.182 10.6503 16.1713 10.8419 16.0528C11.0335 15.9344 11.1502 15.7252 11.1502 15.4999H10.5002ZM0.782297 1.67775L4.94896 8.34442L6.05136 7.65542L1.88469 0.988753L0.782297 1.67775ZM11.0514 8.34442L15.218 1.67775L14.1156 0.988753L9.94896 7.65542L11.0514 8.34442ZM4.85016 7.99992V12.9999H6.15016V7.99992H4.85016ZM5.20947 13.5813L10.2095 16.0813L10.7909 14.9185L5.79085 12.4185L5.20947 13.5813ZM11.1502 15.4999V7.99992H9.85016V15.4999H11.1502ZM1.3335 1.98325H14.6668V0.683252H1.3335V1.98325Z" fill="#005B33"/>
</svg>
фильтр
</a>
</div>
{% endif %}
<div class="specialist-items staff-block-wrap" data-controller="specialistView" data-st="{{ st|date('Y-m-d') }}" data-en="{{ en|date('Y-m-d') }}">
{% for specialist in pagination %}
{% include '/specialist/_item.html.twig' with {'link': true} %}
{% else %}
<p colspan="5">Не найдено, повторите поиск</p>
{% endfor %}
</div>
<div class="d-block text-center">
{{ knp_pagination_render(pagination) }}
</div>
</div>
{% include '/specialist/_calendar.html.twig' %}
{% endblock %}
+42
View File
@@ -0,0 +1,42 @@
{% extends template ~ '.html.twig' %}
{% block title %}{{ title }} - {{ specialist.name }}{% endblock %}
{% block js %}
<script id="smartCaptcha" src="https://smartcaptcha.yandexcloud.net/captcha.js"></script>
{% endblock %}
{% block body %}
<div class="main">
<div id="specialist">
<div class="block-title">{{ specialistMore.defaultLocation.address }}</div>
<div class="specialist-items" data-st="{{ st|date('Y-m-d') }}" data-en="{{ en|date('Y-m-d') }}" data-controller="specialistView">
{% include '/specialist/_item.html.twig' with {'link': false} %}
</div>
</div>
{% if isShowInRegion([91,92,93]) %}
{% if specialistMore.hasPrice %}
<br>
<div class="staff-detail block-content mb-0">
<h3>Стоимость</h3>
<ul>
{% for price in specialistMore.prices %}
<li>{{ price.schname }}{{ price.priceInfo.price }} ₽</li>
{% endfor %}
</ul>
</div>
{% endif %}
{% endif %}
<br>
<div class="staff-detail block-content mb-4">
{% autoescape 'html' %}
{{ specialist.description|raw }}
{% endautoescape %}
</div>
{% include '/specialist/_reviews.html.twig' %}
</div>
{% include '/specialist/_calendar.html.twig' %}
{% endblock %}
+100
View File
@@ -0,0 +1,100 @@
{% extends 'base_widget.html.twig' %}
{% block title %}Reference{% endblock %}
{% block body %}
{% set referer = app.request.get('ref')|default('/') %}
<div class="reference-wrapper" data-controller="reference" data-ref="{{ referer }}">
{% form_theme referenceForm 'bootstrap_4_layout.html.twig' %}
{{ form_start(referenceForm) }}
{{ form_row(referenceForm._token) }}
<div class="form-group mb-2">
{{ form_label(referenceForm.autorName, 'ФИО налогоплательщика:', {'label_attr': {'class': 'mb-0'}}) }}
{{ form_widget(referenceForm.autorName, {'attr': {'class': 'form-control'}}) }}
<div class="msg-valid valid-reference_autorName"></div>
</div>
<div class="form-group mb-2">
{{ form_label(referenceForm.phone, 'Телефон:', {'label_attr': {'class': 'mb-0'}}) }}
{{ form_widget(referenceForm.phone, {'attr': {
'class': 'form-control',
'data-controller': 'inputMask'
}}) }}
<div class="msg-valid valid-reference_phone"></div>
</div>
<div class="form-group mb-2">
{{ form_label(referenceForm.birthDate, 'Дата рождения налогоплательщика:', {'label_attr': {'class': 'mb-0'}}) }}
{{ form_widget(referenceForm.birthDate, {'attr': {
'class': 'form-control',
'data-controller': 'datePicker',
'range': 'false'
}}) }}
<div class="msg-valid valid-reference_birthDate"></div>
</div>
<div class="form-group mb-2">
{{ form_label(referenceForm.inn, 'ИНН налогоплательщика:', {'label_attr': {'class': 'mb-0'}}) }}
{{ form_widget(referenceForm.inn, {'attr': {'class': 'form-control'}}) }}
<div class="msg-valid valid-reference_inn"></div>
</div>
<div class="responsible_filials responsible_filial_0">
<div class="form-group mb-2">
{{ form_label(referenceForm.responsible, 'Получаю документы за:', {'label_attr': {'class': 'mb-0'}}) }}
{{ form_widget(referenceForm.responsible, {'attr': {
'class': 'reference-responsible form-control',
'data-count' : '0',
}}) }}
</div>
<div class="responsible_user"></div>
<div class="form-group mb-2">
{{ form_label(referenceForm.filial, 'Клиника, где оказывались услуги:', {'label_attr': {'class': 'mb-0'}}) }}
{{ form_widget(referenceForm.filial, {'attr': {
'class': 'reference-filial form-control',
}}) }}
<div class="msg-valid valid-reference_filial"></div>
</div>
<div class="form-group mb-2">
{{ form_label(referenceForm.periodFirst, 'Начало периода:', {'label_attr': {'class': 'mb-0'}}) }}
{{ form_widget(referenceForm.periodFirst, {'attr': {
'class': 'reference-period-first',
'type' : 'date',
'value' : "now"|date_modify("-1 year")|date("Y-01-01")
}}) }}
<div class="msg-valid valid-reference_period-first"></div>
</div>
<div class="form-group mb-2">
{{ form_label(referenceForm.periodLast, 'Конец периода:', {'label_attr': {'class': 'mb-0'}}) }}
{{ form_widget(referenceForm.periodLast, {'attr': {
'class': 'reference-period-last',
'type' : 'date',
'value' : "now"|date_modify("-1 year")|date("Y-12-31")
}}) }}
<div class="msg-valid valid-reference_period-last"></div>
</div>
</div>
<div class="form-group mb-2">
{{ form_label(referenceForm.sending, 'Пакет документов прошу выдать:', {'label_attr': {'class': 'mb-0'}}) }}
{{ form_widget(referenceForm.sending, {'attr': {
'class': 'reference-sending',
}}) }}
</div>
<div class="reference_sending">
<div class="filial-sending">
<div class="form-group mb-2">
{{ form_label(referenceForm.filialSending, 'Клиника, где получить справку:', {'label_attr': {'class': 'mb-0'}}) }}
{{ form_widget(referenceForm.filialSending, {'attr': {'class': 'form-control'}}) }}
<div class="msg-valid valid-reference_filialSending"></div>
</div>
</div>
<div class="postal"></div>
</div>
<div class="accept">
<div class="form-group">
<a class="staff-info__review license-link" href="{{ getPoliticaLink(regionId) }}" target="_blank">Отправляя данные, вы подтверждаете согласие на обработку персональных данных и принимаете условия политики их обработки</a>
</div>
</div>
<button type="button" class="submit btn btn-secondary">Подать заявку</button>
<button type="button" data-count="0" class="add-filial btn btn-outline-secondary">Добавить клинику</button>
{{ form_end(referenceForm) }}
</div>
{% endblock %}
+40
View File
@@ -0,0 +1,40 @@
{% extends 'base_widget.html.twig' %}
{% block title %}WidgetController{% endblock %}
{% block body %}
<div class="container-fluid">
<div class="review-source-wrapper row" data-controller="reviewSource">
{% for item in reviewSources %}
<div class="col-md-4">
<div class="row align-items-center">
<div class="col-4">
<img src="/img/logo/{{item.name}}.png" alt="{{item.name}}" width="100%">
</div>
<div class="col-8">
<div class="rating-widget-star mt-2">
{% for i in 1..5 %}
{% if item.rating_total|ceil >= i %}
{% if item.isFloat and item.rating_total|ceil == i %}
<i class="fa fa-star-half-o" aria-hidden="true"></i>
{% else %}
<i class="fa fa-star" aria-hidden="true"></i>
{% endif %}
{% else %}
<i class="fa fa-star-o" aria-hidden="true"></i>
{% endif %}
{% endfor %}
</div>
<p>
{% if item.count_row_total > 0 %}
<span>{{ item.count_row_total }} оценок.</span>
{% endif %}
<span>В среднем - {{ rFloat(item.rating_total) }}</span>
</p>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
{% endblock %}
@@ -0,0 +1,4 @@
<form method="post" action="{{ path('widget_form_delete', {'id': widget_form.id}) }}" onsubmit="return confirm('Are you sure you want to delete this item?');">
<input type="hidden" name="_token" value="{{ csrf_token('delete' ~ widget_form.id) }}">
<button class="btn">Delete</button>
</form>
+5
View File
@@ -0,0 +1,5 @@
{% form_theme form 'bootstrap_4_layout.html.twig' %}
{{ form_start(form) }}
{{ form_widget(form) }}
<button class="btn btn-primary">{{ button_label|default('Save') }}</button>
{{ form_end(form) }}
+13
View File
@@ -0,0 +1,13 @@
{% extends 'admin_base.html.twig' %}
{% block title %}Edit WidgetForm{% endblock %}
{% block body %}
<h1>Edit WidgetForm</h1>
{{ include('widget_form/_form.html.twig', {'button_label': 'Update'}) }}
<a href="{{ path('widget_form_index') }}">back to list</a>
{{ include('widget_form/_delete_form.html.twig') }}
{% endblock %}
+34
View File
@@ -0,0 +1,34 @@
{% extends 'admin_base.html.twig' %}
{% block title %}WidgetForm{% endblock %}
{% block body %}
<h1>{{ widget_form.name }}</h1>
<div class="row">
<div class="col-md-8">
<div class="jumbotron">
{% for input in form_input %}
<div class="form-group">
<label for="widget_form_{{ input.bitrix24Id }}">{{ input.text }}</label>
<a href="{{ path('widget_form_input_edit', {'id': input.id, 'formId': widget_form.id}) }}">Изменить</a>
{% if input.type == 'text' %}
<input class="form-control" type="text" id="{{ input.bitrix24Id }}">
{% elseif input.type == 'phone' %}
<input class="form-control" type="text" data-controller="inputMask" id="{{ input.bitrix24Id }}">
{% elseif input.type == 'date' %}
<input class="form-control" type="text" data-controller="datePicker" id="{{ input.bitrix24Id }}">
{% elseif input.type == 'textarea' %}
<textarea class="form-control" id="{{ input.bitrix24Id }}"></textarea>
{% endif %}
</div>
{% endfor %}
</div>
</div>
<div class="col-md-4">
<p>Добавить элемент</p>
{{ include('widget_form/_form.html.twig', {'button_label': 'Добавить поле'}) }}
</div>
</div>
<a href="{{ path('widget_form_index') }}">back to list</a>
{% endblock %}
+37
View File
@@ -0,0 +1,37 @@
{% extends 'admin_base.html.twig' %}
{% block title %}WidgetForm index{% endblock %}
{% block body %}
<h1>Виджет формы</h1>
<table class="table">
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>Link</th>
<th>actions</th>
</tr>
</thead>
<tbody>
{% for widget_form in widget_forms %}
<tr>
<td>{{ widget_form.id }}</td>
<td>{{ widget_form.name }}</td>
<td>{{ absolute_url(path('widget_form_show', {'id': widget_form.id})) }}</td>
<td>
<a href="{{ path('widget_form_editor', {'id': widget_form.id}) }}">настроить поля формы</a> <br>
<a href="{{ path('widget_form_edit', {'id': widget_form.id}) }}">редактировать форму</a>
</td>
</tr>
{% else %}
<tr>
<td colspan="3">no records found</td>
</tr>
{% endfor %}
</tbody>
</table>
<a href="{{ path('widget_form_new') }}">Create new</a>
{% endblock %}
+11
View File
@@ -0,0 +1,11 @@
{% extends 'admin_base.html.twig' %}
{% block title %}New WidgetForm{% endblock %}
{% block body %}
<h1>Create new WidgetForm</h1>
{{ include('widget_form/_form.html.twig') }}
<a href="{{ path('widget_form_index') }}">back to list</a>
{% endblock %}
+72
View File
@@ -0,0 +1,72 @@
{% extends 'base_widget.html.twig' %}
{% block title %}WidgetForm index{% endblock %}
{% block js %}
<script src="https://smartcaptcha.yandexcloud.net/captcha.js"></script>
{% endblock %}
{% block body %}
{% if renderForm %}
<form id="wf_cabinet_{{ widget_form.id }}" action="{{ path('widget_form_show', {'id': widget_form.id}) }}" method="POST">
{% set query = app.request.query.all %}
{% for key, queryParam in query %}
{% if key == 'fields' %}
{% for field, val in queryParam %}
<input type="hidden" name="fields[{{ field }}]" value="{{ val }}">
{% endfor %}
{% endif %}
{% if key != 'hidden' and key != 'fields' %}
<input type="hidden" name="{{ key }}" value="{{ queryParam }}">
{% endif %}
{% endfor %}
<input id="wf_title" type="hidden" name="fields[TITLE]" value="{{ widget_form.name }}">
<input id="wf_currency_id" type="hidden" name="fields[CURRENCY_ID]" value="RUB">
{% for input in widget_form.widgetFormInputs %}
{% set hiddenVal = false %}
{% if query.hidden is defined and query.hidden[input.bitrix24Id] is defined %}
{% set hiddenVal = query.hidden[input.bitrix24Id] %}
{% endif %}
<div class="form-group">
{% if input.type == 'text' %}
{% if hiddenVal == false %}
{# <label for="wf_{{ input.bitrix24Id }}">{{ input.text }}</label> #}
<input class="form-control" type="text" name="fields[{{ input.bitrix24Id }}]" id="wf_{{ input.bitrix24Id }}" placeholder="{{ input.text }}" required>
{% else %}
<input class="form-control" type="hidden" name="fields[{{ input.bitrix24Id }}]" id="wf_{{ input.bitrix24Id }}" value="{{ hiddenVal }}">
{% endif %}
{% elseif input.type == 'phone' %}
{# <label for="wf_{{ input.bitrix24Id }}">{{ input.text }}</label> #}
<input class="form-control" type="text" name="fields[{{ input.bitrix24Id }}][][VALUE]" data-controller="inputMask" id="wf_{{ input.bitrix24Id }}" placeholder="{{ input.text }}" required>
<input type="hidden" name="fields[{{ input.bitrix24Id }}][][VALUE_TYPE]" value="MOBILE" required>
{% elseif input.type == 'date' %}
<label class="d-block" for="wf_{{ input.bitrix24Id }}">{{ input.text }}</label>
<input class="form-control" type="text" name="fields[{{ input.bitrix24Id }}]" data-controller="datePicker" id=" wf_{{ input.bitrix24Id }}" placeholder="{{ input.text }}" required>
{% elseif input.type == 'textarea' %}
{% if hiddenVal == false %}
{# <label for="wf_{{ input.bitrix24Id }}">{{ input.text }}</label> #}
<textarea class="form-control" id="wf_{{ input.bitrix24Id }}" name="fields[{{ input.bitrix24Id }}]" placeholder="{{ input.text }}" required></textarea>
{% else %}
<textarea class="form-control" id="wf_{{ input.bitrix24Id }}" name="fields[{{ input.bitrix24Id }}]">{{ hiddenVal }}</textarea>
{% endif %}
{% endif %}
</div>
{% endfor %}
<div class="form-group mb-0">
<a class="staff-info__review license-link" href="{{ getPoliticaLink(regionId) }}" target="_blank">Отправляя данные, вы подтверждаете согласие на обработку персональных данных и принимаете условия политики их обработки</a>
</div>
<div id="smart-captcha"></div>
<div class="form-group">
<button disabled type="submit" class="btn btn-primary form-control mt-3" data-controller="smartCaptcha" data-form-id="wf_cabinet_{{ widget_form.id }}" data-action="click->smartCaptcha#setYm">Отправить</button>
</div>
</form>
{% else %}
<div class="text-center">
<img src="/images/checkmark.png" width="150" alt="ok">
<p>Ваша заявка отправлена! <br> Мы свяжемся с Вами в ближайшее время.</p>
</div>
{% endif %}
{% endblock %}
@@ -0,0 +1,4 @@
<form method="post" action="{{ path('widget_form_input_delete', {'id': widget_form_input.id, 'formId': form_id}) }}" onsubmit="return confirm('Are you sure you want to delete this item?');">
<input type="hidden" name="_token" value="{{ csrf_token('delete' ~ widget_form_input.id) }}">
<button class="btn">Delete</button>
</form>
@@ -0,0 +1,6 @@
{% form_theme form 'bootstrap_4_layout.html.twig' %}
{{ form_start(form) }}
{{ form_widget(form) }}
<button class="btn btn-primary">{{ button_label|default('Save') }}</button>
{{ form_end(form) }}
@@ -0,0 +1,13 @@
{% extends 'admin_base.html.twig' %}
{% block title %}Edit WidgetFormInput{% endblock %}
{% block body %}
<h1>Edit WidgetFormInput</h1>
{{ include('widget_form_input/_form.html.twig', {'button_label': 'Update'}) }}
<a href="{{ path('widget_form_editor', {'id': widget_form_input.widgetForm.id}) }}">back to list</a>
{{ include('widget_form_input/_delete_form.html.twig', {'id': widget_form_input.id, 'form_id': widget_form_input.widgetForm.id}) }}
{% endblock %}
+11
View File
@@ -0,0 +1,11 @@
{% extends 'admin_base.html.twig' %}
{% block title %}New WidgetFormInput{% endblock %}
{% block body %}
<h1>Create new WidgetFormInput</h1>
{{ include('widget_form_input/_form.html.twig') }}
<a href="{{ path('widget_form_input_index') }}">back to list</a>
{% endblock %}