@@ -78,6 +78,9 @@ function SettingsContent() {
7878 const [ enabledFilters , setEnabledFilters ] = useState < string [ ] > ( [ ] ) ;
7979 const [ savingFilters , setSavingFilters ] = useState ( false ) ;
8080
81+ // Dashboard display settings
82+ const [ showSpoolLocation , setShowSpoolLocation ] = useState ( false ) ;
83+
8184 // QR base URL state
8285 const [ qrBaseUrl , setQrBaseUrl ] = useState ( '' ) ;
8386 const [ savingQrUrl , setSavingQrUrl ] = useState ( false ) ;
@@ -158,6 +161,9 @@ function SettingsContent() {
158161 if ( data . qrBaseUrl !== undefined ) {
159162 setQrBaseUrl ( data . qrBaseUrl ) ;
160163 }
164+ if ( data . showSpoolLocation !== undefined ) {
165+ setShowSpoolLocation ( data . showSpoolLocation ) ;
166+ }
161167 } catch {
162168 toast . error ( 'Failed to load settings' ) ;
163169 } finally {
@@ -810,6 +816,53 @@ function SettingsContent() {
810816 </ CardContent >
811817 </ Card >
812818
819+ { /* Dashboard Display Settings */ }
820+ { settings ?. spoolman && (
821+ < >
822+ < Separator />
823+ < Card >
824+ < CardHeader >
825+ < CardTitle > Dashboard Display</ CardTitle >
826+ < CardDescription >
827+ Configure what information is shown on the dashboard spool cards.
828+ </ CardDescription >
829+ </ CardHeader >
830+ < CardContent >
831+ < div className = "flex items-center space-x-3" >
832+ < Checkbox
833+ id = "show-spool-location"
834+ checked = { showSpoolLocation }
835+ onCheckedChange = { async ( checked ) => {
836+ const enabled = checked === true ;
837+ setShowSpoolLocation ( enabled ) ;
838+ try {
839+ const res = await fetch ( '/api/settings' , {
840+ method : 'POST' ,
841+ headers : { 'Content-Type' : 'application/json' } ,
842+ body : JSON . stringify ( { type : 'show_spool_location' , enabled } ) ,
843+ } ) ;
844+ if ( ! res . ok ) throw new Error ( ) ;
845+ toast . success ( enabled ? 'Spool location enabled on dashboard' : 'Spool location hidden on dashboard' ) ;
846+ } catch {
847+ setShowSpoolLocation ( ! enabled ) ;
848+ toast . error ( 'Failed to save setting' ) ;
849+ }
850+ } }
851+ />
852+ < div >
853+ < Label htmlFor = "show-spool-location" className = "text-sm font-medium cursor-pointer" >
854+ Show spool location
855+ </ Label >
856+ < p className = "text-xs text-muted-foreground" >
857+ Display the Spoolman location field on each spool card (e.g., shelf, dry box, bin number)
858+ </ p >
859+ </ div >
860+ </ div >
861+ </ CardContent >
862+ </ Card >
863+ </ >
864+ ) }
865+
813866 { /* Spool Filter Configuration */ }
814867 { settings ?. spoolman && (
815868 < >
0 commit comments