Files
roa2web-service-auto/scripts/ralph/prd.json
Claude Agent ac2966c629 feat(mobile-fixes-phase3): Complete US-311 - Actualizare Documentație MOBILE_PATTERNS.md
Implemented by Ralph autonomous loop.
Iteration: 9

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-12 16:59:01 +00:00

217 lines
9.1 KiB
JSON

{
"projectName": "mobile-fixes-phase3",
"branchName": "ralph/unified-mobile-md",
"description": "Corectări navigare mobilă: footer restructurat, tab-uri Clienți/Furnizori, FAB pe Bonuri, hamburger grupat",
"cssRules": {
"documentation": [
"docs/ONBOARDING_CSS.md",
"docs/DESIGN_TOKENS.md",
"docs/CSS_PATTERNS.md",
"docs/MOBILE_PATTERNS.md"
],
"goldenRules": [
"Folosește DOAR design tokens - NICIODATĂ valori hardcodate",
"Verifică CSS_PATTERNS.md înainte de a scrie CSS nou",
"Testează în AMBELE teme (light + dark mode)",
"NICIODATĂ :deep() în componente (PrimeVue → vendor/)",
"Mobile: toate paginile folosesc MobileTopBar + MobileBottomNav",
"Mobile: filtrele se pun în BottomSheet, NU inline",
"Mobile: tab-uri pentru switch Clienți/Furnizori"
],
"mobileLayoutTokens": {
"topBarHeight": "56px",
"bottomNavHeight": "56px",
"fabSize": "56px",
"fabBottomOffset": "72px",
"touchTargetMin": "48px"
}
},
"userStories": [
{
"id": "US-307",
"title": "Restructurare Footer Nav (4 butoane noi)",
"description": "Ca utilizator mobil vreau footer navigation cu: Dashboard | Bonuri | Facturi | Setări",
"priority": 1,
"acceptanceCriteria": [
"MobileBottomNav cu 4 butoane: Dashboard, Bonuri, Facturi, Setări",
"Dashboard: icon pi-home, route /dashboard",
"Bonuri: icon pi-receipt, route /data-entry",
"Facturi: icon pi-file-edit, route /reports/invoices",
"Setări: icon pi-cog, route /settings",
"Active state corect pe fiecare pagină",
"Ștergere link Upload din footer (mutat în FAB)",
"npm run build passes"
],
"passes": true,
"notes": "Completed in iteration 1"
},
{
"id": "US-308",
"title": "Actualizare Hamburger Menu - Grupat pe Categorii",
"description": "Ca utilizator mobil vreau meniul hamburger organizat pe categorii clare",
"priority": 2,
"acceptanceCriteria": [
"MobileDrawerMenu.vue restructurat cu secțiuni vizuale",
"Secțiune PRINCIPALE: Dashboard → /dashboard, Bonuri → /data-entry",
"Secțiune RAPOARTE: Facturi → /reports/invoices, Balanță → /reports/trial-balance, Casa și Banca → /reports/bank-cash",
"Secțiune ANALIZE: Scadențe → /reports/maturity-analysis, Facturi Detaliate → /reports/detailed-invoices",
"Secțiune ADMINISTRARE: Setări → /settings",
"Separatori vizuali între secțiuni",
"Header cu logo, Footer cu profil utilizator și logout",
"npm run build passes"
],
"passes": true,
"notes": "Completed in iteration 2"
},
{
"id": "US-304",
"title": "Tab-uri Clienți/Furnizori în Facturi",
"description": "Ca utilizator vreau pagina Facturi să aibă tab-uri pentru Clienți și Furnizori",
"priority": 3,
"acceptanceCriteria": [
"InvoicesView.vue modificat cu tab-uri: Clienți | Furnizori",
"Tab-uri sub MobileTopBar (design Material, full-width)",
"Switch între tab-uri păstrează filtrele active",
"Default: primul tab activ (Clienți)",
"URL query param pentru tab activ (?tab=suppliers)",
"MobileTopBar cu title Facturi",
"MobileBottomNav activ (Facturi highlighted)",
"npm run build passes"
],
"passes": true,
"notes": "Completed in iteration 1"
},
{
"id": "US-305",
"title": "Tab-uri Clienți/Furnizori în Scadențe",
"description": "Ca utilizator vreau pagina Scadențe să aibă tab-uri pentru Clienți și Furnizori",
"priority": 4,
"acceptanceCriteria": [
"MaturityAnalysisView.vue modificat cu tab-uri: Clienți | Furnizori",
"Tab-uri sub MobileTopBar (design Material, full-width)",
"Switch între tab-uri păstrează filtrele active",
"Default: primul tab activ (Clienți)",
"URL query param pentru tab activ (?tab=suppliers)",
"MobileTopBar cu title Scadențe și buton ← Înapoi",
"MobileBottomNav activ",
"npm run build passes"
],
"passes": true,
"notes": "Completed in iteration 2"
},
{
"id": "US-301",
"title": "Buton Înapoi în Creare/Editare/Vizualizare Bon",
"description": "Ca utilizator mobil vreau buton ← Înapoi în MobileTopBar pe pagina de bon",
"priority": 5,
"acceptanceCriteria": [
"ReceiptCreateUnifiedView.vue are MobileTopBar cu showBack=true",
"Click pe ← navighează la /data-entry (lista bonuri)",
"Funcționează în toate modurile: create, edit, view",
"Verify in browser: butonul apare și funcționează",
"npm run build passes"
],
"passes": true,
"notes": "Completed in iteration 3"
},
{
"id": "US-302",
"title": "Footer Nav pe toate Paginile de Setări",
"description": "Ca utilizator mobil vreau MobileBottomNav pe toate paginile din secțiunea Setări",
"priority": 6,
"acceptanceCriteria": [
"OCRMetricsView.vue include MobileBottomNav cu Setări activ",
"CacheStatsView.vue include MobileBottomNav cu Setări activ",
"ServerLogsView.vue include MobileBottomNav cu Setări activ",
"TelegramAdminView.vue include MobileBottomNav cu Setări activ (dacă există)",
"SettingsHubView.vue include MobileBottomNav cu Setări activ",
"npm run build passes"
],
"passes": true,
"notes": "Completed in iteration 4"
},
{
"id": "US-303",
"title": "FAB pe Pagina Bonuri (Mutare Upload)",
"description": "Ca utilizator mobil vreau funcția Upload să fie în butonul FAB (+) pe pagina Bonuri",
"priority": 7,
"acceptanceCriteria": [
"ReceiptsListView.vue are buton FAB (+) în colțul dreapta-jos",
"Click pe FAB deschide meniu popup: Bon Nou | Upload Bulk",
"FAB poziționat deasupra MobileBottomNav (bottom: 72px)",
"Bon Nou navighează la /data-entry/receipts/new",
"Upload Bulk navighează la /data-entry/bulk-upload",
"FAB vizibil doar pe mobil (isMobile)",
"npm run build passes"
],
"passes": true,
"notes": "Completed in iteration 5"
},
{
"id": "US-306",
"title": "Restaurare Butoane Export și Filtrare pe Rapoarte",
"description": "Ca utilizator mobil vreau butoane de export și filtrare pe toate rapoartele",
"priority": 8,
"acceptanceCriteria": [
"InvoicesView.vue: buton Export (pi-download) și Filtrare (pi-filter) în MobileTopBar actions",
"TrialBalanceView.vue: buton Export și Filtrare în MobileTopBar actions",
"BankCashRegisterView.vue: buton Export și Filtrare în MobileTopBar actions",
"ReceiptsListView.vue: buton Export și Filtrare în MobileTopBar actions",
"MaturityAnalysisView.vue: buton Export și Filtrare în MobileTopBar actions",
"Click pe Filtrare deschide BottomSheet cu filtrele paginii",
"npm run build passes"
],
"passes": true,
"notes": "Completed in iteration 6"
},
{
"id": "US-309",
"title": "Cleanup Dashboard Mobile",
"description": "Ca utilizator mobil vreau Dashboard-ul să afișeze doar KPIs fără quick-links",
"priority": 9,
"acceptanceCriteria": [
"DashboardView.vue pe mobil: ștergere quick-link cards dacă există",
"Doar SwipeableCards cu KPIs pe mobil",
"Desktop rămâne neschimbat",
"MobileTopBar cu title Dashboard",
"MobileBottomNav cu Dashboard activ",
"npm run build passes"
],
"passes": true,
"notes": "Completed in iteration 7"
},
{
"id": "US-310",
"title": "Actualizare Router cu Modificările",
"description": "Ca developer vreau router-ul actualizat pentru a funcționa cu noile pagini",
"priority": 10,
"acceptanceCriteria": [
"Rută /reports/invoices → InvoicesView funcțională",
"Rută /reports/maturity-analysis → MaturityAnalysisView funcțională",
"Rutele existente păstrate: /reports/trial-balance, /reports/bank-cash, /reports/detailed-invoices",
"Cleanup rute nefolosite dacă există",
"Toate rutele lazy loaded",
"npm run build passes"
],
"passes": true,
"notes": "Completed in iteration 8"
},
{
"id": "US-311",
"title": "Actualizare Documentație MOBILE_PATTERNS.md",
"description": "Ca developer viitor vreau documentația actualizată cu modificările din Phase 3",
"priority": 11,
"acceptanceCriteria": [
"Secțiune actualizată: Footer Navigation (Dashboard, Bonuri, Facturi, Setări)",
"Secțiune nouă: FAB Pattern pentru acțiuni contextuale",
"Secțiune nouă: Tab Pattern pentru switch Clienți/Furnizori",
"Secțiune actualizată: Hamburger Menu grupat pe categorii",
"Diagrame ASCII actualizate cu noua structură navigare",
"npm run build passes"
],
"passes": true,
"notes": "Completed in iteration 9"
}
]
}