feat: add status filter to ExtractionsHeader and update SchedulersHeader layout
Some checks failed
Frontend CI / lint (push) Failing after 22s
Frontend CI / build (push) Has been skipped

This commit is contained in:
JSC
2025-09-20 15:03:36 +02:00
parent f559a6aa73
commit 70131ecd2d
2 changed files with 39 additions and 33 deletions

View File

@@ -93,11 +93,28 @@ export function ExtractionsHeader({
</div> </div>
<div className="flex gap-2"> <div className="flex gap-2">
<Select
value={statusFilter}
onValueChange={value => onStatusFilterChange(value as ExtractionStatus | 'all')}
>
<SelectTrigger className="w-[160px]">
<Filter className="h-4 w-4 mr-2" />
<SelectValue placeholder="Status" />
</SelectTrigger>
<SelectContent>
<SelectItem value="all">All Status</SelectItem>
<SelectItem value="pending">Pending</SelectItem>
<SelectItem value="processing">Processing</SelectItem>
<SelectItem value="completed">Completed</SelectItem>
<SelectItem value="failed">Failed</SelectItem>
</SelectContent>
</Select>
<Select <Select
value={sortBy} value={sortBy}
onValueChange={value => onSortByChange(value as ExtractionSortField)} onValueChange={value => onSortByChange(value as ExtractionSortField)}
> >
<SelectTrigger className="w-[180px]"> <SelectTrigger className="w-[150px]">
<SelectValue placeholder="Sort by" /> <SelectValue placeholder="Sort by" />
</SelectTrigger> </SelectTrigger>
<SelectContent> <SelectContent>
@@ -122,23 +139,6 @@ export function ExtractionsHeader({
)} )}
</Button> </Button>
<Select
value={statusFilter}
onValueChange={value => onStatusFilterChange(value as ExtractionStatus | 'all')}
>
<SelectTrigger className="w-[120px]">
<Filter className="h-4 w-4 mr-2" />
<SelectValue placeholder="Status" />
</SelectTrigger>
<SelectContent>
<SelectItem value="all">All Status</SelectItem>
<SelectItem value="pending">Pending</SelectItem>
<SelectItem value="processing">Processing</SelectItem>
<SelectItem value="completed">Completed</SelectItem>
<SelectItem value="failed">Failed</SelectItem>
</SelectContent>
</Select>
<Button <Button
variant="outline" variant="outline"
size="icon" size="icon"

View File

@@ -14,7 +14,8 @@ import {
getTaskTypeLabel, getTaskTypeLabel,
} from '@/lib/api/services/schedulers' } from '@/lib/api/services/schedulers'
import { import {
CalendarPlus, Filter,
Plus,
RefreshCw, RefreshCw,
Search, Search,
} from 'lucide-react' } from 'lucide-react'
@@ -64,18 +65,9 @@ export function SchedulersHeader({
</p> </p>
</div> </div>
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
<Button <Button onClick={onCreateClick}>
variant="outline" <Plus className="h-4 w-4 mr-2" />
size="sm" Add Extraction
onClick={onRefresh}
disabled={loading}
>
<RefreshCw className={`h-4 w-4 ${loading ? 'animate-spin' : ''}`} />
Refresh
</Button>
<Button onClick={onCreateClick} size="sm">
<CalendarPlus className="h-4 w-4" />
Create Task
</Button> </Button>
</div> </div>
</div> </div>
@@ -96,7 +88,8 @@ export function SchedulersHeader({
value={statusFilter} value={statusFilter}
onValueChange={onStatusFilterChange} onValueChange={onStatusFilterChange}
> >
<SelectTrigger className="w-[140px]"> <SelectTrigger className="w-[160px]">
<Filter className="h-4 w-4 mr-2" />
<SelectValue placeholder="All Status" /> <SelectValue placeholder="All Status" />
</SelectTrigger> </SelectTrigger>
<SelectContent> <SelectContent>
@@ -113,7 +106,8 @@ export function SchedulersHeader({
value={taskTypeFilter} value={taskTypeFilter}
onValueChange={onTaskTypeFilterChange} onValueChange={onTaskTypeFilterChange}
> >
<SelectTrigger className="w-[140px]"> <SelectTrigger className="w-[200px]">
<Filter className="h-4 w-4 mr-2" />
<SelectValue placeholder="All Types" /> <SelectValue placeholder="All Types" />
</SelectTrigger> </SelectTrigger>
<SelectContent> <SelectContent>
@@ -125,6 +119,18 @@ export function SchedulersHeader({
))} ))}
</SelectContent> </SelectContent>
</Select> </Select>
<Button
variant="outline"
size="icon"
onClick={onRefresh}
disabled={loading}
title="Refresh extractions"
>
<RefreshCw
className={`h-4 w-4 ${loading ? 'animate-spin' : ''}`}
/>
</Button>
</div> </div>
</div> </div>