[PR #920] [MERGED] Feature/printer search filter #1131

Closed
opened 2026-05-06 12:35:14 +02:00 by BreizhHardware · 0 comments

📋 Pull Request Information

Original PR: https://github.com/maziggy/bambuddy/pull/920
Author: @legend813
Created: 4/8/2026
Status: Merged
Merged: 4/10/2026
Merged by: @maziggy

Base: devHead: feat/printer-search-filter


📝 Commits (9)

  • f54bd6e feat(printers): add live search/filter bar to printers page
  • d207d87 feat(printers): add status and location filter dropdowns, hide search when no printers
  • 65ebaf2 Merge branch 'dev' into feat/printer-search-filter
  • 8331677 fix(printers): address PR review feedback on search/filter empty state and accessibility
  • fa96452 Merge branch 'dev' into feat/printer-search-filter
  • 5489be8 fix(printers): address PR review feedback on search/filter
  • 394b63b Merge branch 'dev' into feat/printer-search-filter
  • 7ea9a25 Merge branch 'dev' into feat/printer-search-filter
  • 655054a Delete test_backend.sh

📊 Changes

10 files changed (+323 additions, -14 deletions)

View changed files

📝 frontend/src/__tests__/pages/PrintersPage.test.tsx (+150 -0)
📝 frontend/src/i18n/locales/de.ts (+6 -0)
📝 frontend/src/i18n/locales/en.ts (+6 -0)
📝 frontend/src/i18n/locales/fr.ts (+6 -0)
📝 frontend/src/i18n/locales/it.ts (+6 -0)
📝 frontend/src/i18n/locales/ja.ts (+6 -0)
📝 frontend/src/i18n/locales/pt-BR.ts (+6 -0)
📝 frontend/src/i18n/locales/zh-CN.ts (+6 -0)
📝 frontend/src/pages/PrintersPage.tsx (+131 -3)
test_backend.sh (+0 -11)

📄 Description

Description

Adds live search and filter controls to the Printers page to make it easier to find specific printers in large setups, especially on mobile where browser Ctrl+F is impractical. Filtering is purely client-side — no backend changes made.

Fixes #852

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Code refactoring
  • Performance improvement
  • Test addition or update

Changes Made

  • Added a live search bar below the page title that filters printers by name, model, location, and serial number (includes a clear button)
  • Added a status filter dropdown (All statuses / Printing / Paused / Idle / Finished / Error / Offline)
  • Added a location filter dropdown — only visible when at least one printer has a location configured
  • All three filters are combinable; search bar and dropdowns are hidden when no printers are configured yet
  • Added i18n keys for all 7 supported locales (EN, DE, FR, IT, JA, PT-BR, ZH-CN)

Screenshots

image image image image image

Testing

  • I have tested this on my local machine
  • I have tested with my printer model: X1C

Checklist

  • My code follows the project's coding style
  • I have commented my code where necessary
  • I have updated the documentation (if needed)
  • My changes generate no new warnings
  • I have tested my changes thoroughly

Additional Notes

The status filter uses the existing client-side queryClient cache for status data, consistent with how the existing status sort (sortBy=status) works. Status filter results reflect the cache state at the time of selection — same behavior as the existing status sort, not live-reactive to WebSocket updates.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/maziggy/bambuddy/pull/920 **Author:** [@legend813](https://github.com/legend813) **Created:** 4/8/2026 **Status:** ✅ Merged **Merged:** 4/10/2026 **Merged by:** [@maziggy](https://github.com/maziggy) **Base:** `dev` ← **Head:** `feat/printer-search-filter` --- ### 📝 Commits (9) - [`f54bd6e`](https://github.com/maziggy/bambuddy/commit/f54bd6e45031f376dbb9124b8a4ae7986310c434) feat(printers): add live search/filter bar to printers page - [`d207d87`](https://github.com/maziggy/bambuddy/commit/d207d874b8d4a936f0116a309daceb179bbaf65a) feat(printers): add status and location filter dropdowns, hide search when no printers - [`65ebaf2`](https://github.com/maziggy/bambuddy/commit/65ebaf2d4a7265cd9947e7450f1a824929cf8ce1) Merge branch 'dev' into feat/printer-search-filter - [`8331677`](https://github.com/maziggy/bambuddy/commit/83316779ac0b1f51e550c9db2bfd92679764dd58) fix(printers): address PR review feedback on search/filter empty state and accessibility - [`fa96452`](https://github.com/maziggy/bambuddy/commit/fa964527fe84274e4b700bd44a140b8faa0872f9) Merge branch 'dev' into feat/printer-search-filter - [`5489be8`](https://github.com/maziggy/bambuddy/commit/5489be85e5f2abff594e002e7f9c1d6b6cc3c61c) fix(printers): address PR review feedback on search/filter - [`394b63b`](https://github.com/maziggy/bambuddy/commit/394b63b06d66f6248b62d95ba3cb4c5b56944b5f) Merge branch 'dev' into feat/printer-search-filter - [`7ea9a25`](https://github.com/maziggy/bambuddy/commit/7ea9a251e5f70b39b9becfb33ed8963cd496686b) Merge branch 'dev' into feat/printer-search-filter - [`655054a`](https://github.com/maziggy/bambuddy/commit/655054a246e06bbccc2f356571c6a523f598bf84) Delete test_backend.sh ### 📊 Changes **10 files changed** (+323 additions, -14 deletions) <details> <summary>View changed files</summary> 📝 `frontend/src/__tests__/pages/PrintersPage.test.tsx` (+150 -0) 📝 `frontend/src/i18n/locales/de.ts` (+6 -0) 📝 `frontend/src/i18n/locales/en.ts` (+6 -0) 📝 `frontend/src/i18n/locales/fr.ts` (+6 -0) 📝 `frontend/src/i18n/locales/it.ts` (+6 -0) 📝 `frontend/src/i18n/locales/ja.ts` (+6 -0) 📝 `frontend/src/i18n/locales/pt-BR.ts` (+6 -0) 📝 `frontend/src/i18n/locales/zh-CN.ts` (+6 -0) 📝 `frontend/src/pages/PrintersPage.tsx` (+131 -3) ➖ `test_backend.sh` (+0 -11) </details> ### 📄 Description ## Description Adds live search and filter controls to the Printers page to make it easier to find specific printers in large setups, especially on mobile where browser Ctrl+F is impractical. Filtering is purely client-side — no backend changes made. ## Related Issue Fixes #852 ## Type of Change - [ ] Bug fix (non-breaking change that fixes an issue) - [X] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update - [ ] Code refactoring - [ ] Performance improvement - [ ] Test addition or update ## Changes Made - Added a live search bar below the page title that filters printers by name, model, location, and serial number (includes a clear button) - Added a status filter dropdown (All statuses / Printing / Paused / Idle / Finished / Error / Offline) - Added a location filter dropdown — only visible when at least one printer has a location configured - All three filters are combinable; search bar and dropdowns are hidden when no printers are configured yet - Added i18n keys for all 7 supported locales (EN, DE, FR, IT, JA, PT-BR, ZH-CN) ## Screenshots <img width="1432" height="216" alt="image" src="https://github.com/user-attachments/assets/ddf9d460-31ee-48f8-b67a-f1021c5b223d" /> <img width="1002" height="212" alt="image" src="https://github.com/user-attachments/assets/5275e421-a922-44d7-8c83-255d6870c86b" /> <img width="154" height="193" alt="image" src="https://github.com/user-attachments/assets/5b94f27b-53ec-4a55-82ef-d352fb434f4f" /> <img width="128" height="96" alt="image" src="https://github.com/user-attachments/assets/f728fc5b-0d1c-4ff4-84ee-cb8a310eb170" /> <img width="970" height="232" alt="image" src="https://github.com/user-attachments/assets/b784be2b-a01d-4df0-a748-96b39a074e9e" /> ## Testing <!-- Describe how you tested your changes --> - [X] I have tested this on my local machine - [X] I have tested with my printer model: X1C ## Checklist - [X] My code follows the project's coding style - [X] I have commented my code where necessary - [ ] I have updated the documentation (if needed) - [X] My changes generate no new warnings - [X] I have tested my changes thoroughly ## Additional Notes The status filter uses the existing client-side `queryClient` cache for status data, consistent with how the existing status sort (`sortBy=status`) works. Status filter results reflect the cache state at the time of selection — same behavior as the existing status sort, not live-reactive to WebSocket updates. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
BreizhHardware 2026-05-06 12:35:14 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/bambuddy#1131
No description provided.