Tables: initial ФИО order, click-to-sort columns, substring search
- identity group detail (and thus every student list) is ordered by full name; defense rows on the group page sorted by name + lab number - tablekit.js: click a header to sort (numeric-aware, ru locale), second click flips direction (▲/▼ indicator); search input with data-target filters rows by substring live - tables wired: group matrix (with data-sort on variant cells), defense table (data-sort on status/date), students table, lab assignment lists per group, groups list and labs list; name/number columns pre-marked ascending - non-sortable columns marked data-nosort (checkbox/actions)
This commit is contained in:
@@ -71,13 +71,17 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div th:each="g : ${assignmentGroups}" class="card mb-4" th:if="${!#lists.isEmpty(g.students)}">
|
||||
<div th:each="g, gStat : ${assignmentGroups}" class="card mb-4" th:if="${!#lists.isEmpty(g.students)}">
|
||||
<div class="card-body">
|
||||
<h3 class="group-title" th:text="${g.groupName}">Группа</h3>
|
||||
<div class="flex flex-wrap items-center justify-between gap-2 mb-2">
|
||||
<h3 class="group-title m-0" th:text="${g.groupName}">Группа</h3>
|
||||
<input class="input input-sm table-search" th:attr="data-target='assign-table-' + ${gStat.index}"
|
||||
placeholder="Поиск по студенту…" aria-label="Поиск по студентам группы">
|
||||
</div>
|
||||
<div class="scroll-x">
|
||||
<table>
|
||||
<table class="tablekit" th:attr="id='assign-table-' + ${gStat.index}">
|
||||
<thead><tr>
|
||||
<th class="th-w-sm">Выбор</th><th>Студент</th><th class="th-w-md">Уровень</th><th class="th-w-md">Вариант</th>
|
||||
<th class="th-w-sm" data-nosort>Выбор</th><th class="th-sortable is-asc" title="ФИО — по возрастанию">Студент</th><th class="th-w-md">Уровень</th><th class="th-w-md">Вариант</th>
|
||||
<th class="th-w-sm">Источник</th><th>Сдача</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
|
||||
Reference in New Issue
Block a user