invite_landing.html 75 lignes · 3688 octets
<!DOCTYPE html>
<html lang="{{ current_locale }}">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{{ page_title }}</title>
    <link href="/static/css/tailwind.css" rel="stylesheet">
    <link href="/static/css/custom.css" rel="stylesheet">
</head>
<body class="min-h-screen bg-base-200 flex items-center justify-center px-4">
    <main class="card bg-base-100 shadow-xl max-w-lg w-full">
        <div class="card-body">
            <header class="mb-4">
                <h1 class="card-title text-2xl">{{ heading }}</h1>
                <p class="text-base-content/70 mt-1">{{ explainer }}</p>
            </header>

            <dl class="space-y-3 mb-6">
                <div>
                    <dt class="text-sm text-base-content/60">{{ team_label }}</dt>
                    <dd class="font-mono text-base">{{ team_name }}</dd>
                </div>
                <div>
                    <dt class="text-sm text-base-content/60">{{ role_label }}</dt>
                    <dd>
                        <span class="badge badge-ghost">{{ role_value }}</span>
                    </dd>
                </div>
                <div>
                    <dt class="text-sm text-base-content/60">{{ status_label }}</dt>
                    <dd>
                        {% if status_value == "pending" %}
                        <span class="badge badge-warning">{{ status_value }}</span>
                        {% else if status_value == "accepted" %}
                        <span class="badge badge-success">{{ status_value }}</span>
                        {% else if status_value == "rejected" || status_value == "revoked" || status_value == "expired" %}
                        <span class="badge badge-error">{{ status_value }}</span>
                        {% else %}
                        <span class="badge">{{ status_value }}</span>
                        {% endif %}
                    </dd>
                </div>
            </dl>

            {% if already_decided %}
            <div role="status" aria-live="polite" class="alert alert-info">
                <span>{{ already_decided_text }}</span>
            </div>
            <div class="card-actions justify-end mt-4">
                <a href="/home" class="btn btn-primary">OK</a>
            </div>
            {% else %}
                {% if !can_accept %}
                <div role="status" aria-live="polite" class="alert alert-warning mb-4">
                    <svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" /></svg>
                    <span>{{ cannot_accept_note }}</span>
                </div>
                {% endif %}

                <form method="POST" action="/fediverse/invite/{{ invite_id }}" class="card-actions justify-end gap-2">
                    <input type="hidden" name="csrf_token" value="{{ csrf_token }}">
                    <button type="submit" name="decision" value="reject" class="btn btn-ghost text-error">
                        {{ reject_button }}
                    </button>
                    {% if can_accept %}
                    <button type="submit" name="decision" value="accept" class="btn btn-primary">
                        {{ accept_button }}
                    </button>
                    {% endif %}
                </form>
            {% endif %}
        </div>
    </main>
</body>
</html>