117 lines
4.6 KiB
Twig
117 lines
4.6 KiB
Twig
{% extends 'superadmin/layout.twig' %}
|
||
|
||
{% block content %}
|
||
<div class="sa-header">
|
||
<h1>Дашборд</h1>
|
||
<div class="user-menu">
|
||
<span>Добро пожаловать, {{ session_data.name }}</span>
|
||
{{ get_avatar(null, 40, '') }}
|
||
</div>
|
||
</div>
|
||
|
||
{% for alert in get_alerts() %}
|
||
<div class="alert alert-{{ alert.type }}">{{ alert.message }}</div>
|
||
{% endfor %}
|
||
|
||
<div class="stats-grid">
|
||
<div class="stat-card">
|
||
<h3>Всего пользователей</h3>
|
||
<div class="value">{{ stats.total_users|number_format(0, '', ' ') }}</div>
|
||
<div class="icon">👥</div>
|
||
</div>
|
||
<div class="stat-card">
|
||
<h3>Всего организаций</h3>
|
||
<div class="value">{{ stats.total_orgs|number_format(0, '', ' ') }}</div>
|
||
<div class="icon">🏢</div>
|
||
</div>
|
||
<div class="stat-card">
|
||
<h3>Зарегистрировано сегодня</h3>
|
||
<div class="value">{{ stats.active_today|number_format(0, '', ' ') }}</div>
|
||
<div class="icon">📅</div>
|
||
</div>
|
||
<div class="stat-card">
|
||
<h3>Всего модулей</h3>
|
||
<div class="value">{{ stats.total_modules|number_format(0, '', ' ') }}</div>
|
||
<div class="icon">📦</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="grid-2">
|
||
<div class="sa-card">
|
||
<div class="sa-card-header">
|
||
<h2>Последние организации</h2>
|
||
<a href="{{ base_url('/superadmin/organizations') }}" class="btn btn-primary btn-sm">Все организации</a>
|
||
</div>
|
||
<div class="sa-card-body">
|
||
{% if recentOrgs is empty %}
|
||
<p style="color: #7f8c8d; text-align: center; padding: 20px;">Организаций пока нет</p>
|
||
{% else %}
|
||
<table class="table">
|
||
<thead>
|
||
<tr>
|
||
<th>Название</th>
|
||
<th>Тип</th>
|
||
<th>Дата</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
{% for org in recentOrgs %}
|
||
<tr>
|
||
<td>
|
||
<a href="{{ base_url('/superadmin/organizations/view/' ~ org.id) }}" style="color: #3498db; text-decoration: none;">
|
||
{{ org.name }}
|
||
</a>
|
||
</td>
|
||
<td>
|
||
{% if org.type == 'business' %}
|
||
<span class="badge badge-info">Бизнес</span>
|
||
{% else %}
|
||
<span class="badge badge-warning">Личное</span>
|
||
{% endif %}
|
||
</td>
|
||
<td>{{ org.created_at|date('d.m.Y') }}</td>
|
||
</tr>
|
||
{% endfor %}
|
||
</tbody>
|
||
</table>
|
||
{% endif %}
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sa-card">
|
||
<div class="sa-card-header">
|
||
<h2>Последние пользователи</h2>
|
||
<a href="{{ base_url('/superadmin/users') }}" class="btn btn-primary btn-sm">Все пользователи</a>
|
||
</div>
|
||
<div class="sa-card-body">
|
||
{% if recentUsers is empty %}
|
||
<p style="color: #7f8c8d; text-align: center; padding: 20px;">Пользователей пока нет</p>
|
||
{% else %}
|
||
<table class="table">
|
||
<thead>
|
||
<tr>
|
||
<th>Имя</th>
|
||
<th>Email</th>
|
||
<th>Роль</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
{% for user in recentUsers %}
|
||
<tr>
|
||
<td>{{ user.name|default('—') }}</td>
|
||
<td>{{ user.email }}</td>
|
||
<td>
|
||
<span class="badge {{ user.system_role == 'superadmin' ? 'badge-danger' : (user.system_role == 'admin' ? 'badge-warning' : 'badge-success') }}">
|
||
{{ user.system_role|default('user') }}
|
||
</span>
|
||
</td>
|
||
</tr>
|
||
{% endfor %}
|
||
</tbody>
|
||
</table>
|
||
{% endif %}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{% endblock %}
|