Procházet zdrojové kódy

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
Dakota G před 1 měsícem
rodič
revize
f84e5ba173

+ 2 - 0
backend/app/api/routes/spoolman.py

@@ -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 - 0
frontend/src/api/client.ts

@@ -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;

+ 2 - 0
frontend/src/components/LinkSpoolModal.tsx

@@ -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>