1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-24 15:59:41 +02:00

refactor(k8s): namespace core logic (#12142)

Co-authored-by: testA113 <aliharriss1995@gmail.com>
Co-authored-by: Anthony Lapenna <anthony.lapenna@portainer.io>
Co-authored-by: James Carppe <85850129+jamescarppe@users.noreply.github.com>
Co-authored-by: Ali <83188384+testA113@users.noreply.github.com>
This commit is contained in:
Steven Kang 2024-10-01 14:15:51 +13:00 committed by GitHub
parent da010f3d08
commit ea228c3d6d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
276 changed files with 9241 additions and 3361 deletions

View file

@ -0,0 +1,12 @@
import { formatDate } from '@/portainer/filters/filters';
import { columnHelper } from './helper';
export const created = columnHelper.accessor(
(row) => formatDate(row.creationDate),
{
header: 'Created',
id: 'created',
cell: ({ getValue }) => getValue(),
}
);

View file

@ -0,0 +1,5 @@
import { createColumnHelper } from '@tanstack/react-table';
import { ServiceAccount } from '../../types';
export const columnHelper = createColumnHelper<ServiceAccount>();

View file

@ -0,0 +1,7 @@
import { name } from './name';
import { namespace } from './namespace';
import { created } from './created';
export function useColumns() {
return [name, namespace, created];
}

View file

@ -0,0 +1,28 @@
import { SystemBadge } from '@@/Badge/SystemBadge';
import { UnusedBadge } from '@@/Badge/UnusedBadge';
import { columnHelper } from './helper';
export const name = columnHelper.accessor(
(row) => {
let result = row.name;
if (row.isSystem) {
result += ' system';
}
if (row.isUnused) {
result += ' unused';
}
return result;
},
{
header: 'Name',
id: 'name',
cell: ({ row }) => (
<div className="flex gap-2">
<div>{row.original.name}</div>
{row.original.isSystem && <SystemBadge />}
{!row.original.isSystem && row.original.isUnused && <UnusedBadge />}
</div>
),
}
);

View file

@ -0,0 +1,36 @@
import { Row } from '@tanstack/react-table';
import { Link } from '@@/Link';
import { filterHOC } from '@@/datatables/Filter';
import { ServiceAccount } from '../../types';
import { columnHelper } from './helper';
export const namespace = columnHelper.accessor('namespace', {
header: 'Namespace',
id: 'namespace',
cell: ({ row }) => (
<Link
to="kubernetes.resourcePools.resourcePool"
params={{
id: row.original.namespace,
}}
title={row.original.namespace}
data-cy={`service-account-namespace-link-${row.original.name}`}
>
{row.original.namespace}
</Link>
),
meta: {
filter: filterHOC('Filter by namespace'),
},
enableColumnFilter: true,
filterFn: (
row: Row<ServiceAccount>,
_columnId: string,
filterValue: string[]
) =>
filterValue.length === 0 ||
filterValue.includes(row.original.namespace ?? ''),
});