- Настройки: выпадающий список «Шрифт» со всеми системными шрифтами
(+ «По умолчанию»), с превью каждого шрифта в себе самом
- шрифт применяется ко всему приложению (ресурс AppFontFamily + стиль Window),
сохраняется и восстанавливается при старте
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- UpdateService: проверка через публичный CDN latest.json (тот же хост, что и
установщик — надёжнее поддомена git), fallback на Gitea, лог в %TEMP%\elfisa-update.log
- Настройки: кнопка «Проверить обновления» (ручной триггер + видимый результат)
- Прайс-лист: убран лимит показа (300 → весь прайс/все совпадения одним запросом)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Раньше поиск шёл только кнопкой «Найти». Добавлен KeyBinding Enter → SearchCommand
прямо в поле ввода: набрал название, нажал Enter — ищет.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
LoadPrice дробил прайс на страницы по 20000, а сервер на каждую страницу заново
прогонял тяжёлую оконную дедупликацию + COUNT. При всех подключённых прайсах
(~52к позиций) это ~6-7с. Тянем всё одним запросом → один прогон (~1.2с).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- UpdateService (Core): проверка Gitea releases/latest + скачивание установщика с CDN
- UpdateWindow/VM: уведомление «доступно обновление», тихая установка поверх с перезапуском
- ShellView: проверка при старте (один раз, офлайн/ошибки игнорируются)
Закрывает пробел: Avalonia-клиент раньше не умел обновляться (апдейтер был только в WinForms).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Прайс-лист: дропдаун «Мои прайсы» (подключённые прайсы + «Все прайсы»),
выбор фильтрует каталог по price_list_id; один прайс — выбирается сам
- Загрузить: показывает список подключённых прайсов и качает их
- Core: GetBuyerPriceListsAsync + priceListId в GetPriceSummaryAsync
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>