feat(admin): скрытие доменов и сохраняемый порядок колонок (#26)
This commit is contained in:
1 parent
dd6d221dd7
commit
00fbef9ede
12 files changed
+252
-33
No files matched your search
@@ -189,3 +189,31 @@ partial failure/source changed, aliases/unknown/requisites, независимы
|
||||
через выход и повторный вход: старое продолжение не сбрасывает новый черновик,
|
||||
не подменяет результаты/notice и не снимает busy новой операции. Серверные задания
|
||||
при выходе продолжаются; отменяются только устаревшие UI-продолжения.
|
||||
|
||||
## Скрытие, удаление и порядок доменов (preland#26)
|
||||
|
||||
Значок перечёркнутого глаза справа от домена временно убирает его из таблицы и
|
||||
рабочих списков. Подключение, секрет, проверка соединения, сайт, config.json и наборы
|
||||
сохраняются. В «Скрытых доменах» доступны возврат и удаление подключения. Сервер
|
||||
запрещает удалять видимый домен и домен с незавершённым заданием; сайт и файлы
|
||||
удаление подключения не затрагивает. История сохраняется, результаты скрытых целей
|
||||
не выводятся в рабочих списках.
|
||||
|
||||
Маркер слева от названия позволяет перетащить колонку мышью; стрелки на маркере
|
||||
позволяют изменить порядок с клавиатуры. Порядок автоматически сохраняется на сервере
|
||||
и применяется к таблице и спискам выбора для всех входов. Скрытый домен сохраняет
|
||||
свою позицию, новый добавляется в конец. Черновики настроек и заметок при перестановке
|
||||
сохраняются; перед скрытием изменённого домена нужно сохранить или отменить его правки.
|
||||
|
||||
API с обычными авторизацией и CSRF: `POST /api/targets/visibility` принимает
|
||||
`{id,hidden}` (hidden — boolean), `POST /api/targets/order` принимает `{ids}` —
|
||||
ровно все видимые ID в нужном порядке; оба возвращают актуальные `targets`.
|
||||
Неверный/устаревший набор ID отвергается, скрытые позиции не перезаписываются.
|
||||
`GET /api/state` содержит все подключения, включая hidden; интерфейс отдельно
|
||||
фильтрует рабочие списки. Скрытие не отменяет уже запущенное задание.
|
||||
|
||||
Ответы API401 не отправляют Set-Cookie: задержанный ответ старого запроса не может
|
||||
перезаписать cookie нового успешного входа. Истёкший сеанс отзывается на сервере,
|
||||
а явный выход (200) удаляет cookie. UI также отбрасывает ответы прежнего сеанса.
|
||||
Проверка `ui-target-login-race.cjs` включает следующий авторизованный запрос и
|
||||
сохранение порядка после задержанного401, а не только видимость рабочей области.
|
||||
Reference in new issue
Block a user