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 hy: Translations = {
validationMissingWidget: 'Գլխավոր էջի սեկցիաներից մեկն ունի վիջեթ առանց տիպի։',
validationDuplicateNavLinks: 'Վերնագրի նավիգացիայում կան կրկնվող հղումներ։',
validationInvalidColors: 'Թեմայի գույներից մեկը կամ մի քանիսը վավեր hex գույն չեն։',
validationMissingTranslations: 'Որոշ բովանդակություն թարգմանված չէ սատարվող լեզուներից մեկով։',
validationInvalidLayouts: 'Մեկ կամ մի քանի դասավորություններ հղում են անհայտ տեսակի։',
statusDraft: 'Սևագիր',
statusPublished: 'Հրապարակված',
unsavedChanges: 'Չպահված փոփոխություններ',
@@ -530,6 +532,52 @@ export const hy: Translations = {
confirmResetDraft: 'Սա կչեղարկի բոլոր չհրապարակված փոփոխությունները և կվերականգնի վերջին հրապարակված կոնֆիգուրացիան։ Շարունակե՞լ։',
confirmResetSection: 'Սա կչեղարկի չհրապարակված փոփոխությունները միայն այս սեկցիայում։ Շարունակե՞լ։',
},
dashboard: {
title: 'Կառավարման վահանակ',
subtitle: 'Ձեր մարքեթփլեյսի ընդհանուր տեսք',
cardMarketplaceStatus: 'Մարքեթփլեյսի կարգավիճակ',
cardProjectName: 'Նախագծի անվանում',
cardCurrentTheme: 'Ընթացիկ թեմա',
cardLanguages: 'Լեզուներ',
cardCategoriesCount: 'Կատեգորիաներ',
cardProductsCount: 'Ապրանքներ',
cardOrders: 'Պատվերներ',
cardRevenue: 'Եկամուտ',
cardLastPublish: 'Վերջին հրապարակում',
cardLastDraftSave: 'Վերջին սևագրի պահպանում',
cardBootstrapVersion: 'Bootstrap-ի տարբերակ',
cardActiveLayout: 'Ակտիվ դասավորություն',
cardEnabledWidgets: 'Միացված վիջեթներ',
stateLoading: 'Բեռնվում է...',
stateEmpty: 'Դեռ տվյալներ չկան',
stateError: 'Չհաջողվեց բեռնել այս քարտը',
statePendingBackend: 'Սպասվում է backend ինտեգրման',
never: 'Երբեք',
quickActionsTitle: 'Արագ գործողություններ',
actionEditProject: 'Խմբագրել նախագիծը',
actionCategories: 'Կատեգորիաներ',
actionProducts: 'Ապրանքներ',
actionStaticPages: 'Ստատիկ էջեր',
actionTransactions: 'Գործարքներ',
actionOrders: 'Պատվերներ',
actionMediaLibrary: 'Մեդիագրադարան',
actionPreviewMarketplace: 'Դիտել մարքեթփլեյսը',
activityTitle: 'Վերջին ակտիվություն',
activityEmpty: 'Դեռ ակտիվություն չկա։ Պահպանեք կամ հրապարակեք փոփոխություն՝ այն այստեղ տեսնելու համար։',
activityDraftSaved: 'Սևագիրը պահպանվեց',
activityPublished: 'Հրապարակվեց',
healthTitle: 'Համակարգի վիճակ',
healthAllClear: 'Բոլոր ստուգումներն անցել են',
healthBootstrapValid: 'Bootstrap-ը վավեր է',
healthConfigurationValid: 'Կոնֆիգուրացիան վավեր է',
healthMissingTranslations: 'Բացակայող թարգմանություններ',
healthInvalidColors: 'Անվավեր գույներ',
healthInvalidWidgetReferences: 'Անվավեր վիջեթ հղումներ',
healthInvalidLayouts: 'Անվավեր դասավորություններ',
comingSoonTitle: 'Շուտով',
comingSoonDescription: 'Այս բաժինը դեռ կառուցված չէ։ Ստուգեք ավելի ուշ։',
backToDashboard: 'Վերադառնալ վահանակ',
},
staticPages: {
notFound: 'Էջը չի գտնվել',
backHome: 'Վերադառնալ գլխավոր',