From 5ff2a32087c9102c5d2d1cf623dfba8696345a47 Mon Sep 17 00:00:00 2001 From: TronoSfera <119615520+TronoSfera@users.noreply.github.com> Date: Thu, 26 Feb 2026 22:32:29 +0300 Subject: [PATCH] Task P052-P053 fix --- app/web/admin.css | 43 ++++++++++++++++++ app/web/admin.jsx | 6 +-- .../admin/features/config/ConfigSection.jsx | 3 +- app/web/landing.css | 17 +++++++ app/web/landing.js | 37 +++++++++++++-- celerybeat-schedule | Bin 16384 -> 16384 bytes 6 files changed, 97 insertions(+), 9 deletions(-) diff --git a/app/web/admin.css b/app/web/admin.css index 2b4892f..3e66f7d 100644 --- a/app/web/admin.css +++ b/app/web/admin.css @@ -920,6 +920,15 @@ background: rgba(255, 255, 255, 0.015); } + /* Main table data lives in its own scroll area; controls and pager remain outside of it. */ + .table-scroll-region { + min-height: 240px; + max-height: clamp(260px, 50vh, 620px); + overflow: auto; + overscroll-behavior: contain; + scrollbar-gutter: stable both-edges; + } + table { width: 100%; border-collapse: collapse; @@ -965,6 +974,19 @@ letter-spacing: 0.06em; } + .table-scroll-region thead th { + position: sticky; + top: 0; + z-index: 2; + background: linear-gradient(160deg, rgba(23, 34, 46, 0.98), rgba(16, 24, 33, 0.98)); + box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05); + backdrop-filter: blur(6px); + } + + .table-scroll-region tbody tr:last-child td { + border-bottom-color: transparent; + } + .sortable-th { cursor: pointer; user-select: none; @@ -1148,6 +1170,27 @@ flex-wrap: wrap; } + .table-footer-bar { + margin-top: 0; + padding: 0.55rem 0.65rem; + border: 1px solid var(--line); + border-top: none; + border-radius: 0 0 12px 12px; + background: linear-gradient(160deg, rgba(18, 28, 37, 0.96), rgba(13, 20, 28, 0.98)); + position: sticky; + bottom: 0; + z-index: 1; + } + + .table-scroll-region + .table-footer-bar { + margin-top: -1px; + } + + .filter-toolbar + .table-scroll-region { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + } + .status { margin: 0.6rem 0 0; min-height: 1.1rem; diff --git a/app/web/admin.jsx b/app/web/admin.jsx index 95acffe..3329320 100644 --- a/app/web/admin.jsx +++ b/app/web/admin.jsx @@ -79,7 +79,7 @@ const NEW_REQUEST_CLIENT_OPTION = "__new_client__"; function DataTable({ headers, rows, emptyColspan, renderRow, onSort, sortClause }) { return ( -
+
@@ -120,7 +120,7 @@ const NEW_REQUEST_CLIENT_OPTION = "__new_client__"; function TablePager({ tableState, onPrev, onNext, onLoadAll }) { return ( -
+
{tableState.showAll ? "Всего: " + tableState.total + " • показаны все записи" @@ -389,7 +389,7 @@ const NEW_REQUEST_CLIENT_OPTION = "__new_client__";