feat(admin): sprint 19 admin dashboard, routing, i18n

- Add admin dashboard feature (models/gateway/facade/components/page)
- Wire admin/products routes and backoffice coming-soon placeholders
- Add lastPublishedAt to ProjectEditorFacade/state
- Add dashboard i18n keys (en/ru/hy) and docs/ADMIN.md

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
sdarbinyan
2026-07-14 12:21:33 +04:00
parent 6aec2ebcb2
commit 325dc17911
36 changed files with 1386 additions and 5 deletions

View File

@@ -512,6 +512,8 @@ export const en: Translations = {
validationMissingWidget: 'A homepage section has a widget with no type.',
validationDuplicateNavLinks: 'Two or more header navigation links are duplicates.',
validationInvalidColors: 'One or more theme colors are not valid hex colors.',
validationMissingTranslations: 'Some content is missing translations for a supported language.',
validationInvalidLayouts: 'One or more layouts reference an unknown layout type.',
statusDraft: 'Draft',
statusPublished: 'Published',
unsavedChanges: 'Unsaved changes',
@@ -530,6 +532,52 @@ export const en: Translations = {
confirmResetDraft: 'This discards all unpublished changes and restores the last published configuration. Continue?',
confirmResetSection: 'This discards unpublished changes in this section only. Continue?',
},
dashboard: {
title: 'Dashboard',
subtitle: 'Overview of your marketplace',
cardMarketplaceStatus: 'Marketplace Status',
cardProjectName: 'Project Name',
cardCurrentTheme: 'Current Theme',
cardLanguages: 'Languages',
cardCategoriesCount: 'Categories',
cardProductsCount: 'Products',
cardOrders: 'Orders',
cardRevenue: 'Revenue',
cardLastPublish: 'Last Publish',
cardLastDraftSave: 'Last Draft Save',
cardBootstrapVersion: 'Bootstrap Version',
cardActiveLayout: 'Active Layout',
cardEnabledWidgets: 'Enabled Widgets',
stateLoading: 'Loading...',
stateEmpty: 'No data yet',
stateError: 'Could not load this card',
statePendingBackend: 'Awaiting backend integration',
never: 'Never',
quickActionsTitle: 'Quick Actions',
actionEditProject: 'Edit Project',
actionCategories: 'Categories',
actionProducts: 'Products',
actionStaticPages: 'Static Pages',
actionTransactions: 'Transactions',
actionOrders: 'Orders',
actionMediaLibrary: 'Media Library',
actionPreviewMarketplace: 'Preview Marketplace',
activityTitle: 'Recent Activity',
activityEmpty: 'No activity yet. Save or publish a change to see it here.',
activityDraftSaved: 'Draft saved',
activityPublished: 'Published',
healthTitle: 'System Health',
healthAllClear: 'All checks passed',
healthBootstrapValid: 'Bootstrap valid',
healthConfigurationValid: 'Configuration valid',
healthMissingTranslations: 'Missing translations',
healthInvalidColors: 'Invalid colors',
healthInvalidWidgetReferences: 'Invalid widget references',
healthInvalidLayouts: 'Invalid layouts',
comingSoonTitle: 'Coming soon',
comingSoonDescription: 'This section is not built yet. Check back in a future update.',
backToDashboard: 'Back to dashboard',
},
staticPages: {
notFound: 'Page not found',
backHome: 'Back to home',