CUB-129: Build Print Jobs list page #49

Open
Rex wants to merge 1 commits from agent/rex/CUB-129-print-jobs-list-page into dev
Owner

What

Builds the Print Jobs list page showing all print jobs with status and cost.

Features

  • Desktop table: job name, printer, color-coded status badge, started time, duration, filament used, cost
  • Mobile cards: responsive grid layout for touch screens
  • Status badges: color-coded (pending=gray, printing=blue, completed=green, failed=red)
  • Filters: by status (pending/printing/completed/failed), by printer name
  • Sort: click any column header (name, started, duration, filament, cost) to toggle asc/desc
  • Pagination: 20 per page with prev/next controls
  • States: loading spinner, error + retry button, empty state
  • Client-side search: filter by job name or printer name
  • Navigation: NavLink tabs in header (Inventory | Print Jobs)

Files changed

  • frontend/src/types/printJob.ts — PrintJob, PrintJobFilter, PrintJobStatus types
  • frontend/src/services/printJobService.ts — fetchPrintJobs via axios + URLSearchParams query builder
  • frontend/src/pages/PrintJobsPage.tsx — full page component
  • frontend/src/App.tsx — add route + nav bar

Validation

tsc → PASS (0 errors)
vite build → PASS (1.33s)

Closes CUB-129

## What Builds the Print Jobs list page showing all print jobs with status and cost. ### Features - **Desktop table**: job name, printer, color-coded status badge, started time, duration, filament used, cost - **Mobile cards**: responsive grid layout for touch screens - **Status badges**: color-coded (pending=gray, printing=blue, completed=green, failed=red) - **Filters**: by status (pending/printing/completed/failed), by printer name - **Sort**: click any column header (name, started, duration, filament, cost) to toggle asc/desc - **Pagination**: 20 per page with prev/next controls - **States**: loading spinner, error + retry button, empty state - **Client-side search**: filter by job name or printer name - **Navigation**: NavLink tabs in header (Inventory | Print Jobs) ### Files changed - `frontend/src/types/printJob.ts` — PrintJob, PrintJobFilter, PrintJobStatus types - `frontend/src/services/printJobService.ts` — fetchPrintJobs via axios + URLSearchParams query builder - `frontend/src/pages/PrintJobsPage.tsx` — full page component - `frontend/src/App.tsx` — add route + nav bar ### Validation ``` tsc → PASS (0 errors) vite build → PASS (1.33s) ``` Closes CUB-129
Rex added 1 commit 2026-05-12 18:07:21 -04:00
CUB-129: Build Print Jobs list page
All checks were successful
Dev Build / build-test (pull_request) Successful in 1m26s
ef238cfdbe
- Add PrintJob types (PrintJob, PrintJobFilter) with status union type
- Add printJobService.ts using axios + TanStack Query
- Build PrintJobsPage.tsx with:
  - Desktop table: job name, printer, color-coded status badge, started time, duration, filament used, cost
  - Mobile card layout with grid-based info display
  - Filter by status (pending/printing/completed/failed)
  - Filter by printer name
  - Sort by any column (name, started_at, duration, filament, cost)
  - Pagination with 20 per page
  - Loading spinner, error with retry, empty state
  - Client-side text search by job/printer name
  - Duration formatting (h/m/s)
- Add navigation bar in App.tsx with Inventory + Print Jobs tabs using NavLink
All checks were successful
Dev Build / build-test (pull_request) Successful in 1m26s
This pull request has changes conflicting with the target branch.
  • frontend/src/App.tsx
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin agent/rex/CUB-129-print-jobs-list-page:agent/rex/CUB-129-print-jobs-list-page
git checkout agent/rex/CUB-129-print-jobs-list-page
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: CubeCraft-Creations/Extrudex#49