Files
ejabberd/priv/mod_invites/register.html
T
2026-03-06 15:18:25 +01:00

95 lines
6.3 KiB
HTML

{% extends "base_min.html" %}
{% block title %}{% if error %}{% trans "Registration Error" %}{% else %}{% blocktrans %}Register on {{ site_name }}{% endblocktrans %}{% endif %}{% endblock %}
{% block h1 %}{% block title %}{% endblock %}{% endblock %}
{% block form_class %}container col-md-8 col-md-offset-2 col-sm-8 cold-sm-offset-2 col-lg-6 col-lg-offset-3 mt-2 mt-md-5{% endblock %}
{% block content %}
<p>{% if app %}{% blocktrans with app_name=app.name %}<strong>{{ site_name }}</strong> is part of XMPP, a secure and decentralized messaging network. To begin chatting using <strong>{{ app_name }}</strong> you need to first register an account.{% endblocktrans %}{% else %}{% blocktrans %}<strong>{{ site_name }}</strong> is part of XMPP, a secure and decentralized messaging network. To begin chatting you need to first register an account.{% endblocktrans %}{% endif %}</p>
<p>{%if invite.inviter %}{% blocktrans with inviter=invite.inviter|user %}Creating an account will allow to communicate with <strong>{{ inviter }}</strong> and other people on <strong>{{ site_name }}</strong> and other services on the XMPP network.{% endblocktrans %}{% else %}{% blocktrans %}Creating an account will allow to communicate with other people on <strong>{{ site_name }}</strong> and other services on the XMPP network.{% endblocktrans %}{% endif %}</p>
{% if app %}{% if app.supports_preauth_uri %}
<div class="alert alert-info">
<p>{% blocktrans with app_name=app.name %}If you already have {{ app_name }} installed, we recommend that you continue the account creation process using the app by clicking on the button below:{% endblocktrans %}</p>
<p class="text-center h6">{% blocktrans with app_name=app.name %}{{ app_name }} already installed?{% endblocktrans %}</p>
<div class="text-center">
<a href="{{ uri }}"><button class="btn btn-secondary btn-sm">{% trans "Open the app" %}</button></a><br/>
<small class="text-muted">{% trans "This button works only if you have the app installed already!" %}</small>
</div>
<br/>
</div>
{% endif %}{% endif %}
<h2 class="card-title h5">{% trans "Create an account" %}</h2>
{%if error and error.class == 'undefined' %}<div class="alert alert-danger" role="alert">{{ error.text }}</div>{% endif %}
<form method="post" class="needs-validation" novalidate>
<div class="input-group mb-3">
<label for="user" class="col-md-4 col-lg-12 form-label">{% trans "Username" %}:</label>
<div class="col-md-8 col-lg-12">
<div class="input-group">
<input
type="text" name="user" class="form-control {% if error.class == 'username' %}is-invalid{% endif %}" aria-describedby="usernameHelp" tabindex="1"
required autofocus minlength="1" maxlength="30" length="30"{% if username %} value="{{ username }}"{% endif %}>
<div class="input-group-append">
<span class="input-group-text">@{{ domain }}</span>
</div>
<div class="invalid-feedback">
{% if error.class == 'username' %}{{ error.text }}{% else %}
{% blocktrans %}Please provide a valid username!{% endblocktrans %}{% endif %}
</div>
</div>
<small id="usernameHelp" class="d-block form-text text-muted">{% trans "Choose a username, this will become the first part of your new chat address." %}</small>
</div>
</div>
<div class="input-group mb-3">
<label for="password" class="col-md-4 col-lg-12 form-label col-form-label">{% trans "Password" %}:</label>
<div class="col-md-8 col-lg-12">
<input type="password" name="password" class="form-control {% if error.class == 'password' %}is-invalid{% endif %}" aria-describedby="passwordHelp" tabindex="2"
autocomplete="new-password" required minlength="{{ password_min_length }}">
<div class="invalid-feedback">
{% if error.class == 'password' %}{{ error.text }}{% else %}
{% blocktrans %}Please provide a password! Minimum length: {{ password_min_length }}{% endblocktrans %}{% endif %}
</div>
<small id="passwordHelp" class="form-text text-muted">{% trans "Enter a secure password that you do not use anywhere else." %}</small>
</div>
</div>
<div>
<input type="hidden" name="token" value="{{ token }}">
<input type="hidden" name="csrf_token" value="{{ csrf_token }}">
{% if app %}<input type="hidden" name="app_id" value="{{ app.id }}">{% endif %}
<button type="submit" tabindex="3" class="btn btn-primary btn-lg">{% trans "Submit" %}</button>
</div>
</form>
<nav aria-label="{% trans 'Page navigation' %}">
<ul class="pagination mt-3">
<li class="page-item"><a tabindex="4" class="page-link" href="/{{ base }}/{{ token }}" aria-label="{% trans 'Previous' %}">
<span aria-hidden="true">&laquo;</span>
<span>{% trans "Previous" %}</span>
</a></li>
</ul>
</nav>
{% endblock %}
{% block extra_scripts %}
<script>
(function() {
'use strict';
window.addEventListener('load', function() {
// Fetch all the forms we want to apply custom Bootstrap validation styles to
var forms = document.getElementsByClassName('needs-validation');
// Loop over them and prevent submission
var validation = Array.prototype.filter.call(forms, function(form) {
form.addEventListener('submit', function(event) {
if (form.checkValidity() === false) {
event.preventDefault();
event.stopPropagation();
}
form.classList.add('was-validated');
}, false);
});
}, false);
})();
</script>
{% endblock %}