Кабинет: поиск клиентов с подсказками, чистая страница документов, ширина настроек

Поиск клиентов (режим сотрудника):
- поле поиска вынесено наверх страницы, рядом «Найти» и «Сбросить»;
- браузер сам подсказывает выпадающим списком по мере ввода — договоры
  депозитария отдаются страницей в <datalist> (скриптов в кабинете нет,
  CSP остаётся строгой), список кэшируется в ядре на 10 минут;
- по запросу фильтруются и учётки кабинета, и договоры депозитария,
  под формой показывается, сколько найдено;
- шаблон LIKE экранируется, чтобы % и _ в номере договора означали себя.

Документы: убраны пустое табло, «Мои заявки» и форма заказа документа —
остался список готовых документов депозитария и пояснение, куда обращаться.

Настройка: колонка сетки больше не растягивается широкой таблицей
(min-width:0), у страницы пропал горизонтальный ползунок.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
This commit is contained in:
zuevav
2026-09-18 18:45:54 +03:00
parent 4b80d030ab
commit 683f516d07
7 changed files with 184 additions and 50 deletions
+7 -1
View File
@@ -483,7 +483,13 @@ func registerLKAPI(mux *http.ServeMux, rc *RuntimeConfig, svc *Service) {
// админ ищет по номеру договора/ФИО и открывает кабинет на просмотр.
search := strings.TrimSpace(r.URL.Query().Get("search"))
depo, derr := depoListContracts(r.Context(), fancy, search, 100)
resp := map[string]any{"clients": list, "depo": depo, "search": search}
// Учётки кабинета ищем тем же запросом: сотрудник вводит фамилию или
// номер договора, а где заведена учётка — ему помнить не нужно.
if search != "" {
list = lkFilterUsers(list, search)
}
resp := map[string]any{"clients": list, "depo": depo, "search": search,
"suggest": depoSuggestContracts(r.Context(), fancy)}
if derr != nil {
resp["depo_error"] = derr.Error()
}