From c9967e6374d7d7fcf89196a1102d66e68a2ba9d7 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Mon, 7 Apr 2025 14:15:18 +0000 Subject: [PATCH] Re-use UserTable --- src/frontend/src/pages/core/CoreIndex.tsx | 2 +- src/frontend/src/tables/core/UserTable.tsx | 88 ------------------- .../src/tables/settings/GroupTable.tsx | 16 +++- .../src/tables/settings/UserTable.tsx | 4 +- 4 files changed, 16 insertions(+), 94 deletions(-) delete mode 100644 src/frontend/src/tables/core/UserTable.tsx diff --git a/src/frontend/src/pages/core/CoreIndex.tsx b/src/frontend/src/pages/core/CoreIndex.tsx index 8af5f777e9..1894df68f2 100644 --- a/src/frontend/src/pages/core/CoreIndex.tsx +++ b/src/frontend/src/pages/core/CoreIndex.tsx @@ -8,8 +8,8 @@ import { PageDetail } from '../../components/nav/PageDetail'; import { PanelGroup } from '../../components/panels/PanelGroup'; import { useUserState } from '../../states/UserState'; import { ContactTable } from '../../tables/company/ContactTable'; -import { UserTable } from '../../tables/core/UserTable'; import { GroupTable } from '../../tables/settings/GroupTable'; +import { UserTable } from '../../tables/settings/UserTable'; export default function CoreIndex() { const user = useUserState(); diff --git a/src/frontend/src/tables/core/UserTable.tsx b/src/frontend/src/tables/core/UserTable.tsx deleted file mode 100644 index 93ed8aa741..0000000000 --- a/src/frontend/src/tables/core/UserTable.tsx +++ /dev/null @@ -1,88 +0,0 @@ -import { t } from '@lingui/core/macro'; -import { useMemo } from 'react'; -import { ApiEndpoints } from '../../enums/ApiEndpoints'; -import { ModelType } from '../../enums/ModelType'; -import {} from '../../hooks/UseFilter'; -import { useTable } from '../../hooks/UseTable'; -import { apiUrl } from '../../states/ApiState'; -import { BooleanColumn } from '../ColumnRenderers'; -import type { TableFilter } from '../Filter'; -import { InvenTreeTable } from '../InvenTreeTable'; - -export function UserTable() { - const table = useTable('users-index'); - - const tableFilters: TableFilter[] = useMemo(() => { - const filters: TableFilter[] = [ - { - name: 'is_active', - label: t`Active`, - description: t`Show active users` - }, - { - name: 'is_staff', - label: t`Staff`, - description: t`Show staff users` - }, - { - name: 'is_superuser', - label: t`Superuser`, - description: t`Show superusers` - } - ]; - - return filters; - }, []); - - const tableColumns = useMemo(() => { - return [ - { - accessor: 'username', - sortable: true, - switchable: false - }, - { - accessor: 'first_name', - sortable: true - }, - { - accessor: 'last_name', - sortable: true - }, - { - accessor: 'email', - sortable: true - }, - { - accessor: 'groups', - title: t`Groups`, - sortable: true, - switchable: true, - render: (record: any) => { - return record.groups.length; - } - }, - BooleanColumn({ - accessor: 'is_staff' - }), - BooleanColumn({ - accessor: 'is_superuser' - }), - BooleanColumn({ - accessor: 'is_active' - }) - ]; - }, []); - - return ( - - ); -} diff --git a/src/frontend/src/tables/settings/GroupTable.tsx b/src/frontend/src/tables/settings/GroupTable.tsx index b415a223bb..a24b39ca4b 100644 --- a/src/frontend/src/tables/settings/GroupTable.tsx +++ b/src/frontend/src/tables/settings/GroupTable.tsx @@ -103,7 +103,10 @@ export function GroupDrawer({ url: ApiEndpoints.group_list, pk: id, fields: { - name: {} + name: { + label: t`Name`, + description: t`Name of the user group` + } }, onFormSuccess: () => { refreshTable(); @@ -185,8 +188,13 @@ export function GroupTable({ const newGroup = useCreateApiFormModal({ url: ApiEndpoints.group_list, - title: t`Add group`, - fields: { name: {} }, + title: t`Add Group`, + fields: { + name: { + label: t`Name`, + description: t`Name of the user group` + } + }, table: table }); @@ -210,7 +218,7 @@ export function GroupTable({ {newGroup.modal} {deleteGroup.modal} { if (!id || !id.startsWith('group-')) return false; return ( diff --git a/src/frontend/src/tables/settings/UserTable.tsx b/src/frontend/src/tables/settings/UserTable.tsx index 620d04d8ee..7ea49b612b 100644 --- a/src/frontend/src/tables/settings/UserTable.tsx +++ b/src/frontend/src/tables/settings/UserTable.tsx @@ -265,6 +265,8 @@ export function UserTable() { const tableActions = useMemo(() => { const actions = []; + console.log('tableActions:', user.hasAddPermission(ModelType.user)); + actions.push( { if (!id || !id.startsWith('user-')) return false; return (