Files
web-petting/templates/admin/users.html
T
Aleksandr Bogomiakov 79c287eaa0
Build and Publish / Build and Publish Docker Image (push) Successful in 1m42s
Reworked admin style
2026-08-09 03:19:47 +01:00

89 lines
3.9 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{% extends "admin/layout.html" %}
{% let active_page = "users" %}
{% block title %}{{ t.users_title }}{% endblock %}
{% block content %}
<div class="page-head">
<h1>{{ t.users_title }}</h1>
</div>
{% for user in &users %}
<div class="item-card">
<div class="item-card-header">
<span class="name">{{ user.login }}{% if let Some(dn) = user.display_name.as_deref() %} <span class="muted-detail">— {{ dn }}</span>{% endif %}</span>
<span class="badge badge-{{ user.status }}">{{ t.client_status(&user.status) }}</span>
</div>
<div class="item-card-meta">
<span>🕐 {{ user.created_at.format("%d.%m.%Y %H:%M") }}</span>
</div>
{% if user.status == "active" %}
<form method="post" action="/admin/users/{{ user.id }}/telegram" class="inline-admin-form">
<div class="inline-admin-grid">
<div class="field">
<label class="label is-small">{{ t.users_telegram_chat_id }}</label>
<div class="control">
<input class="input is-small" type="text" name="telegram_chat_id" placeholder="123456789" value="{{ user.telegram_chat_id.as_deref().unwrap_or_default() }}">
</div>
</div>
<div>
<label class="admin-toggle admin-toggle-compact">
<input type="checkbox" name="telegram_notifications" value="true" {% if user.telegram_notifications == Some(true) %}checked{% endif %}>
<span class="admin-toggle-track" aria-hidden="true"><span></span></span>
<span><strong>{{ t.users_telegram_enabled }}</strong></span>
</label>
</div>
<div>
<button type="submit" class="button is-small is-info is-outlined">💾</button>
</div>
</div>
</form>
{% endif %}
<div class="item-card-actions">
{% if user.status == "active" %}
<form method="post" action="/admin/users/{{ user.id }}/archive">
<button type="submit" class="button is-small is-warning is-outlined btn-sm">{{ t.action_archive }}</button>
</form>
{% else %}
<form method="post" action="/admin/users/{{ user.id }}/activate">
<button type="submit" class="button is-small is-success is-outlined btn-sm">{{ t.action_activate }}</button>
</form>
{% endif %}
</div>
</div>
{% endfor %}
<section class="admin-section mt-5">
<header class="admin-section-head">
<span class="admin-section-icon" aria-hidden="true"></span>
<div><h2>{{ t.users_add_title }}</h2></div>
</header>
<div class="admin-section-body">
{% if let Some(err) = error.as_ref() %}
<div class="notification is-danger is-light">{{ err }}</div>
{% endif %}
<form method="post" action="/admin/users/add" class="form-grid">
<div class="field">
<label class="label is-small">{{ t.users_login }}</label>
<div class="control"><input class="input" type="text" name="login" required></div>
</div>
<div class="field">
<label class="label is-small">{{ t.users_display_name }}</label>
<div class="control"><input class="input" type="text" name="display_name"></div>
</div>
<div class="field">
<label class="label is-small">{{ t.users_password }}</label>
<div class="control"><input class="input" type="password" name="password" required minlength="4"></div>
</div>
<div class="field">
<label class="label is-small">{{ t.users_password_confirm }}</label>
<div class="control"><input class="input" type="password" name="password_confirm" required minlength="4"></div>
</div>
<div class="admin-field-wide">
<button type="submit" class="button is-primary">{{ t.users_add_button }}</button>
</div>
</form>
</div>
</section>
{% endblock %}