feat: close stub-page gaps - profile login/logout, admin Reports/Settings, Help/Docs links
Some checks failed
Architecture Governance / architecture (push) Has been cancelled

Sprint A: storefront header profile control (login/logout only, no menu),
wired to existing customer Telegram auth (AuthService).

Sprint B: backoffice/reports page, reuses AdminAnalyticsFacade (Sales,
Top Products, Marketplace Health cards + CSV export).

Sprint C: backoffice/settings page, admin UI density preference
(comfortable/compact), localStorage-persisted, applied to app-table
across all admin list pages.

Sprint D: admin bottom-nav Help -> mailto using existing supportEmail,
Documentation -> external link via new TenantConfig.documentationUrl.
AdminNavLink gains externalHref for non-routerLink nav entries.

Docs: docs/GLOBAL-SPRINT-PLAN.md tracks the full sprint breakdown.
docs/COMING-SOON-AUDIT.md removed, folded into docs/KNOWN-ISSUES.md.
docs/BACKEND.md updated with the new documentationUrl bootstrap field.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
sdarbinyan
2026-08-05 17:48:50 +04:00
parent 65c6d6f5d1
commit 48bcffa22c
26 changed files with 398 additions and 16 deletions

View File

@@ -12,6 +12,8 @@ export const en: Translations = {
compare: 'Compare',
openMenu: 'Open menu',
closeMenu: 'Close menu',
login: 'Log in',
logout: 'Log out',
},
footer: {
description: 'A modern marketplace for comfortable shopping',
@@ -1909,6 +1911,16 @@ export const en: Translations = {
lastPublished: 'Last published',
syncStatus: 'Sync',
},
adminReports: {
sales: 'Sales',
topProducts: 'Top Products',
marketplaceHealth: 'Marketplace Health',
},
adminSettings: {
density: 'Table density',
densityExplain: 'Reduce row padding across backoffice list pages for a more compact view.',
densityCompact: 'Compact rows',
},
adminAnalytics: {
topProductsEmptyTitle: 'No product sales in this period',
topProductsEmptyDescription: 'Try a wider date range.',
@@ -2060,6 +2072,8 @@ export const en: Translations = {
monitoring: { title: 'Monitoring', description: 'Queue, webhook, and system event status' },
analytics: { title: 'Analytics', description: 'Sales, products, and shopper behavior' },
sellerManagement: { title: 'Seller Management', description: 'Onboard and manage independent sellers on your marketplace' },
reports: { title: 'Reports', description: 'Export sales, product, and marketplace health reports' },
settings: { title: 'Settings', description: 'Backoffice display preferences' },
},
},
adminSellerManagement: {

View File

@@ -12,6 +12,8 @@ export const hy: Translations = {
compare: 'Համեմատում',
openMenu: 'Բացել մենյուն',
closeMenu: 'Փակել մենյուն',
login: 'Մուտք',
logout: 'Ելք',
},
footer: {
description: 'Ժամանակակից մարքեթփլեյս հարմար գնումների համար',
@@ -1904,6 +1906,16 @@ export const hy: Translations = {
lastPublished: 'Վերջին հրապարակում',
syncStatus: 'Համաժամացում',
},
adminReports: {
sales: 'Վաճառքներ',
topProducts: 'Լավագույն ապրանքներ',
marketplaceHealth: 'Մարքեթփլեյսի վիճակ',
},
adminSettings: {
density: 'Աղյուսակի խտություն',
densityExplain: 'Փոքրացնել տողերի հեռավորությունը ադմինիստրատիվ վահանակի ցուցակներում՝ ավելի կոմպակտ տեսքի համար։',
densityCompact: 'Կոմպակտ տողեր',
},
adminAnalytics: {
topProductsEmptyTitle: 'Այս ժամանակահատվածում ապրանքների վաճառք չկա',
topProductsEmptyDescription: 'Փորձեք ընտրել ավելի լայն ամսաթվերի միջակայք։',
@@ -2055,6 +2067,8 @@ export const hy: Translations = {
monitoring: { title: 'Մոնիտորինգ', description: 'Հերթերի, webhook-ների և համակարգային իրադարձությունների վիճակը' },
analytics: { title: 'Վերլուծություն', description: 'Վաճառքներ, ապրանքներ և գնորդների վարքագիծ' },
sellerManagement: { title: 'Վաճառողների կառավարում', description: 'Թույլ տվեք անկախ վաճառողներին միանալ ձեր մարքեթփլեյսին՝ պահպանելով կենտրոնացված կառավարումը' },
reports: { title: 'Հաշվետվություններ', description: 'Արտահանել վաճառքների, ապրանքների և մարքեթփլեյսի վիճակի հաշվետվություններ' },
settings: { title: 'Կարգավորումներ', description: 'Ադմինիստրատիվ վահանակի ցուցադրման նախապատվություններ' },
},
},
adminSellerManagement: {

View File

@@ -12,6 +12,8 @@ export const ru: Translations = {
compare: 'Сравнение',
openMenu: 'Открыть меню',
closeMenu: 'Закрыть меню',
login: 'Войти',
logout: 'Выйти',
},
footer: {
description: 'Современный маркетплейс для комфортных покупок',
@@ -1904,6 +1906,16 @@ export const ru: Translations = {
lastPublished: 'Последняя публикация',
syncStatus: 'Синхронизация',
},
adminReports: {
sales: 'Продажи',
topProducts: 'Топ товаров',
marketplaceHealth: 'Состояние маркетплейса',
},
adminSettings: {
density: 'Плотность таблиц',
densityExplain: 'Уменьшить отступы строк в списках панели управления для более компактного вида.',
densityCompact: 'Компактные строки',
},
adminAnalytics: {
topProductsEmptyTitle: 'Нет продаж товаров за этот период',
topProductsEmptyDescription: 'Попробуйте выбрать более широкий диапазон дат.',
@@ -2055,6 +2067,8 @@ export const ru: Translations = {
monitoring: { title: 'Мониторинг', description: 'Состояние очередей, вебхуков и системных событий' },
analytics: { title: 'Аналитика', description: 'Продажи, товары и поведение покупателей' },
sellerManagement: { title: 'Управление продавцами', description: 'Подключайте независимых продавцов к вашему маркетплейсу с централизованным администрированием' },
reports: { title: 'Отчёты', description: 'Экспорт отчётов по продажам, товарам и состоянию маркетплейса' },
settings: { title: 'Настройки', description: 'Настройки отображения панели управления' },
},
},
adminSellerManagement: {

View File

@@ -10,6 +10,8 @@ export interface Translations {
compare: string;
openMenu: string;
closeMenu: string;
login: string;
logout: string;
};
footer: {
description: string;
@@ -1917,6 +1919,16 @@ export interface Translations {
lastPublished: string;
syncStatus: string;
};
adminReports: {
sales: string;
topProducts: string;
marketplaceHealth: string;
};
adminSettings: {
density: string;
densityExplain: string;
densityCompact: string;
};
adminAnalytics: {
topProductsEmptyTitle: string;
topProductsEmptyDescription: string;
@@ -2068,6 +2080,8 @@ export interface Translations {
monitoring: { title: string; description: string };
analytics: { title: string; description: string };
sellerManagement: { title: string; description: string };
reports: { title: string; description: string };
settings: { title: string; description: string };
};
};
adminSellerManagement: {