Group page: B3 layout (page-head, toolbar, matrix), neutral header with accent logo dot
This commit is contained in:
@@ -3,25 +3,28 @@
|
||||
<head><title th:text="${group.name} + ' — LMS'">Группа</title></head>
|
||||
<body>
|
||||
<div id="content">
|
||||
<a th:href="@{/admin/groups}" class="nav-link">← Все группы</a>
|
||||
<div class="mt-2 mb-4 flex flex-wrap items-center justify-between gap-4">
|
||||
<div class="page-head">
|
||||
<div>
|
||||
<h1 class="page-title m-0" th:text="${group.name}">Группа</h1>
|
||||
<p class="text-sm text-muted mt-1">Студентов: <span th:text="${#lists.size(group.students)}">0</span></p>
|
||||
<p class="kicker">Ведомость группы</p>
|
||||
<h1 class="page-title" th:text="${group.name}">Группа</h1>
|
||||
<p class="meta">
|
||||
<span th:text="${#lists.size(group.students)}">0</span> студентов ·
|
||||
<b th:text="${publishedLabsCount}">0</b>
|
||||
<span th:with="p=${publishedLabsCount}"
|
||||
th:text="${(p % 10 == 1 and p % 100 != 11) ? 'лабораторная' : ((p % 10 >= 2 and p % 10 <= 4 and (p % 100 < 12 or p % 100 > 14)) ? 'лабораторные' : 'лабораторных')}">лабораторных</span>
|
||||
с открытыми оценками
|
||||
</p>
|
||||
</div>
|
||||
<div class="actions">
|
||||
<button class="btn btn-secondary" type="button" onclick="openModal('modal-defense-import')">Импорт заданий</button>
|
||||
<a class="btn btn-secondary" th:href="@{/admin/groups/{id}/submissions.zip(id=${group.id})}"
|
||||
title="ZIP со всеми последними решениями группы по всем лабораторным">Скачать работы</a>
|
||||
<button class="btn btn-secondary" type="button" onclick="openModal('modal-add-student')">+ Студент</button>
|
||||
<a class="btn btn-secondary" th:href="@{/admin/groups/{id}/credentials(id=${group.id}, format='xlsx')}">Скачать пароли</a>
|
||||
<button class="btn btn-secondary" type="button" onclick="openModal('modal-defense-import')">Импорт заданий</button>
|
||||
<button class="btn" type="button" onclick="openModal('modal-add-student')">+ Студент</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-wrap items-center justify-between gap-2 mb-2">
|
||||
<h2 class="section-title m-0">Студенты и лабораторные</h2>
|
||||
</div>
|
||||
<div class="flex flex-wrap items-center gap-2 mb-2" th:if="${!#lists.isEmpty(labs)}">
|
||||
<div class="toolbar">
|
||||
<input class="input table-search" data-target="group-table"
|
||||
placeholder="Поиск по студенту…" aria-label="Поиск по студенту">
|
||||
<select class="input" id="lab-focus" onchange="focusLab()">
|
||||
@@ -78,7 +81,7 @@
|
||||
<tbody>
|
||||
<tr th:each="row : ${studentGrades}">
|
||||
<td class="student-cell matrix-sticky">
|
||||
<div class="font-medium" th:text="${row.fullName}">—</div>
|
||||
<div class="student-name" th:text="${row.fullName}">—</div>
|
||||
<div class="text-sm text-muted font-mono" th:text="${row.studentNo}">—</div>
|
||||
</td>
|
||||
<td th:each="cell, iterStat : ${row.cells}" class="text-center cell-lab"
|
||||
@@ -133,14 +136,14 @@
|
||||
<form th:action="@{/admin/groups/{gid}/students/{sid}/reset-password(gid=${group.id}, sid=${row.studentId})}" method="post"
|
||||
onsubmit="return confirm('Сбросить пароль студенту? Текущий пароль перестанет работать, новый покажется один раз.')">
|
||||
<input type="hidden" name="_csrf" th:value="${csrfToken}">
|
||||
<button class="btn btn-secondary" type="submit"
|
||||
<button class="btn btn-secondary btn-sm" type="submit"
|
||||
title="Сгенерировать новый пароль (покажется один раз, потребуется смена при входе)">Сбросить</button>
|
||||
</form>
|
||||
<form th:action="@{/admin/groups/{gid}/students/{sid}/unenroll(gid=${group.id}, sid=${row.studentId})}"
|
||||
method="post"
|
||||
onsubmit="return confirm('Отчислить этого студента из группы? Аккаунт, сдача и оценки сохранятся; студент сможет войти и будет без группы.')">
|
||||
<input type="hidden" name="_csrf" th:value="${csrfToken}">
|
||||
<button class="btn btn-danger" type="submit">Отчислить</button>
|
||||
<button class="btn btn-sm btn-danger" type="submit">Отчислить</button>
|
||||
</form>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
Reference in New Issue
Block a user