feat(ui-fixes-phase6): Complete US-609 - Buton Resetează pe Toate Paginile cu Filtre Mobil

Implemented by Ralph autonomous loop.
Iteration: 10

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Claude Agent
2026-01-13 16:42:27 +00:00
parent 109ef50fb2
commit bc8537f9b5
4 changed files with 27 additions and 9 deletions

View File

@@ -179,8 +179,8 @@
"npm run typecheck passes", "npm run typecheck passes",
"Verify in browser: All filter pages show Reset button in mobile header" "Verify in browser: All filter pages show Reset button in mobile header"
], ],
"passes": false, "passes": true,
"notes": "Modifică InvoicesView.vue, CashView.vue, BankView.vue, ReceiptsListView.vue" "notes": "Completed in iteration 10"
}, },
{ {
"id": "US-610", "id": "US-610",

View File

@@ -296,3 +296,9 @@ PRD: tasks/prd-ui-fixes-phase6.md
[2026-01-13 16:33:10] Working on story: US-608 [2026-01-13 16:33:10] Working on story: US-608
[2026-01-13 16:33:10] Running Claude... (log: /workspace/roa2web/scripts/ralph/logs/iteration_9_US-608.log) [2026-01-13 16:33:10] Running Claude... (log: /workspace/roa2web/scripts/ralph/logs/iteration_9_US-608.log)
[2026-01-13 16:38:01] SUCCESS: Story US-608 passed! [2026-01-13 16:38:01] SUCCESS: Story US-608 passed!
[2026-01-13 16:38:01] Changes committed
[2026-01-13 16:38:01] Progress: 8/10 stories completed
[2026-01-13 16:38:03] === Iteration 10/30 ===
[2026-01-13 16:38:03] Working on story: US-609
[2026-01-13 16:38:03] Running Claude... (log: /workspace/roa2web/scripts/ralph/logs/iteration_10_US-609.log)
[2026-01-13 16:42:27] SUCCESS: Story US-609 passed!

View File

@@ -1253,7 +1253,7 @@ const goToOCRScan = () => {
}) })
} }
// US-103/US-306: Top bar actions for MobileTopBar component // US-103/US-306/US-609: Top bar actions for MobileTopBar component
const mobileTopBarActions = computed(() => { const mobileTopBarActions = computed(() => {
if (mobileSelectionMode.value) { if (mobileSelectionMode.value) {
// Selection mode - show select all action // Selection mode - show select all action
@@ -1261,15 +1261,16 @@ const mobileTopBarActions = computed(() => {
{ id: 'select-all', icon: 'pi pi-check-square', label: 'Selectează tot', tooltip: 'Selectează tot' } { id: 'select-all', icon: 'pi pi-check-square', label: 'Selectează tot', tooltip: 'Selectează tot' }
] ]
} }
// Normal mode - show filter, export, more menu (US-306) // Normal mode - show filter, reset, export, more menu (US-306, US-609)
return [ return [
{ id: 'filter', icon: 'pi pi-filter', active: hasActiveFilters.value, tooltip: 'Filtre' }, { id: 'filter', icon: 'pi pi-filter', active: hasActiveFilters.value, tooltip: 'Filtre' },
{ id: 'reset', icon: 'pi pi-filter-slash', tooltip: 'Resetează Filtrele' },
{ id: 'export', icon: 'pi pi-download', tooltip: 'Export Excel' }, { id: 'export', icon: 'pi pi-download', tooltip: 'Export Excel' },
{ id: 'more', icon: 'pi pi-ellipsis-v', tooltip: 'Mai multe' } { id: 'more', icon: 'pi pi-ellipsis-v', tooltip: 'Mai multe' }
] ]
}) })
// US-103/US-306: Handle top bar action clicks // US-103/US-306/US-609: Handle top bar action clicks
const handleTopBarAction = (action) => { const handleTopBarAction = (action) => {
switch (action.id) { switch (action.id) {
case 'select-all': case 'select-all':
@@ -1278,10 +1279,14 @@ const handleTopBarAction = (action) => {
case 'filter': case 'filter':
showFilters.value = !showFilters.value showFilters.value = !showFilters.value
break break
case 'reset':
// US-609: Reset all filters to default values
clearFilters()
break
case 'export': case 'export':
// US-502: Show export menu (PDF/XLSX dropdown) on mobile too // US-502: Show export menu (PDF/XLSX dropdown) on mobile too
if (exportMenuRef.value) { if (exportMenuRef.value) {
const btn = document.querySelector('.mobile-top-bar .top-bar-btn:nth-child(2)') const btn = document.querySelector('.mobile-top-bar .top-bar-btn:nth-child(3)')
if (btn) { if (btn) {
exportMenuRef.value.toggle({ currentTarget: btn }) exportMenuRef.value.toggle({ currentTarget: btn })
} }

View File

@@ -101,7 +101,7 @@
icon="pi pi-filter-slash" icon="pi pi-filter-slash"
label="Resetează" label="Resetează"
class="p-button-outlined p-button-secondary" class="p-button-outlined p-button-secondary"
@click="clearFilters; showFilters = false" @click="clearFilters(); showFilters = false"
/> />
<Button <Button
icon="pi pi-check" icon="pi pi-check"
@@ -436,7 +436,7 @@ const handleLogout = async () => {
router.push('/login'); router.push('/login');
}; };
// US-107: Mobile TopBar actions (refresh + export) // US-107/US-609: Mobile TopBar actions (filter, reset, refresh, export)
const mobileTopBarActions = computed(() => [ const mobileTopBarActions = computed(() => [
{ {
icon: "pi pi-filter", icon: "pi pi-filter",
@@ -444,6 +444,11 @@ const mobileTopBarActions = computed(() => [
tooltip: "Filtre", tooltip: "Filtre",
active: hasActiveFilters.value active: hasActiveFilters.value
}, },
{
icon: "pi pi-filter-slash",
label: "Resetează",
tooltip: "Resetează Filtrele"
},
{ {
icon: "pi pi-refresh", icon: "pi pi-refresh",
label: "Actualizează", label: "Actualizează",
@@ -456,10 +461,12 @@ const mobileTopBarActions = computed(() => [
} }
]); ]);
// US-107: Handle top bar action clicks // US-107/US-609: Handle top bar action clicks
const handleTopBarAction = (action) => { const handleTopBarAction = (action) => {
if (action.icon === "pi pi-filter") { if (action.icon === "pi pi-filter") {
showFilters.value = !showFilters.value; showFilters.value = !showFilters.value;
} else if (action.icon === "pi pi-filter-slash") {
clearFilters();
} else if (action.icon === "pi pi-refresh") { } else if (action.icon === "pi pi-refresh") {
refreshData(); refreshData();
} else if (action.icon === "pi pi-download") { } else if (action.icon === "pi pi-download") {