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

@@ -44,8 +44,20 @@
</ul>
<ul class="admin-layout__nav-list admin-layout__nav-list--bottom">
@for (entry of navBottom; track $index) {
@if (entry.type === 'link' && entry.comingSoon) {
@for (entry of navBottom(); track $index) {
@if (entry.type === 'link' && entry.externalHref) {
<li>
<a
class="admin-layout__nav-link"
[href]="entry.externalHref"
[attr.target]="entry.externalHref.startsWith('mailto:') ? null : '_blank'"
[attr.rel]="entry.externalHref.startsWith('mailto:') ? null : 'noopener'"
>
<app-icon [name]="entry.icon" [size]="18" />
<span class="admin-layout__nav-label">{{ entry.labelKey | translate }}</span>
</a>
</li>
} @else if (entry.type === 'link' && entry.comingSoon) {
<li>
<button type="button" class="admin-layout__nav-link admin-layout__nav-link--disabled" disabled>
<app-icon [name]="entry.icon" [size]="18" />
@@ -151,7 +163,7 @@
</div>
</header>
<main id="admin-content" class="admin-layout__content" tabindex="-1">
<main id="admin-content" class="admin-layout__content" [class.admin-density-compact]="density() === 'compact'" tabindex="-1">
<router-outlet></router-outlet>
</main>