Redesign B3 bordeaux + finish lab-page rework
- Lab page is now read-only with a settings screen for levels/variants; variant issuance moved to a large modal on the group page (assign-fragment). - Header: bordeaux logo and 2px accent underline, bordeaux login/logout/theme buttons; smaller radii across the UI; filled secondary/danger buttons. - Includes prior agent work (login backoff, no-cache pages, API timeouts, content tweaks) and fixes (variant usage Map.values, import order). - Bump static asset version to v=9.
This commit is contained in:
@@ -158,13 +158,26 @@
|
||||
if (th.hasAttribute('data-nosort')) return;
|
||||
th.classList.add('th-sortable');
|
||||
if (!th.title) th.title = 'Сортировать по этому столбцу';
|
||||
th.addEventListener('click', function (event) {
|
||||
if (event.target.closest('form, button, a, select, input')) return;
|
||||
// сортировка с клавиатуры: фокус + Enter/пробел, состояние доступно скринридеру
|
||||
th.tabIndex = 0;
|
||||
if (th.classList.contains('is-asc')) th.setAttribute('aria-sort', 'ascending');
|
||||
function doSort() {
|
||||
var asc = !th.classList.contains('is-asc');
|
||||
clearAllMarkers(table);
|
||||
th.classList.add(asc ? 'is-asc' : 'is-desc');
|
||||
th.setAttribute('aria-sort', asc ? 'ascending' : 'descending');
|
||||
sortColumn(table, index, asc ? 1 : -1);
|
||||
th.title = (th.textContent.trim() || 'Столбец') + ' — ' + (asc ? 'по возрастанию' : 'по убыванию');
|
||||
}
|
||||
th.addEventListener('click', function (event) {
|
||||
if (event.target.closest('form, button, a, select, input')) return;
|
||||
doSort();
|
||||
});
|
||||
th.addEventListener('keydown', function (event) {
|
||||
if (event.target !== th) return;
|
||||
if (event.key !== 'Enter' && event.key !== ' ') return;
|
||||
event.preventDefault();
|
||||
doSort();
|
||||
});
|
||||
});
|
||||
buildFilters(table);
|
||||
|
||||
Reference in New Issue
Block a user