You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
portainer/app/react/kubernetes/volumes/ListView/columns.tsx

70 lines
1.8 KiB

import { isoDate } from '@/portainer/filters/filters';
import { Link } from '@@/Link';
import { name } from './columns.name';
import { helper } from './columns.helper';
export const columns = [
name,
helper.accessor('ResourcePool.Namespace.Name', {
header: 'Namespace',
cell: ({ getValue }) => {
const namespace = getValue();
return (
<Link
to="kubernetes.resourcePools.resourcePool"
params={{ id: namespace }}
data-cy={`volume-namespace-link-${namespace}`}
>
{namespace}
</Link>
);
},
}),
helper.accessor((item) => item.Applications[0]?.Name, {
header: 'Used by',
cell: ({ row: { original: item } }) => {
if (!item.Applications.length) {
return '-';
}
return (
<>
<Link
to="kubernetes.applications.application"
params={{
name: item.Applications[0].Name,
namespace: item.ResourcePool.Namespace.Name,
}}
data-cy={`volume-application-link-${item.Applications[0].Name}`}
>
{item.Applications[0].Name}
</Link>
{item.Applications.length > 1 && (
<> + {item.Applications.length - 1}</>
)}
</>
);
},
}),
helper.accessor('PersistentVolumeClaim.storageClass.Name', {
header: 'Storage',
}),
helper.accessor('PersistentVolumeClaim.Storage', {
header: 'Size',
}),
helper.accessor('PersistentVolumeClaim.CreationDate', {
header: 'Created',
cell: ({ row: { original: item } }) => (
<>
{isoDate(item.PersistentVolumeClaim.CreationDate)}
{item.PersistentVolumeClaim.ApplicationOwner
? ` by ${item.PersistentVolumeClaim.ApplicationOwner}`
: ''}
</>
),
}),
];