- API и страницы профиля (редактирование, смена пароля, аватар), публичные карточки. - Сайдбар: блок пользователя, пункт Users для admin/root, исправлен порядок инициализации (показ admin-only после initAuthSession, currentUser). - GET /auth/me: ответ через ProfileMeResponse, исправлена валидация (is_founder bool). Команды и роли - Маршруты и UI команд; при редактировании роли: видимость Team, выбор команды в модалке, только команды с активным членством; API team_id в details/ update. - GET /api/v1/teams?membership=active для списка «своих» команд. - Форма роли: сегмент Team, панель выбора команды только при Team и не при с
25 lines
1.1 KiB
HTML
25 lines
1.1 KiB
HTML
{% extends "base.xhtml" %}
|
|
{% from "macros/page-hero.xhtml" import page_hero %}
|
|
{% block content %}
|
|
<div class="dashboard-page teams-page">
|
|
{% call page_hero("Collaboration", "Teams", "Create a team, invite members, and share Ansible roles visible only to the team. Request to join open teams or leave when you no longer need access.") %}
|
|
<div class="dashboard-hero-actions">
|
|
<button type="button" class="cta-button" id="teams-create-open-btn">Create team</button>
|
|
</div>
|
|
{% endcall %}
|
|
|
|
<section class="dashboard-panel dashboard-panel--primary">
|
|
<div class="dashboard-panel-h">
|
|
<div>
|
|
<h2 class="dashboard-panel-title">All teams</h2>
|
|
<p class="dashboard-panel-sub">Open a team for members, pending requests, invitations, and shared roles.</p>
|
|
</div>
|
|
<button type="button" class="btn-muted" id="teams-refresh-btn">Refresh</button>
|
|
</div>
|
|
<div id="teams-output" class="audit-logs-output" aria-live="polite">
|
|
<p class="muted" style="margin:0">Loading teams…</p>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
{% endblock %}
|