Files
web-petting/templates/admin/users.html
T

89 lines
3.9 KiB
HTML
Raw Permalink Normal View History

2026-04-29 17:49:07 +03:00
{% 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">
2026-08-09 03:19:47 +01:00
<span class="name">{{ user.login }}{% if let Some(dn) = user.display_name.as_deref() %} <span class="muted-detail">— {{ dn }}</span>{% endif %}</span>
2026-04-29 17:49:07 +03:00
<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>
2026-05-15 15:28:19 +03:00
{% if user.status == "active" %}
2026-08-09 03:19:47 +01:00
<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() }}">
2026-05-15 15:28:19 +03:00
</div>
</div>
2026-08-09 03:19:47 +01:00
<div>
<label class="admin-toggle admin-toggle-compact">
2026-05-15 15:28:19 +03:00
<input type="checkbox" name="telegram_notifications" value="true" {% if user.telegram_notifications == Some(true) %}checked{% endif %}>
2026-08-09 03:19:47 +01:00
<span class="admin-toggle-track" aria-hidden="true"><span></span></span>
<span><strong>{{ t.users_telegram_enabled }}</strong></span>
2026-05-15 15:28:19 +03:00
</label>
</div>
2026-08-09 03:19:47 +01:00
<div>
2026-05-15 15:28:19 +03:00
<button type="submit" class="button is-small is-info is-outlined">💾</button>
</div>
</div>
</form>
{% endif %}
2026-04-29 17:49:07 +03:00
<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 %}
2026-08-09 03:19:47 +01:00
<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">
2026-04-29 17:49:07 +03:00
{% if let Some(err) = error.as_ref() %}
<div class="notification is-danger is-light">{{ err }}</div>
{% endif %}
2026-08-09 03:19:47 +01:00
<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>
2026-04-29 17:49:07 +03:00
</div>
2026-08-09 03:19:47 +01:00
<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>
2026-04-29 17:49:07 +03:00
</div>
</form>
2026-08-09 03:19:47 +01:00
</div>
</section>
2026-04-29 17:49:07 +03:00
{% endblock %}