feat(admin): redesign dashboard into professional SaaS homepage
Replaced the placeholder dashboard with a real business homepage built on 6 new reusable widget components (DashboardSection, DashboardCard, DashboardMetric, DashboardStatusRow, DashboardTimeline, DashboardShortcutCard), all wired through shared app-card/app-skeleton/ app-empty-state. Sections: Welcome (tenant, env badge, current user, last publish/save - all real facade signals, never blank), Quick Actions (large cards: add product, create category, open builder, edit homepage, media, orders), Draft Status (real dirty/modifiedFields/publish/discard from ProjectEditorFacade), Marketplace Health (9 checks - config, product/ category counts, missing translations, draft, static-pages-unpublished, homepage/theme configured, all real; images-without-alt shown as 'not tracked yet' rather than fabricated), Recent Activity (existing localStorage-backed history service, loading/empty states), Useful Shortcuts, Documentation (honest coming-soon list, no dead links). 12-column responsive grid: 3-across cards on desktop, 2-column on tablet, single column on mobile, no horizontal scroll. Keyboard/focus/ ARIA per shortcut card and status row; health status never conveyed by color alone (icon + text every time). AdminDashboardHealthCheck (boolean 'healthy' shape) and its facade signal are untouched - AdminMonitoringPageComponent also consumes them. New richer status data lives in a separate homeHealthChecks signal/ AdminDashboardHomeHealthCheck type instead of widening the shared one. Added ~50 new dashboard.* / kept existing i18n strings across ru/en/hy; no raw keys. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -720,7 +720,7 @@ export const hy: Translations = {
|
||||
actionAnalytics: 'Վերլուծություն',
|
||||
actionPreviewMarketplace: 'Դիտել մարքեթփլեյսը',
|
||||
activityTitle: 'Վերջին ակտիվություն',
|
||||
activityEmpty: 'Դեռ ակտիվություն չկա։ Պահպանեք կամ հրապարակեք փոփոխություն՝ այն այստեղ տեսնելու համար։',
|
||||
activityEmpty: 'Դեռ ակտիվություն չկա',
|
||||
activityDraftSaved: 'Սևագիրը պահպանվեց',
|
||||
activityPublished: 'Հրապարակվեց',
|
||||
healthTitle: 'Համակարգի վիճակ',
|
||||
@@ -734,6 +734,54 @@ export const hy: Translations = {
|
||||
comingSoonTitle: 'Շուտով',
|
||||
comingSoonDescription: 'Այս բաժինը դեռ կառուցված չէ։ Ստուգեք ավելի ուշ։',
|
||||
backToDashboard: 'Վերադառնալ վահանակ',
|
||||
welcomeEyebrow: 'Բարի վերադարձ',
|
||||
welcomeFallbackTenant: 'Ձեր մարկետփլեյսը',
|
||||
envProduction: 'Պրոդակշն',
|
||||
envDevelopment: 'Մշակում',
|
||||
factCurrentUser: 'Ընթացիկ օգտատեր',
|
||||
factTenant: 'Խանութ',
|
||||
quickActionsDescription: 'Ձեր ամենահաճախակի առաջադրանքները՝ սկսեք այստեղից',
|
||||
actionAddProduct: 'Ավելացնել ապրանք',
|
||||
actionAddProductDescription: 'Ստեղծել նոր ապրանքի քարտ',
|
||||
actionCreateCategory: 'Ստեղծել կատեգորիա',
|
||||
actionCreateCategoryDescription: 'Ավելացնել կատեգորիա կատալոգում',
|
||||
actionEditProjectDescription: 'Բացել մարկետփլեյսի կոնստրուկտորը',
|
||||
actionEditHomepage: 'Խմբագրել գլխավոր էջը',
|
||||
actionEditHomepageDescription: 'Կարգավորել գլխավոր էջի վիջեթները',
|
||||
actionMediaLibraryDescription: 'Վերբեռնեք և կազմակերպեք ֆայլերը',
|
||||
actionOrdersDescription: 'Դիտեք վերջին պատվերները',
|
||||
draftStatusTitle: 'Սևագրի կարգավիճակ',
|
||||
draftStatusHasChanges: 'Կան չհրապարակված փոփոխություններ։',
|
||||
draftStatusAllPublished: 'Ամեն ինչ հրապարակված է։ Սևագիր չկա։',
|
||||
draftStatusMoreFields: '+{{count}} ևս',
|
||||
draftOpenBuilder: 'Բացել կոնստրուկտորը',
|
||||
draftPublish: 'Հրապարակել',
|
||||
draftDiscard: 'Չեղարկել սևագիրը',
|
||||
healthProductsCount: 'Ապրանքներ',
|
||||
healthCategoriesCount: 'Կատեգորիաներ',
|
||||
healthDraftExists: 'Սևագիր',
|
||||
healthImagesWithoutAlt: 'Alt տեքստ չունեցող պատկերներ',
|
||||
healthStaticPagesUnpublished: 'Չհրապարակված ստատիկ էջեր',
|
||||
healthHomepageConfigured: 'Գլխավոր էջը կարգավորված է',
|
||||
healthThemeConfigured: 'Թեման կարգավորված է',
|
||||
statusHealthy: 'Կարգին է',
|
||||
statusAttention: 'Ուշադրություն է պահանջում',
|
||||
statusUnhealthy: 'Խնդիր',
|
||||
statusUnknown: 'Դեռ չի հետևվում',
|
||||
activityEmptyHint: 'Պահպանեք կամ հրապարակեք փոփոխություն՝ այն այստեղ տեսնելու համար։',
|
||||
activityUnavailable: 'Ակտիվության պատմությունը հասանելի չէ',
|
||||
activityUnavailableHint: 'Չհաջողվեց միանալ տվյալների աղբյուրին։ Փորձեք թարմացնել ավելի ուշ։',
|
||||
activityErrorHint: 'Չհաջողվեց բեռնել վերջին ակտիվությունը։',
|
||||
shortcutsTitle: 'Օգտակար հղումներ',
|
||||
shortcutsDescription: 'Ադմին վահանակի հաճախակի օգտագործվող բաժինները',
|
||||
shortcutMarketplaceBuilder: 'Մարկետփլեյսի կոնստրուկտոր',
|
||||
shortcutSettings: 'Կարգավորումներ',
|
||||
shortcutContent: 'Բովանդակություն',
|
||||
docTitle: 'Փաստաթղթեր',
|
||||
docDocumentation: 'Փաստաթղթեր',
|
||||
docKeyboardShortcuts: 'Ստեղնաշարի դյուրանցումներ',
|
||||
docReportIssue: 'Հայտնել խնդրի մասին',
|
||||
docReleaseNotes: 'Թողարկման նշումներ',
|
||||
},
|
||||
staticPages: {
|
||||
notFound: 'Էջը չի գտնվել',
|
||||
|
||||
Reference in New Issue
Block a user