From 1535590533fbbc852fc0724f791c91e4c08d35c2 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Mon, 3 Feb 2025 11:51:13 +0000 Subject: [PATCH 1/3] Add user setting --- src/backend/InvenTree/common/setting/user.py | 6 ++++++ src/frontend/src/pages/Index/Settings/UserSettings.tsx | 1 + 2 files changed, 7 insertions(+) diff --git a/src/backend/InvenTree/common/setting/user.py b/src/backend/InvenTree/common/setting/user.py index 3466eed252a0..a2cd85061286 100644 --- a/src/backend/InvenTree/common/setting/user.py +++ b/src/backend/InvenTree/common/setting/user.py @@ -177,6 +177,12 @@ def label_printer_options(): 'default': False, 'validator': bool, }, + 'STICKY_TABLE_HEADER': { + 'name': _('Fixed Table Headers'), + 'description': _('Table headers are fixed to the top of the table'), + 'default': False, + 'validator': bool, + }, 'DATE_DISPLAY_FORMAT': { 'name': _('Date Format'), 'description': _('Preferred format for displaying dates'), diff --git a/src/frontend/src/pages/Index/Settings/UserSettings.tsx b/src/frontend/src/pages/Index/Settings/UserSettings.tsx index 0147e9b6034d..ffeba14e5b3c 100644 --- a/src/frontend/src/pages/Index/Settings/UserSettings.tsx +++ b/src/frontend/src/pages/Index/Settings/UserSettings.tsx @@ -50,6 +50,7 @@ export default function UserSettings() { Date: Mon, 3 Feb 2025 12:10:45 +0000 Subject: [PATCH 2/3] Use value of user setting --- src/frontend/src/tables/InvenTreeTable.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/frontend/src/tables/InvenTreeTable.tsx b/src/frontend/src/tables/InvenTreeTable.tsx index 0bf89e0ae4d6..fa743a825efa 100644 --- a/src/frontend/src/tables/InvenTreeTable.tsx +++ b/src/frontend/src/tables/InvenTreeTable.tsx @@ -24,6 +24,7 @@ import { navigateToLink } from '../functions/navigation'; import { getDetailUrl } from '../functions/urls'; import type { TableState } from '../hooks/UseTable'; import { useLocalState } from '../states/LocalState'; +import { useGlobalSettingsState } from '../states/SettingsState'; import type { TableColumn } from './Column'; import type { TableFilter } from './Filter'; import InvenTreeTableHeader from './InvenTreeTableHeader'; @@ -143,6 +144,12 @@ export function InvenTreeTable>({ const navigate = useNavigate(); const { showContextMenu } = useContextMenu(); + const globalSettings = useGlobalSettingsState(); + + const stickyTableHeader = useMemo(() => { + return globalSettings.isSet('STICKY_TABLE_HEADER'); + }, [globalSettings]); + // Construct table filters - note that we can introspect filter labels from column names const filters: TableFilter[] = useMemo(() => { return ( @@ -707,6 +714,8 @@ export function InvenTreeTable>({ Date: Mon, 3 Feb 2025 12:22:10 +0000 Subject: [PATCH 3/3] Fix user for global --- src/frontend/src/tables/InvenTreeTable.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/frontend/src/tables/InvenTreeTable.tsx b/src/frontend/src/tables/InvenTreeTable.tsx index fa743a825efa..e977f0ef4003 100644 --- a/src/frontend/src/tables/InvenTreeTable.tsx +++ b/src/frontend/src/tables/InvenTreeTable.tsx @@ -24,7 +24,7 @@ import { navigateToLink } from '../functions/navigation'; import { getDetailUrl } from '../functions/urls'; import type { TableState } from '../hooks/UseTable'; import { useLocalState } from '../states/LocalState'; -import { useGlobalSettingsState } from '../states/SettingsState'; +import { useUserSettingsState } from '../states/SettingsState'; import type { TableColumn } from './Column'; import type { TableFilter } from './Filter'; import InvenTreeTableHeader from './InvenTreeTableHeader'; @@ -144,11 +144,11 @@ export function InvenTreeTable>({ const navigate = useNavigate(); const { showContextMenu } = useContextMenu(); - const globalSettings = useGlobalSettingsState(); + const userSettings = useUserSettingsState(); const stickyTableHeader = useMemo(() => { - return globalSettings.isSet('STICKY_TABLE_HEADER'); - }, [globalSettings]); + return userSettings.isSet('STICKY_TABLE_HEADER'); + }, [userSettings]); // Construct table filters - note that we can introspect filter labels from column names const filters: TableFilter[] = useMemo(() => {