rustpbx 0.4.9

A SIP PBX implementation in Rust
Documentation
{% extends "console/auth_layout.html" %}

{% block title %}{{ "auth.reset_title" | t }} ยท {{site_name|default('RustPBX')}}{% endblock %}

{% block content %}
<section class="flex items-center justify-center py-16 px-4">
    <div class="w-full max-w-lg space-y-8 rounded-2xl bg-white/90 p-8 shadow-xl ring-1 ring-black/5 backdrop-blur">
        <div class="space-y-2 text-center">
            <h1 class="text-2xl font-semibold text-slate-900">{{ "auth.reset_title" | t }}</h1>
            <p class="text-sm text-slate-500">{{ "auth.reset_subtitle" | t }}</p>
        </div>
        {% if error_message %}
        <div class="rounded-lg border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-600">
            {{ error_message | default("") }}
        </div>
        {% endif %}
        <form action="{{ reset_action }}" method="post" class="space-y-5">
            <div class="space-y-2" x-data="{ reveal: false }">
                <label class="block text-sm font-medium text-slate-700">{{ "auth.reset_new_label" | t }}</label>
                <div class="relative flex items-center">
                    <input :type="reveal ? 'text' : 'password'" name="password" minlength="8" required
                        class="w-full rounded-xl border border-slate-200 px-4 py-3 pr-12 text-sm shadow-sm focus:border-sky-400 focus:outline-none focus:ring-2 focus:ring-sky-200"
                        placeholder="{{ 'auth.password_placeholder_new' | t }}" />
                    <button type="button" @click="reveal = !reveal"
                        x-text="reveal ? '{{ 'auth.hide' | t }}' : '{{ 'auth.show' | t }}'"
                        class="absolute right-3 text-xs font-medium text-slate-500"></button>
                </div>
            </div>
            <div class="space-y-2">
                <label class="block text-sm font-medium text-slate-700">{{ "auth.confirm_password" | t }}</label>
                <input type="password" name="confirm_password" minlength="8" required
                    class="w-full rounded-xl border border-slate-200 px-4 py-3 text-sm shadow-sm focus:border-sky-400 focus:outline-none focus:ring-2 focus:ring-sky-200"
                    placeholder="{{ 'auth.password_placeholder_confirm' | t }}" />
            </div>
            <button type="submit"
                class="w-full rounded-xl bg-sky-600 px-4 py-3 text-sm font-semibold text-white shadow-lg shadow-sky-200 transition hover:bg-sky-500 focus:outline-none focus:ring-2 focus:ring-sky-300">{{ "auth.reset_button" | t }}</button>
        </form>
        <div class="text-center text-sm text-slate-500">
            <a href="{{ login_url }}" class="font-medium text-sky-600 hover:text-sky-500">{{ "auth.reset_back" | t }}</a>
        </div>
    </div>
</section>
{% endblock %}