Mikhail Chusavitin
4900cd073c
feat: server-driven configurator settings via qt_settings
...
Replaces hardcoded JS category filters and config-type buttons with
server-pushed settings synced from qt_settings (MariaDB) → local_qt_settings (SQLite).
- new table local_qt_settings (AutoMigrate) — synced after component sync
- GET /api/configurator-settings returns config_types, tab_config,
always_visible_tabs, required_categories with hardcoded fallbacks
- new-config modal: type buttons rendered from server data (Сервер/СХД static fallback)
- configurator: TAB_CONFIG and category filter driven by server; required-category badge on tabs
- SyncQtSettings wired into SyncComponents and SyncAll handlers (non-fatal on old server)
- bible-local/server-contract-qt-settings.md — contract for server-side agent
- page titles: OFS → QFS
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-23 09:33:31 +03:00
184f54b663
refactor: привести кодовую базу в соответствие с канонами bible
...
- 400 → 422 для всех ошибок валидации входных данных (handlers: export, quote, sync, vendor_spec, partnumber_books, pricelist)
- SQL-запросы вынесены из handlers в localdb (partnumber_books, pricelist, support_bundle); ValidateMariaDBConnection перенесён в internal/db/validate.go
- List-ответы унифицированы: ключ items, поля total_count/page/per_page/total_pages (component, pricelist, partnumber_books); шаблоны обновлены
- Молчаливые ошибки заменены на slog.Warn/Error (support_bundle, vendor_spec, component, configuration, local_configuration, localdb)
- N+1 запросы устранены: batch-запросы в export.go и vendor_workspace_import.go
- fmt.Println → slog в cmd/ (qfs, migrate, migrate_ops_projects, migrate_project_updated_at)
- Заголовки recovery/verify добавлены во все 28 SQL-миграций
- Добавлены bible-local/runtime-flows.md и bible-local/decisions/
- Обновлён субмодуль bible до v0.2.0-13
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-13 14:38:01 +03:00
e548305396
fix: экспорт конфига через GetByUUIDNoAuth, формат чисел с запятой как разделителем
...
- ExportConfigCSV и ExportConfigPricingCSV: GetByUUID → GetByUUIDNoAuth,
чтобы не падать с ErrConfigForbidden на конфигах с чужим OriginalUsername
- ConfigurationGetter: добавлен GetByUUIDNoAuth в интерфейс
- Шаблоны: toLocaleString('en-US') → 'ru-RU' во всех местах отображения цен;
процентные значения: .toFixed(1) → .toFixed(1).replace('.', ',')
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-11 05:00:37 +03:00
Mikhail Chusavitin
ad8cdb0b85
chore: rename page titles from QuoteForge to OFS
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 17:41:42 +03:00
Mikhail Chusavitin
fba9f2972a
Remove partnumbers column from all pricelist views (data mixed across sources)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-13 14:24:15 +03:00
Mikhail Chusavitin
b1fb3db2e0
Hide partnumbers column for competitor pricelist (data not linked locally)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-13 14:23:20 +03:00
Mikhail Chusavitin
72a21e6335
Remove Поставщик column from pricelist detail (placeholder data)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-13 14:22:26 +03:00
Mikhail Chusavitin
c02286a407
Redesign pricelist detail: differentiated layout by source type
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-13 13:14:14 +03:00
Mikhail Chusavitin
8db8dce080
Add project variants and UI updates
2026-02-13 19:27:48 +03:00
207ecfc032
Implement warehouse/lot pricing updates and configurator performance fixes
2026-02-07 05:20:35 +03:00
Mikhail Chusavitin
0d9abdbd50
Add stock pricelist admin flow with mapping placeholders and warehouse details
2026-02-06 19:37:12 +03:00
Mikhail Chusavitin
466e0e8506
Apply remaining pricelist and local-first updates
2026-02-06 13:01:40 +03:00
0a93973d02
Add Phase 2: Local SQLite database with sync functionality
...
Implements complete offline-first architecture with SQLite caching and MariaDB synchronization.
Key features:
- Local SQLite database for offline operation (data/quoteforge.db)
- Connection settings with encrypted credentials
- Component and pricelist caching with auto-sync
- Sync API endpoints (/api/sync/status, /components, /pricelists, /all)
- Real-time sync status indicator in UI with auto-refresh
- Offline mode detection middleware
- Migration tool for database initialization
- Setup wizard for initial configuration
New components:
- internal/localdb: SQLite repository layer (components, pricelists, sync)
- internal/services/sync: Synchronization service
- internal/handlers/sync: Sync API handlers
- internal/handlers/setup: Setup wizard handlers
- internal/middleware/offline: Offline detection
- cmd/migrate: Database migration tool
UI improvements:
- Setup page for database configuration
- Sync status indicator with online/offline detection
- Warning icons for pending synchronization
- Auto-refresh every 30 seconds
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-02-01 11:00:32 +03:00