feat: Shows vendor name in Spoolman Link Modal (#958)

* Add filament_vendor field to UnlinkedSpool model and populate from API response
* Add filament_vendor field to UnlinkedSpool interface
* Enhance LinkSpoolModal to include filament_vendor in search and display
This commit is contained in:
Dakota G
2026-04-13 08:26:46 +02:00
committed by GitHub
parent 18dceb3c32
commit f84e5ba173
3 changed files with 5 additions and 0 deletions
+2
View File
@@ -571,6 +571,7 @@ class UnlinkedSpool(BaseModel):
id: int
filament_name: str | None
filament_vendor: str | None
filament_material: str | None
filament_color_hex: str | None
remaining_weight: float | None
@@ -613,6 +614,7 @@ async def get_unlinked_spools(
UnlinkedSpool(
id=spool["id"],
filament_name=filament.get("name"),
filament_vendor=(filament.get("vendor") or {}).get("name"),
filament_material=filament.get("material"),
filament_color_hex=filament.get("color_hex"),
remaining_weight=spool.get("remaining_weight"),
+1
View File
@@ -1981,6 +1981,7 @@ export interface SpoolmanSyncResult {
export interface UnlinkedSpool {
id: number;
filament_name: string | null;
filament_vendor: string | null;
filament_material: string | null;
filament_color_hex: string | null;
remaining_weight: number | null;
@@ -38,6 +38,7 @@ export function LinkSpoolModal({ isOpen, onClose, tagUid, trayUuid, printerId, a
const q = search.toLowerCase();
return (
(s.filament_name && s.filament_name.toLowerCase().includes(q)) ||
(s.filament_vendor && s.filament_vendor.toLowerCase().includes(q)) ||
(s.filament_material && s.filament_material.toLowerCase().includes(q)) ||
String(s.id).includes(q)
);
@@ -131,6 +132,7 @@ export function LinkSpoolModal({ isOpen, onClose, tagUid, trayUuid, printerId, a
{spool.filament_name || t('spoolman.spoolId')}
</div>
<div className="text-xs text-bambu-gray truncate">
{spool.filament_vendor ? `${spool.filament_vendor} · ` : ''}
{spool.filament_material || 'Unknown'} &middot; #{spool.id}
</div>
</div>