Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
4.8 KiB
Global Sprint Plan — "Coming Soon" Stub Closure
Supersedes docs/COMING-SOON-AUDIT.md §5 sprint breakdown. One consolidated tracker for the four stub-closure sprints. Approved decisions (from AskUserQuestion): Reports/Settings ship as minimal real pages (not fake data, not empty shells); Documentation/Help nav uses an external-link approach; docs/COMING-SOON-AUDIT.md is deleted once all sprints land, folded into docs/KNOWN-ISSUES.md. Profile control constraint: login/logout only — no dropdown, no account links.
Sprint A — Profile menu (storefront header)
- i18n:
header.login/header.logoutkeys in en/ru/hy (translations.tstype already updated) header.component.ts: injectAuthService, exposeisAuthenticated, addlogin()/logout()header.component.ts: importTelegramLoginComponentheader.component.html: profile control gated byheaderConfig().showProfile, login/logout only,<app-telegram-login />rendered once- SCSS matches existing header button conventions (reused
.platform-ux-btn, no new SCSS needed)
What shipped: Header profile control wired to the customer AuthService (Telegram QR login). Gated by headerConfig().showProfile (already a real toggle in Project Editor, previously dead). Logged-out shows a login button (user icon), logged-in shows a logout button (logOut icon) — no dropdown, no account links, per the explicit constraint.
Sprint B — Admin Reports page
admin-reports-page.component.ts/.html/.scss(mirrorsadmin-analytics-pagestructure), reusesAdminAnalyticsFacade- Report cards: Sales, Top Products, Marketplace Health
- CSV export wired to existing facade export methods / existing download helper (same Blob pattern as
admin-analytics-page.component.ts) - Route
backoffice/reportsinapp.routes.ts, i18n keysadminShell.pages.reports.*+ newadminReports.*block - Remove
comingSoon: truefromreportsnav entry
What shipped: Minimal real Reports page with 3 cards (Sales, Top Products, Marketplace Health), each showing a live summary from AdminAnalyticsFacade and a CSV export button. Orders card was scoped out — see final report for why (reuse would require mutating a shared singleton facade's pagination state).
Sprint C — Admin Settings page
AdminPreferencesService(density signal, localStorage-backed, keyadminPreferences.density.v1)admin-layout.componentappliesadmin-density-compactclass to#admin-contentshell wrapperadmin-settings-page.component.ts/.html/.scss— density toggle (app-toggle), auto-persists on change, no separate Save button- Route
backoffice/settings, i18n keysadminShell.pages.settings.*+adminSettings.*block - Remove
comingSoon: truefrom nav entry AND dashboard shortcut; shortcut route →['backoffice','settings'] - Compact-density CSS rule added to the shared
app-tablecomponent stylesheet (.admin-density-compact .app-table th/td) — applies to every admin list page built onapp-table(orders, products, categories, etc.), not just one
What shipped: Genuinely real, backend-independent UI density preference. No maintenance-mode toggle built (explicitly deferred per docs/NEXT_PHASE.md Phase 4).
Sprint D — Documentation / Help nav
- Help:
mailto:using existingsupportEmailread path (UiRuntimeFacade.contactEmail(), same oneheader.component.tsalready uses forbootstrap.branding.supportEmail) AdminNavLinkgains optionalexternalHref?: string; nav renderer renders<a>branch (bottom nav)- Documentation: added
tenant.documentationUrl?: stringtoTenantConfig, populated mock withhttps://docs.marketplace.local help/documentationresolved dynamically inadmin-layout.component.ts(navBottomcomputed) — real<a>when bootstrap data present, staticcomingSoon: trueentries kept as defensive fallback for the (currently unreachable, since mock always has both fields) case where the backend omits them
What shipped: Both Help and Documentation wired to real external links, not just Help. comingSoon: true remains in admin-nav.model.ts source as a fallback flag only — it is overridden to false at render time whenever bootstrap actually has the data, which it does today.
Housekeeping
- Delete
docs/COMING-SOON-AUDIT.md - Fold summary into
docs/KNOWN-ISSUES.md"Fixed (this cycle)"; remove theHeaderConfig.showProfiledead-toggle entry from "Open" - Update
docs/BACKEND.md(tenant.documentationUrlfield added §1.3; nodocs/backend/BACKEND-INTEGRATION.mdexists in this repo) npm run barry -- validate(clean, only pre-existing unrelated warnings)- Typecheck touched files (
tsc --noEmit+ fullng buildboth clean)