Кабинет: поиск клиентов с подсказками, чистая страница документов, ширина настроек
Поиск клиентов (режим сотрудника): - поле поиска вынесено наверх страницы, рядом «Найти» и «Сбросить»; - браузер сам подсказывает выпадающим списком по мере ввода — договоры депозитария отдаются страницей в <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:
@@ -197,3 +197,20 @@ func lkUserByID(ctx context.Context, rc *RuntimeConfig, id int64) (*LKUser, erro
|
||||
}
|
||||
return &u, nil
|
||||
}
|
||||
|
||||
// lkFilterUsers — учётки кабинета, подходящие под строку поиска сотрудника
|
||||
// (часть логина, номера договора, ФИО или почты; регистр не важен).
|
||||
func lkFilterUsers(list []LKUser, search string) []LKUser {
|
||||
q := strings.ToLower(strings.TrimSpace(search))
|
||||
if q == "" {
|
||||
return list
|
||||
}
|
||||
out := make([]LKUser, 0, len(list))
|
||||
for _, u := range list {
|
||||
hay := strings.ToLower(u.Login + " " + u.Contract + " " + u.FullName + " " + u.Email)
|
||||
if strings.Contains(hay, q) {
|
||||
out = append(out, u)
|
||||
}
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user