{% extends 'auth.html.twig' %}
{% form_theme form _self %}
{% block title %}Регистрация на ЭТП{% endblock %}
{% block body %}
<div class="container">
<div class="row justify-content-center">
<div class="col-md-6">
<div class="card mx-4">
<div class="card-body p-4">
{% include '_flashes.html.twig' %}
{% block form_errors %}
{% apply spaceless %}
{% if form.vars.errors|length > 0 %}
{% for error in form.vars.errors %}
<div class="invalid-feedback">
{{ error.message }}
</div>
{% endfor %}
{% endif %}
{% endapply %}
{% endblock form_errors %}
<h1>Регистрация на ЭТП</h1>
<hr/>
<a class="btn btn-link px-0" href="{{ path('app_login') }}">Есть учетная запись?</a>
{{ form_start(form, {'attr': {'id': 'signupForm'}}) }}
<div class="mb-3">
<label class="form-label mb-1" for="fieldEmail">Электронная почта</label>
{{ form_widget(form.email, {'attr': {'placeholder': 'Электронная почта'}}) }}
{{ form_errors(form.email) }}
</div>
<div class="mb-3">
<label class="form-label mb-1" for="fieldLogin">Логин</label>
{{ form_widget(form.login, {'attr': {'placeholder': 'Логин'}}) }}
{% if form.login.vars.errors|length > 0 %}
{{ form_errors(form.login) }}
{% else %}
<label style="font-size: 80%;">Логин должен содержать латинские строчные буквы или цифры, символ подчеркивания</label>
{% endif %}
</div>
<div class="mb-3">
<label class="form-label mb-1" for="fieldPassword">Пароль</label>
<div class="input-group">
{{ form_widget(form.plainPassword.first, {'attr': {'placeholder': 'Пароль'}}) }}
<button class="btn btn-outline-secondary toggle-password not-focus" data-target="#form_plainPassword_first" type="button">
<i class="fa fa-eye-slash"></i>
</button>
{{ form_errors(form.plainPassword.first) }}
</div>
<label style="font-size: 80%;">
Пароль должен содержать не менее 6 цифр или букв, символов
</label>
</div>
<div class="mb-3">
<label class="form-label mb-1" for="fieldPasswordRepeat">Повторите пароль</label>
<div class="input-group mb-3">
{{ form_widget(form.plainPassword.second, {'attr': {'placeholder': 'Повторите пароль'}}) }}
<button class="btn btn-outline-secondary toggle-password not-focus" data-target="#form_plainPassword_second" type="button">
<i class="fa fa-eye-slash"></i>
</button>
{{ form_errors(form.plainPassword.second) }}
</div>
</div>
<div class="mb-3">
Регистрируясь, я принимаю условия <a href="{{ privacyPolicyLink }}" target="_blank">Политики конфиденциальности.</a>
</div>
<div id="captcha-container" class="mb-3"></div>
<button type="submit" class="btn btn-block btn-primary no-loader-spinner" id="button-submit">Создать учетную запись</button>
{{ form_end(form) }}
</div>
</div>
</div>
</div>
</div>
<script src="https://smartcaptcha.yandexcloud.net/captcha.js?render=onload&onload=onloadFunction" defer></script>
<script>
const button = document.getElementById("button-submit");
document.addEventListener("DOMContentLoaded", function() {
document.getElementById("signupForm").addEventListener("submit", function (event) {
event.preventDefault();
button.disabled = true;
button.innerHTML = '<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span> Создание...';
let keySmartCaptchaStatus = "{{ keySmartCaptchaStatus }}"
if (keySmartCaptchaStatus === "on"){
if (!window.smartCaptcha) return;
window.smartCaptcha.execute();
}else{
callbackSmartCaptcha();
}
});
})
function onloadFunction() {
if (!window.smartCaptcha) {
return;
}
let test = ("{{ keySmartCaptchaTest }}" === "on") ? true : false;
const widgetId = window.smartCaptcha.render('captcha-container', {
sitekey: '{{ keySmartCaptchaClientKey }}',
invisible: true,
hl: "ru",
test: test,
webview: true,
shieldPosition: 'top-right',
callback: callback
});
window.smartCaptcha.subscribe(
widgetId,
'challenge-hidden',
() => {
button.disabled = false;
button.innerHTML = 'Создать учетную запись';
}
);
window.smartCaptcha.subscribe(
widgetId,
'javascript-error', (error) => {alert(error.message)}
);
}
function callback() {
callbackSmartCaptcha();
}
</script>
{% endblock %}
{% block javascripts %}
{{ parent() }}
{{ encore_entry_script_tags('user_signup') }}
{% endblock %}