Создать настройки приложения #10
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Нужно создать отдельную страницу с настройками приложения. Там где сейчас выбор темы, нужно поместить кнопку "Настройки" с иконкой шестеренки.
При нажатии у пользователя открывается новое окно с настройками. Там должно быть:
Предусмотри это так, чтобы в любой момент можно было добавить другие пункты меню. Предусмотреть, как это будет выглядеть в телефонном режиме.
В комментарии к этой задаче покажи, как это будет выглядеть, сделай скриншоты.
Не беру задачу в работу, ставлю
blockedи жду ответа по #9.Причина: я только что предложил схему хранения пользовательских настроек в
ui_config.json(UI_CONFIG_FILE + атомарная запись, GET/PUT/api/config) в рамках задачи #9 «Динамические названия кнопок». Заказчик эту схему ещё не подтвердил — последний комментарий в #9 мой (от 2026-09-25 13:12), ответа нет.Если подтвердится
ui_config.jsonкак единая точка пользовательских настроек, задача #10 (тема, раскладка кнопок, флаг «Журнал», иконка шестерёнки, экраны телефонного режима) логично ложится в то же хранилище и в тот же API/api/config— реализовывать их вместе дешевле и согласованнее (одна сериализация, одна валидация, одни тесты).Если же схема по #9 изменится (например, останется только
.envили будет отдельный файл на каждую группу настроек) — это повлияет на то, как я делаю #10, и брать её сейчас вслепую не хочу.Прошу один из двух вариантов:
blocked, беру веткуfeature/10_app_settingsи работаю независимо.До ответа в
mainне лезу, ветку не создаю.Сделал страницу настроек согласно постановке.
Что сделано
AppSettings(добавить пункт = добавить поле + секцию на странице), варианты раскладок — таблицаLAYOUT_OPTIONS.Телефонный режим. На ширинах ≤520px кнопки всегда показываются сеткой 2×3 (2 колонки, 5-я кнопка переносится), независимо от выбранной раскладки — инлайн-стиль десктопной раскладки там подавляется. Страница настроек тоже адаптирована (секции в столбец, скриншот прилагается).
Уточнение по матрицам. Постановка задаёт матрицы «1х3, 2х3, 3х2, 3х1»; я принял такое прочтение для 5 кнопок (первая цифра — колонки):
Сверьтесь со скриншотами: если задумывалось другое (например, матрицы должны обрезаться до 3/6 кнопок или цифры означают наоборот ряды×колонки) — скажите, поправлю.
Скриншоты (во вложениях и в
web/public/screenshots/):settings_desktop_line.pngsettings_mobile_light.pngmain_desktop_line_light.pngmain_desktop_line_dark.pngmain_desktop_matrix23.pngmain_tablet_matrix13.pngmain_desktop_line_nolog.pngmain_mobile_light.pngmain_mobile_dark_matrix23.pngКак проверить
make web-dev(или собратьmake web-buildи открыть через бекенд).Тесты:
make web-test— 33/33 зелёные (добавлены юнит-тесты модуля настроек, хука и страницы; обновлены тесты App).Также уточню: цель «settings_desktop_matrix*» сделана на десктопе 1200×900, чтобы видно было разницу раскладок прямо из страницы настроек — сама страница настроек на раскладку не влияет, это просто фон.
Дополнение к комментарию выше и прозрачность по статусу задачи.
При взятии задачи я не увидел, что ранее (в 13:15) она была помечена
blockedс ожиданием подтверждения схемыui_config.jsonпо #9 — это моя ошибка, прошу учесть. Тем не менее работа не пропала:ui_config.json+/api/configбудет подтверждена и реализована на бекенде, синхронизация настроек с бекендом добавляется как совместимое расширение (тот жеAppSettingsсериализуется вui_config.json)./api/configсделаю с учётом настроек из #10 (единыйui_config.json).Ветка:
feature/10_app_settings_page, PR: #11.Готово, PR #11 на ревью, ветка
feature/10_app_settings_page.Что внутри:
AppSettings+ таблица раскладокLAYOUT_OPTIONS.Closes #10