Files
letro-authentication-service/templates/pages/register.html
2024-09-10 14:28:55 +02:00

99 lines
3.7 KiB
HTML

{#
Copyright 2024 New Vector Ltd.
Copyright 2021-2024 The Matrix.org Foundation C.I.C.
SPDX-License-Identifier: AGPL-3.0-only
Please see LICENSE in the repository root for full details.
-#}
{% extends "base.html" %}
{% block content %}
<header class="page-heading">
<div class="icon">
{{ icon.user_profile_solid() }}
</div>
<div class="header">
<h1 class="title">{{ _("mas.register.create_account.heading") }}</h1>
<p class="text">{{ _("mas.register.create_account.description") }}</p>
</div>
</header>
<section class="flex flex-col gap-6">
<form method="POST" class="cpd-form-root">
{% for error in form.errors %}
{# Special case for the captcha error, as we want to put it at the bottom #}
{% if error.kind != "captcha" %}
<div class="text-critical font-medium">
{{ errors.form_error_message(error=error) }}
</div>
{% endif %}
{% endfor %}
<input type="hidden" name="csrf" value="{{ csrf_token }}" />
{% call(f) field.field(label=_("common.username"), name="username", form_state=form) %}
<input {{ field.attributes(f) }} class="cpd-text-control" type="text" autocomplete="username" autocorrect="off" autocapitalize="none" required />
{% endcall %}
{% call(f) field.field(label=_("common.email_address"), name="email", form_state=form) %}
<input {{ field.attributes(f) }} class="cpd-text-control" type="email" autocomplete="email" required />
{% endcall %}
{% call(f) field.field(label=_("common.password"), name="password", form_state=form) %}
<input {{ field.attributes(f) }} class="cpd-text-control" type="password" autocomplete="new-password" required />
{% endcall %}
{% call(f) field.field(label=_("common.password_confirm"), name="password_confirm", form_state=form) %}
<input {{ field.attributes(f) }} class="cpd-text-control" type="password" autocomplete="new-password" required />
{% endcall %}
{% if branding.tos_uri %}
{% call(f) field.field(label=_("mas.register.terms_of_service", tos_uri=branding.tos_uri), name="accept_terms", form_state=form, inline=true, class="my-4") %}
<div class="cpd-form-inline-field-control">
<div class="cpd-checkbox-container">
<input {{ field.attributes(f) }} class="cpd-checkbox-input" type="checkbox" required />
<div class="cpd-checkbox-ui">
{{ icon.check() }}
</div>
</div>
</div>
{% endcall %}
{% endif %}
{{ captcha.form(class="mb-4 self-center") }}
{% for error in form.errors %}
{# Special case for the captcha error #}
{% if error.kind == "captcha" %}
<div class="text-critical font-medium text-center -mt-4 mb-4">
{{ errors.form_error_message(error=error) }}
</div>
{% endif %}
{% endfor %}
{{ button.button(text=_("action.continue")) }}
</form>
{% if next and next.kind == "continue_authorization_grant" %}
{{ back_to_client.link(
text=_("action.cancel"),
destructive=True,
uri=next.grant.redirect_uri,
mode=next.grant.response_mode,
params=dict(error="access_denied", state=next.grant.state)
) }}
{% endif %}
<div class="flex gap-1 justify-center items-center">
<p class="cpd-text-secondary cpd-text-body-md-regular">
{{ _("mas.register.call_to_login") }}
</p>
{% set params = next["params"] | default({}) | to_params(prefix="?") %}
{{ button.link_text(text=_("mas.register.sign_in_instead"), href="/login" ~ params) }}
</div>
</section>
{% endblock content %}