Files
marketplaces/docs/GLOBAL-SPRINT-PLAN.md
sdarbinyan 3e3185cb6e
Some checks failed
Architecture Governance / architecture (push) Has been cancelled
docs: mark GLOBAL-SPRINT-PLAN housekeeping checklist complete
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-05 18:53:18 +04:00

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.logout keys in en/ru/hy (translations.ts type already updated)
  • header.component.ts: inject AuthService, expose isAuthenticated, add login()/logout()
  • header.component.ts: import TelegramLoginComponent
  • header.component.html: profile control gated by headerConfig().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 (mirrors admin-analytics-page structure), reuses AdminAnalyticsFacade
  • 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/reports in app.routes.ts, i18n keys adminShell.pages.reports.* + new adminReports.* block
  • Remove comingSoon: true from reports nav 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, key adminPreferences.density.v1)
  • admin-layout.component applies admin-density-compact class to #admin-content shell wrapper
  • admin-settings-page.component.ts/.html/.scss — density toggle (app-toggle), auto-persists on change, no separate Save button
  • Route backoffice/settings, i18n keys adminShell.pages.settings.* + adminSettings.* block
  • Remove comingSoon: true from nav entry AND dashboard shortcut; shortcut route → ['backoffice','settings']
  • Compact-density CSS rule added to the shared app-table component stylesheet (.admin-density-compact .app-table th/td) — applies to every admin list page built on app-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 existing supportEmail read path (UiRuntimeFacade.contactEmail(), same one header.component.ts already uses for bootstrap.branding.supportEmail)
  • AdminNavLink gains optional externalHref?: string; nav renderer renders <a> branch (bottom nav)
  • Documentation: added tenant.documentationUrl?: string to TenantConfig, populated mock with https://docs.marketplace.local
  • help/documentation resolved dynamically in admin-layout.component.ts (navBottom computed) — real <a> when bootstrap data present, static comingSoon: true entries 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 the HeaderConfig.showProfile dead-toggle entry from "Open"
  • Update docs/BACKEND.md (tenant.documentationUrl field added §1.3; no docs/backend/BACKEND-INTEGRATION.md exists in this repo)
  • npm run barry -- validate (clean, only pre-existing unrelated warnings)
  • Typecheck touched files (tsc --noEmit + full ng build both clean)