1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-19 13:29:41 +02:00

fix(stacks): conditionally hide node and namespace stacks [EE-6949] (#11527)
Some checks failed
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Has been cancelled
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Has been cancelled
ci / build_images (map[arch:arm platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:s390x platform:linux version:]) (push) Has been cancelled
/ triage (push) Has been cancelled
Lint / Run linters (push) Has been cancelled
Test / test-client (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:linux]) (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Has been cancelled
Test / test-server (map[arch:arm64 platform:linux]) (push) Has been cancelled
ci / build_manifests (push) Has been cancelled

Co-authored-by: testa113 <testa113>
This commit is contained in:
Ali 2024-04-19 17:33:22 +12:00 committed by GitHub
parent 7e9dd01265
commit 3ccbd40232
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 74 additions and 49 deletions

View file

@ -1,5 +1,5 @@
import { Badge } from '@@/Badge';
export function ExternalBadge() {
return <Badge type="info">external</Badge>;
return <Badge type="info">External</Badge>;
}

View file

@ -24,7 +24,6 @@ export function NodeApplicationsDatatable({
onRefresh: () => void;
isLoading: boolean;
}) {
const columns = useColumns(true);
const tableState = useTableStateWithStorage<TableSettings>(
'kube-node-apps',
'Name',
@ -34,6 +33,8 @@ export function NodeApplicationsDatatable({
);
useRepeater(tableState.autoRefreshRate, onRefresh);
const columns = useColumns();
return (
<Datatable
dataset={dataset}

View file

@ -1,19 +1,25 @@
import { useMemo } from 'react';
import _ from 'lodash';
import { useMemo } from 'react';
import { humanize, truncate } from '@/portainer/filters/filters';
import { usePublicSettings } from '@/react/portainer/settings/queries';
import { Link } from '@@/Link';
import { helper } from './columns.helper';
import { name } from './columns.name';
export function useColumns(areStacksVisible: boolean) {
export function useColumns() {
const hideStacksQuery = usePublicSettings<boolean>({
select: (settings) =>
settings.GlobalDeploymentOptions.hideStacksFunctionality,
});
return useMemo(
() =>
_.compact([
name,
areStacksVisible &&
!hideStacksQuery.data &&
helper.accessor('StackName', {
header: 'Stack',
cell: ({ getValue }) => getValue() || '-',
@ -53,6 +59,6 @@ export function useColumns(areStacksVisible: boolean) {
cell: ({ getValue }) => humanize(getValue()),
}),
]),
[areStacksVisible]
[hideStacksQuery.data]
);
}

View file

@ -11,7 +11,7 @@ import {
} from '@@/datatables/types';
import { NamespaceApp } from './types';
import { columns } from './columns';
import { useColumns } from './columns';
interface TableSettings extends BasicTableSettings, RefreshableTableSettings {}
@ -32,6 +32,7 @@ export function NamespaceAppsDatatable({
})
);
useRepeater(tableState.autoRefreshRate, onRefresh);
const columns = useColumns();
return (
<Datatable

View file

@ -1,6 +1,9 @@
import { createColumnHelper } from '@tanstack/react-table';
import _ from 'lodash';
import { useMemo } from 'react';
import { humanize, truncate } from '@/portainer/filters/filters';
import { usePublicSettings } from '@/react/portainer/settings/queries';
import { Link } from '@@/Link';
import { ExternalBadge } from '@@/Badge/ExternalBadge';
@ -12,7 +15,15 @@ import { NamespaceApp } from './types';
const columnHelper = createColumnHelper<NamespaceApp>();
export const columns = [
export function useColumns() {
const hideStacksQuery = usePublicSettings<boolean>({
select: (settings) =>
settings.GlobalDeploymentOptions.hideStacksFunctionality,
});
return useMemo(
() =>
_.compact([
columnHelper.accessor('Name', {
header: 'Name',
cell: ({ row: { original: item } }) => (
@ -32,6 +43,7 @@ export const columns = [
</>
),
}),
!hideStacksQuery.data &&
columnHelper.accessor('StackName', {
header: 'Stack',
cell: ({ getValue }) => getValue() || '-',
@ -41,7 +53,9 @@ export const columns = [
cell: ({ row: { original: item } }) => (
<>
{truncate(item.Image, 64)}
{item.Containers?.length > 1 && <>+ {item.Containers.length - 1}</>}
{item.Containers?.length > 1 && (
<>+ {item.Containers.length - 1}</>
)}
</>
),
}),
@ -53,4 +67,7 @@ export const columns = [
header: 'Memory',
cell: ({ getValue }) => humanize(getValue()),
}),
];
]),
[hideStacksQuery.data]
);
}