templates/packages/core/action/http/registration.html.twig line 1
{% extends 'packages/core/layout/base_public_half_sized.html.twig' %}{% form_theme form 'packages/core/form/bootstrap_5_layout.html.twig' %}{% trans_default_domain 'core@messages' %}{% block javascripts %}<script type="text/javascript">function onGoogleReCaptchaApiLoad() {let widgets = document.querySelectorAll('.js-google-recaptcha');for (let i = 0; i < widgets.length; i++) {renderReCaptcha(widgets[i]);}}function renderReCaptcha(widget) {let form = widget.closest('form');let widgetType = widget.getAttribute('data-type');let widgetParameters = {'sitekey': widget.getAttribute('data-site-key')};if (widgetType === 'invisible') {widgetParameters['callback'] = function () {form.submit()};widgetParameters['size'] = "invisible";}let widgetId = grecaptcha.render(widget, widgetParameters);if (widgetType === 'invisible') {bindChallengeToSubmitButtons(form, widgetId);}}function bindChallengeToSubmitButtons(form, reCaptchaId) {getSubmitButtons(form).forEach(function (button) {button.addEventListener('click', function (e) {e.preventDefault();grecaptcha.execute(reCaptchaId);});});}function getSubmitButtons(form) {let buttons = form.querySelectorAll('button, input');let submitButtons = [];for (let i= 0; i < buttons.length; i++) {let button = buttons[i];if (button.getAttribute('type') === 'submit') {submitButtons.push(button);}}return submitButtons;}</script><script type="text/javascript" src="https://www.google.com/recaptcha/api.js?onload=onGoogleReCaptchaApiLoad&render=explicit" async defer></script>{{ parent() }}{% endblock %}{% block title %}{{ 'title.registration'|trans }}{% endblock %}{% block content %}<formaction="{{ form.vars.action }}"method="{{ form.vars.method }}"class="form w-100"novalidate="novalidate"autocomplete="off">{% include 'packages/core/layout/fragments/_public_half_sized_header.html.twig' with {'header': 'header.registration'|trans,'subtitle': 'subtitle.registration'|trans} %}{{ form_errors(form) }}<div class="fv-row mb-7"><div class="form-floating">{{ form_widget(form.contact.firstName, { 'attr': { 'placeholder': 'placeholder.first_name'|trans } }) }}{{ form_label(form.contact.firstName, 'label.first_name'|trans) }}</div>{{ form_errors(form.contact.firstName) }}</div><div class="fv-row mb-7"><div class="form-floating">{{ form_widget(form.contact.lastName, { 'attr': { 'placeholder': 'placeholder.last_name'|trans } }) }}{{ form_label(form.contact.lastName, 'label.last_name'|trans) }}</div>{{ form_errors(form.contact.lastName) }}</div><div class="fv-row mb-7"><div class="form-floating">{{ form_widget(form.username, { 'attr': {'autocomplete': 'email','placeholder': 'placeholder.username'|trans,} }) }}{{ form_label(form.username, 'label.username'|trans) }}</div>{{ form_errors(form.username) }}</div><div class="fv-row mb-7" {{ stimulus_controller('core/password_meter') }}><div class="form-floating" {{ stimulus_controller('core/password_visibility') }} {{ stimulus_target('core/password_meter', 'inputWrapper') }}>{{ form_widget(form.password.first, { 'attr': {'autocomplete': 'new-password','placeholder': 'placeholder.password'|trans,'data-core--password-visibility-target': 'input','data-action': 'input->core--password-visibility#update'} }) }}{{ form_label(form.password.first, 'label.password'|trans) }}</div><div class="text-muted mt-3">{{ 'help.password.requirements'|trans }}</div>{{ form_errors(form.password.first) }}</div><div class="fv-row mb-7"><div class="form-floating" {{ stimulus_controller('core/password_visibility') }}>{{ form_widget(form.password.second, { 'attr': {'autocomplete': 'new-password','placeholder': 'placeholder.password_repeat'|trans,'data-core--password-visibility-target': 'input','data-action': 'input->core--password-visibility#update'} }) }}{{ form_label(form.password.second, 'label.password_repeat'|trans) }}</div>{{ form_errors(form.password.second) }}</div><div class="fv-row mb-8">{{ form_widget(form.consent, { 'attr': { 'checked': false }, 'label': 'label.registration_consent'|trans }) }}</div>{{ form_widget(form.recaptcha) }}<div class="d-grid mb-10"><button type="submit" id="kt_sign_up_submit" class="btn btn-primary">{{ 'action.register'|trans }}</button></div><div class="text-gray-500 text-center fs-11rem fw-semibold mb-7">{{ 'text.already_have_account'|trans }} <a href="{{ path('app_login') }}" class="link-primary btn-border-white fw-semibold">{{ 'action.login'|trans }}</a></div>{{ form_widget(form._token) }}</form>{% endblock %}