diff --git a/scripts/ralph/prd.json b/scripts/ralph/prd.json index c8d0058..80900f8 100644 --- a/scripts/ralph/prd.json +++ b/scripts/ralph/prd.json @@ -101,8 +101,8 @@ "npm run build passes", "Verify in browser mobil (375x667): filtrele apar în BottomSheet" ], - "passes": false, - "notes": "" + "passes": true, + "notes": "Completed in iteration 3" }, { "id": "US-504", diff --git a/scripts/ralph/progress.txt b/scripts/ralph/progress.txt index c50b180..da5f2e3 100644 --- a/scripts/ralph/progress.txt +++ b/scripts/ralph/progress.txt @@ -82,3 +82,9 @@ Design Reference: src/modules/reports/views/InvoicesView.vue [2026-01-12 22:16:55] Working on story: US-502 [2026-01-12 22:16:55] Running Claude... (log: /workspace/roa2web/scripts/ralph/logs/iteration_2_US-502.log) [2026-01-12 22:20:46] SUCCESS: Story US-502 passed! +[2026-01-12 22:20:46] Changes committed +[2026-01-12 22:20:47] Progress: 2/19 stories completed +[2026-01-12 22:20:49] === Iteration 3/100 === +[2026-01-12 22:20:49] Working on story: US-503 +[2026-01-12 22:20:49] Running Claude... (log: /workspace/roa2web/scripts/ralph/logs/iteration_3_US-503.log) +[2026-01-12 22:23:51] SUCCESS: Story US-503 passed! diff --git a/src/modules/data-entry/views/receipts/ReceiptsListView.vue b/src/modules/data-entry/views/receipts/ReceiptsListView.vue index 909579f..1170567 100644 --- a/src/modules/data-entry/views/receipts/ReceiptsListView.vue +++ b/src/modules/data-entry/views/receipts/ReceiptsListView.vue @@ -135,6 +135,87 @@ @logout="handleLogout" /> + + +

Filtre

+
+ +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+
+
+
+ - -
- - + +
{ await store.fetchReceipts() } +// US-503: Clear filters and close BottomSheet (for mobile) +const clearFiltersAndClose = async () => { + await clearFilters() + showFilters.value = false +} + +// US-503: Apply filters and close BottomSheet (for mobile) +const applyFiltersAndClose = async () => { + await onFilterChange() + showFilters.value = false +} + // Refresh data (for mobile toolbar) const refreshData = async () => { await store.fetchReceipts() @@ -4984,4 +5067,31 @@ const cleanupCompletedBatches = (storedBatchIds) => { .receipts-list-view.mobile-android-layout:has(.mobile-filter-chips-container) { padding-top: calc(56px + 48px + var(--space-sm)); /* Top bar + filter chips + spacing */ } + +/* ================================================ + US-503: BottomSheet Filters Styles + Pattern from InvoicesView.vue + ================================================ */ + +.bottom-sheet-title { + font-size: var(--text-lg); + font-weight: var(--font-semibold); + color: var(--text-color); + margin: 0 0 var(--space-md) 0; +} + +.bottom-sheet-filters { + display: flex; + flex-direction: column; + gap: var(--space-md); +} + +.bottom-sheet-actions { + display: flex; + gap: var(--space-sm); + justify-content: flex-end; + margin-top: var(--space-md); + padding-top: var(--space-md); + border-top: 1px solid var(--surface-border); +}