Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 23 additions & 8 deletions frontend/public/components/RBAC/bindings.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import { PageHeading } from '@console/shared/src/components/heading/PageHeading'
import LazyActionMenu from '@console/shared/src/components/actions/LazyActionMenu';
import { useFlag } from '@console/shared/src/hooks/useFlag';
import { DASH } from '@console/shared/src/constants/ui';
import { ClusterRoleBindingModel } from '../../models';
import { ClusterRoleBindingModel, RoleBindingModel } from '../../models';
import {
ClusterRoleBindingKind,
getQN,
Expand All @@ -40,11 +40,12 @@ import {
initialFiltersDefault,
getNameCellProps,
actionsCellProps,
cellIsStickyProps,
nameCellProps,
} from '@console/app/src/components/data-view/ConsoleDataView';
import { DataViewCheckboxFilter } from '@patternfly/react-data-view';
import { TableColumn } from '@console/internal/module/k8s';
import { GetDataViewRows, ResourceFilters } from '@console/app/src/components/data-view/types';
import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps';
import { tableFilters } from '../factory/table-filters';
import { ButtonBar } from '../utils/button-bar';
import { Firehose } from '../utils/firehose';
Expand Down Expand Up @@ -97,23 +98,30 @@ const tableColumnInfo = [
{ id: 'actions' },
];

const useRoleBindingsColumns = (): TableColumn<BindingKind>[] => {
const useRoleBindingsColumns = (): {
columns: TableColumn<BindingKind>[];
resetAllColumnWidths: () => void;
} => {
const { t } = useTranslation();
return useMemo(
const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(RoleBindingModel);

const columns: TableColumn<BindingKind>[] = useMemo(
() => [
{
title: t('public~Name'),
id: tableColumnInfo[0].id,
sort: 'metadata.name',
resizableProps: getResizableProps(tableColumnInfo[0].id),
props: {
...cellIsStickyProps,
...nameCellProps,
modifier: 'nowrap',
},
},
{
title: t('public~Role ref'),
id: tableColumnInfo[1].id,
sort: 'roleRef.name',
resizableProps: getResizableProps(tableColumnInfo[1].id),
props: {
modifier: 'nowrap',
},
Expand All @@ -122,6 +130,7 @@ const useRoleBindingsColumns = (): TableColumn<BindingKind>[] => {
title: t('public~Subject kind'),
id: tableColumnInfo[2].id,
sort: 'subject.kind',
resizableProps: getResizableProps(tableColumnInfo[2].id),
props: {
modifier: 'nowrap',
},
Expand All @@ -130,6 +139,7 @@ const useRoleBindingsColumns = (): TableColumn<BindingKind>[] => {
title: t('public~Subject name'),
id: tableColumnInfo[3].id,
sort: 'subject.name',
resizableProps: getResizableProps(tableColumnInfo[3].id),
props: {
modifier: 'nowrap',
},
Expand All @@ -138,6 +148,7 @@ const useRoleBindingsColumns = (): TableColumn<BindingKind>[] => {
title: t('public~Namespace'),
id: tableColumnInfo[4].id,
sort: 'metadata.namespace',
resizableProps: getResizableProps(tableColumnInfo[4].id),
props: {
modifier: 'nowrap',
},
Expand All @@ -146,12 +157,14 @@ const useRoleBindingsColumns = (): TableColumn<BindingKind>[] => {
title: '',
id: tableColumnInfo[5].id,
props: {
...cellIsStickyProps,
...actionsCellProps,
},
},
],
[t],
[t, getResizableProps],
);

return { columns, resetAllColumnWidths };
};

export const BindingName: FC<BindingProps> = ({ binding }) => (
Expand Down Expand Up @@ -234,7 +247,7 @@ const getDataViewRows: GetDataViewRows<BindingKind> = (data, columns) => {

export const BindingsList: FC<BindingsListTableProps> = (props) => {
const { t } = useTranslation();
const columns = useRoleBindingsColumns();
const { columns, resetAllColumnWidths } = useRoleBindingsColumns();

const hasCRBindings = props.data.some((binding) => !binding.metadata.namespace);

Expand Down Expand Up @@ -329,6 +342,8 @@ export const BindingsList: FC<BindingsListTableProps> = (props) => {
matchesAdditionalFilters={matchesAdditionalFilters}
getDataViewRows={getDataViewRows}
hideColumnManagement={true}
isResizable
resetAllColumnWidths={resetAllColumnWidths}
/>
</Suspense>
);
Expand Down
64 changes: 38 additions & 26 deletions frontend/public/components/RBAC/role.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,10 @@ import {
ConsoleDataView,
getNameCellProps,
actionsCellProps,
cellIsStickyProps,
nameCellProps,
initialFiltersDefault,
} from '@console/app/src/components/data-view/ConsoleDataView';
import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps';
import { DataViewCheckboxFilter } from '@patternfly/react-data-view';
import { tableFilters } from '../factory/table-filters';
import { SectionHeading } from '../utils/headings';
Expand Down Expand Up @@ -210,7 +211,7 @@ const useBindingsColumns = () => {
id: bindingsTableColumnInfo[0].id,
sort: 'metadata.name',
props: {
...cellIsStickyProps,
...nameCellProps,
modifier: 'nowrap',
},
},
Expand Down Expand Up @@ -392,32 +393,41 @@ export const ClusterRoleBindingsDetailsPage = (props) => {

const useRolesColumns = () => {
const { t } = useTranslation();
return [
{
title: t('public~Name'),
id: tableColumnInfo[0].id,
sort: 'metadata.name',
props: {
...cellIsStickyProps,
modifier: 'nowrap',
const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(RoleModel);

const columns = useMemo(
() => [
{
title: t('public~Name'),
id: tableColumnInfo[0].id,
sort: 'metadata.name',
resizableProps: getResizableProps(tableColumnInfo[0].id),
props: {
...nameCellProps,
modifier: 'nowrap',
},
},
},
{
title: t('public~Namespace'),
id: tableColumnInfo[1].id,
sort: 'metadata.namespace',
props: {
modifier: 'nowrap',
{
title: t('public~Namespace'),
id: tableColumnInfo[1].id,
sort: 'metadata.namespace',
resizableProps: getResizableProps(tableColumnInfo[1].id),
props: {
modifier: 'nowrap',
},
},
},
{
title: '',
id: tableColumnInfo[2].id,
props: {
...cellIsStickyProps,
{
title: '',
id: tableColumnInfo[2].id,
props: {
...actionsCellProps,
},
},
},
];
],
[t, getResizableProps],
);

return { columns, resetAllColumnWidths };
};

const useRoleFilterOptions = () => {
Expand All @@ -443,7 +453,7 @@ const useRoleFilterOptions = () => {
const RolesList = (props) => {
const { t } = useTranslation();
const { data, loaded } = props;
const columns = useRolesColumns();
const { columns, resetAllColumnWidths } = useRolesColumns();
const roleFilterOptions = useRoleFilterOptions();

const initialFilters = useMemo(() => ({ ...initialFiltersDefault, 'role-kind': [] }), []);
Expand Down Expand Up @@ -480,6 +490,8 @@ const RolesList = (props) => {
additionalFilterNodes={additionalFilterNodes}
matchesAdditionalFilters={matchesAdditionalFilters}
hideColumnManagement={true}
isResizable
resetAllColumnWidths={resetAllColumnWidths}
/>
</Suspense>
);
Expand Down
27 changes: 20 additions & 7 deletions frontend/public/components/group.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,11 @@ import {
ConsoleDataView,
getNameCellProps,
actionsCellProps,
cellIsStickyProps,
nameCellProps,
} from '@console/app/src/components/data-view/ConsoleDataView';
import { TableColumn, K8sResourceKind } from '@console/internal/module/k8s';
import { GetDataViewRows } from '@console/app/src/components/data-view/types';
import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps';
import { DASH } from '@console/shared/src/constants/ui';

const tableColumnInfo = [{ id: 'name' }, { id: 'users' }, { id: 'created' }, { id: 'actions' }];
Expand Down Expand Up @@ -75,23 +76,30 @@ const getDataViewRows: GetDataViewRows<GroupKind> = (data, columns) => {
});
};

const useGroupColumns = (): TableColumn<GroupKind>[] => {
const useGroupColumns = (): {
columns: TableColumn<GroupKind>[];
resetAllColumnWidths: () => void;
} => {
const { t } = useTranslation();
return useMemo(
const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(GroupModel);

const columns: TableColumn<GroupKind>[] = useMemo(
() => [
{
title: t('public~Name'),
id: tableColumnInfo[0].id,
sort: 'metadata.name',
resizableProps: getResizableProps(tableColumnInfo[0].id),
props: {
...cellIsStickyProps,
...nameCellProps,
modifier: 'nowrap',
},
},
{
title: t('public~Users'),
id: tableColumnInfo[1].id,
sort: 'users.length',
resizableProps: getResizableProps(tableColumnInfo[1].id),
props: {
modifier: 'nowrap',
},
Expand All @@ -100,6 +108,7 @@ const useGroupColumns = (): TableColumn<GroupKind>[] => {
title: t('public~Created'),
id: tableColumnInfo[2].id,
sort: 'metadata.creationTimestamp',
resizableProps: getResizableProps(tableColumnInfo[2].id),
props: {
modifier: 'nowrap',
},
Expand All @@ -108,18 +117,20 @@ const useGroupColumns = (): TableColumn<GroupKind>[] => {
title: '',
id: tableColumnInfo[3].id,
props: {
...cellIsStickyProps,
...actionsCellProps,
},
},
],
[t],
[t, getResizableProps],
);

return { columns, resetAllColumnWidths };
};

export const GroupList: FC<{ data: GroupKind[]; loaded: boolean }> = (props) => {
const { data, loaded } = props;
const { t } = useTranslation();
const columns = useGroupColumns();
const { columns, resetAllColumnWidths } = useGroupColumns();

return (
<Suspense fallback={<LoadingBox />}>
Expand All @@ -131,6 +142,8 @@ export const GroupList: FC<{ data: GroupKind[]; loaded: boolean }> = (props) =>
columns={columns}
getDataViewRows={getDataViewRows}
hideColumnManagement={true}
isResizable
resetAllColumnWidths={resetAllColumnWidths}
/>
</Suspense>
);
Expand Down
23 changes: 17 additions & 6 deletions frontend/public/components/service-account.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@ import {
ConsoleDataView,
getNameCellProps,
actionsCellProps,
cellIsStickyProps,
nameCellProps,
} from '@console/app/src/components/data-view/ConsoleDataView';
import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps';
import LazyActionMenu from '@console/shared/src/components/actions/LazyActionMenu';
import { DASH } from '@console/shared/src/constants/ui';
import { referenceForModel } from '../module/k8s';
Expand Down Expand Up @@ -95,21 +96,25 @@ const ServiceAccountsDetailsPage = (props) => (

const useServiceAccountColumns = () => {
const { t } = useTranslation();
return useMemo(
const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(ServiceAccountModel);

const columns = useMemo(
() => [
{
title: t('public~Name'),
id: tableColumnInfo[0].id,
sort: 'metadata.name',
resizableProps: getResizableProps(tableColumnInfo[0].id),
props: {
...cellIsStickyProps,
...nameCellProps,
modifier: 'nowrap',
},
},
{
title: t('public~Namespace'),
id: tableColumnInfo[1].id,
sort: 'metadata.namespace',
resizableProps: getResizableProps(tableColumnInfo[1].id),
props: {
modifier: 'nowrap',
},
Expand All @@ -118,6 +123,7 @@ const useServiceAccountColumns = () => {
title: t('public~Secrets'),
id: tableColumnInfo[2].id,
sort: 'secrets.length',
resizableProps: getResizableProps(tableColumnInfo[2].id),
props: {
modifier: 'nowrap',
},
Expand All @@ -126,6 +132,7 @@ const useServiceAccountColumns = () => {
title: t('public~Created'),
id: tableColumnInfo[3].id,
sort: 'metadata.creationTimestamp',
resizableProps: getResizableProps(tableColumnInfo[3].id),
props: {
modifier: 'nowrap',
},
Expand All @@ -134,18 +141,20 @@ const useServiceAccountColumns = () => {
title: '',
id: tableColumnInfo[4].id,
props: {
...cellIsStickyProps,
...actionsCellProps,
},
},
],
[t],
[t, getResizableProps],
);

return { columns, resetAllColumnWidths };
};

const ServiceAccountsList = (props) => {
const { data, loaded } = props;
const { t } = useTranslation();
const columns = useServiceAccountColumns();
const { columns, resetAllColumnWidths } = useServiceAccountColumns();

return (
<Suspense fallback={<LoadingBox />}>
Expand All @@ -157,6 +166,8 @@ const ServiceAccountsList = (props) => {
columns={columns}
getDataViewRows={getDataViewRows}
hideColumnManagement={true}
isResizable
resetAllColumnWidths={resetAllColumnWidths}
/>
</Suspense>
);
Expand Down
Loading