By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
Summary
Drodpdowns with multiple choice should use checkboxes instead of simple checkmarks
Fixed some type errors from dev
Refined the UX of labels cell of the client/sites & resources tables to not close when toggling a label
Screenshot
Name
Screenshot
Site labels
Resource labels
checboxes Dropdown
🔄 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/fosrl/pangolin/pull/3201
**Author:** [@Fredkiss3](https://github.com/Fredkiss3)
**Created:** 6/2/2026
**Status:** ✅ Merged
**Merged:** 6/3/2026
**Merged by:** [@oschwartz10612](https://github.com/oschwartz10612)
**Base:** `dev` ← **Head:** `refactor/standardize-dropdowns`
---
### 📝 Commits (7)
- [`6c1798a`](https://github.com/fosrl/pangolin/commit/6c1798a8c59afb0da1b528918e54434a8e622d37) 💄 use checkbox for column filter with dropdown
- [`97aeee5`](https://github.com/fosrl/pangolin/commit/97aeee541a1bd008bbf7bef0f471b731c1b57769) ♻️ Label table cell optimization
- [`29717e1`](https://github.com/fosrl/pangolin/commit/29717e19db1af0687b4a313b8f826f2f85ebb531) ♻️ update machine client labels cell
- [`00dce19`](https://github.com/fosrl/pangolin/commit/00dce199974e3e15da95b0c5c23a333f746739fa) Merge branch 'dev' into refactor/standardize-dropdowns
- [`565727a`](https://github.com/fosrl/pangolin/commit/565727ad36535d2c0e62079caee3b25f3488c731) 🏷️ import types correctly
- [`a21569b`](https://github.com/fosrl/pangolin/commit/a21569bd005c3f7cd3d122ae21282ef6aefa6ed5) 🏷️ fix types imports from a client component
- [`fcb73f7`](https://github.com/fosrl/pangolin/commit/fcb73f78ea08da11f5cec2374f288615aa67161f) 🏷️ fix type imports
### 📊 Changes
**16 files changed** (+248 additions, -273 deletions)
<details>
<summary>View changed files</summary>
📝 `server/db/pg/schema/schema.ts` (+10 -0)
📝 `server/private/routers/ssh/signSshKey.ts` (+1 -17)
➕ `server/routers/ssh/types.ts` (+16 -0)
📝 `src/app/ssh/SshClient.tsx` (+1 -1)
📝 `src/app/ssh/page.tsx` (+1 -1)
📝 `src/components/ColumnMultiFilterButton.tsx` (+6 -7)
📝 `src/components/LabelColumnFilterButton.tsx` (+6 -7)
📝 `src/components/LabelsTableCell.tsx` (+18 -12)
📝 `src/components/MachineClientsTable.tsx` (+12 -46)
📝 `src/components/PrivateResourcesTable.tsx` (+12 -46)
📝 `src/components/ProxyResourcesTable.tsx` (+13 -49)
📝 `src/components/SitesTable.tsx` (+13 -56)
📝 `src/components/labels-selector.tsx` (+1 -4)
📝 `src/components/multi-select/multi-select-content.tsx` (+6 -7)
📝 `src/hooks/useNavigationContext.ts` (+29 -20)
➕ `src/hooks/useOptimisticLabels.ts` (+103 -0)
</details>
### 📄 Description
## Community Contribution License Agreement
By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
## Summary
- Drodpdowns with multiple choice should use checkboxes instead of simple checkmarks
- Fixed some type errors from `dev`
- Refined the UX of labels cell of the client/sites & resources tables to not close when toggling a label
## Screenshot
| Name | Screenshot |
|---|---|
| Site labels | <video src="https://github.com/user-attachments/assets/5b92aa92-c07a-4dcd-a6aa-944a52ca53a1"></video> |
| Resource labels | <video src="https://github.com/user-attachments/assets/eb64fee4-690e-4fa9-aa1b-873aca980147"></video> |
| checboxes Dropdown | <img width="797" height="416" alt="Screenshot 2026-06-03 at 21 05 20" src="https://github.com/user-attachments/assets/783851f5-5f07-4914-8b74-8de1137d0794" /> |
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/fosrl/pangolin/pull/3201
Author: @Fredkiss3
Created: 6/2/2026
Status: ✅ Merged
Merged: 6/3/2026
Merged by: @oschwartz10612
Base:
dev← Head:refactor/standardize-dropdowns📝 Commits (7)
6c1798a💄 use checkbox for column filter with dropdown97aeee5♻️ Label table cell optimization29717e1♻️ update machine client labels cell00dce19Merge branch 'dev' into refactor/standardize-dropdowns565727a🏷️ import types correctlya21569b🏷️ fix types imports from a client componentfcb73f7🏷️ fix type imports📊 Changes
16 files changed (+248 additions, -273 deletions)
View changed files
📝
server/db/pg/schema/schema.ts(+10 -0)📝
server/private/routers/ssh/signSshKey.ts(+1 -17)➕
server/routers/ssh/types.ts(+16 -0)📝
src/app/ssh/SshClient.tsx(+1 -1)📝
src/app/ssh/page.tsx(+1 -1)📝
src/components/ColumnMultiFilterButton.tsx(+6 -7)📝
src/components/LabelColumnFilterButton.tsx(+6 -7)📝
src/components/LabelsTableCell.tsx(+18 -12)📝
src/components/MachineClientsTable.tsx(+12 -46)📝
src/components/PrivateResourcesTable.tsx(+12 -46)📝
src/components/ProxyResourcesTable.tsx(+13 -49)📝
src/components/SitesTable.tsx(+13 -56)📝
src/components/labels-selector.tsx(+1 -4)📝
src/components/multi-select/multi-select-content.tsx(+6 -7)📝
src/hooks/useNavigationContext.ts(+29 -20)➕
src/hooks/useOptimisticLabels.ts(+103 -0)📄 Description
Community Contribution License Agreement
By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
Summary
devScreenshot
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.