43 lines
3.0 KiB
HTML
43 lines
3.0 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="ru" xmlns:th="http://www.thymeleaf.org" th:replace="~{fragments/base :: layout(~{::title}, ~{::#content})}">
|
||
<head><title>Группы — LMS</title></head>
|
||
<body>
|
||
<div id="content">
|
||
<h1 class="page-title">Группы</h1>
|
||
<div class="grid grid-2">
|
||
<form class="card form-card form-stack" th:action="@{/admin/groups}" method="post">
|
||
<h2 class="section-title">Создать группу</h2>
|
||
<div><label class="label" for="name">Название</label><input class="input" id="name" name="name" placeholder="ПИ-11БО" required></div>
|
||
<button class="btn btn-primary" type="submit">Создать</button>
|
||
<input type="hidden" name="_csrf" th:value="${csrfToken}">
|
||
</form>
|
||
<form class="card form-card form-stack" th:action="@{/admin/groups/import}" method="post" enctype="multipart/form-data">
|
||
<h2 class="section-title">Импорт студентов</h2>
|
||
<p class="text-sm text-muted">Файл .xls, .xlsx или .csv со столбцами: студенческий номер, ФИО, основа обучения.</p>
|
||
<div><label class="label" for="file">Файл со списком</label><input class="input" id="file" name="file" type="file" accept=".xls,.xlsx,.csv" required></div>
|
||
<div><label class="label" for="groupName">Название группы (необязательно)</label><input class="input" id="groupName" name="name" placeholder="Возьмём из файла"></div>
|
||
<button class="btn btn-primary" type="submit">Импортировать</button>
|
||
<input type="hidden" name="_csrf" th:value="${csrfToken}">
|
||
</form>
|
||
</div>
|
||
<div class="flex flex-wrap items-center justify-between gap-2 mb-2 mt-8">
|
||
<h2 class="section-title m-0">Список групп</h2>
|
||
<input class="input input-sm table-search" data-target="groups-table"
|
||
placeholder="Поиск по названию…" aria-label="Поиск по группам">
|
||
</div>
|
||
<div class="card card-flush">
|
||
<table id="groups-table" class="tablekit">
|
||
<thead><tr><th class="th-sortable is-asc" title="Название — по возрастанию">Название</th><th>Студентов</th><th data-nosort>Выгрузка</th></tr></thead>
|
||
<tbody>
|
||
<tr th:each="group : ${groups}">
|
||
<td><a th:href="@{/admin/groups/{id}(id=${group.id})}" th:text="${group.name}">—</a></td>
|
||
<td th:text="${group.studentCount}">0</td>
|
||
<td><a th:href="@{/admin/groups/{id}/credentials(id=${group.id}, format='xlsx')}">XLSX</a><span class="nav-sep ml-2">·</span><a class="ml-2" th:href="@{/admin/groups/{id}/credentials(id=${group.id}, format='csv')}">CSV</a></td>
|
||
</tr>
|
||
<tr th:if="${#lists.isEmpty(groups)}"><td colspan="3" class="empty">Групп пока нет.</td></tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html> |