mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Configurable columns in Nodes table
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
parent
53575bc982
commit
ea7e5631e6
@ -17,7 +17,7 @@ import upperFirst from "lodash/upperFirst";
|
|||||||
import { KubeObjectStatusIcon } from "../kube-object-status-icon";
|
import { KubeObjectStatusIcon } from "../kube-object-status-icon";
|
||||||
import { Badge } from "../badge/badge";
|
import { Badge } from "../badge/badge";
|
||||||
|
|
||||||
enum sortBy {
|
enum columnId {
|
||||||
name = "name",
|
name = "name",
|
||||||
cpu = "cpu",
|
cpu = "cpu",
|
||||||
memory = "memory",
|
memory = "memory",
|
||||||
@ -135,21 +135,23 @@ export class Nodes extends React.Component<Props> {
|
|||||||
return (
|
return (
|
||||||
<TabLayout>
|
<TabLayout>
|
||||||
<KubeObjectListLayout
|
<KubeObjectListLayout
|
||||||
|
isConfigurable
|
||||||
|
tableId="nodes"
|
||||||
className="Nodes"
|
className="Nodes"
|
||||||
store={nodesStore} isClusterScoped
|
store={nodesStore} isClusterScoped
|
||||||
isReady={nodesStore.isLoaded}
|
isReady={nodesStore.isLoaded}
|
||||||
dependentStores={[podsStore]}
|
dependentStores={[podsStore]}
|
||||||
isSelectable={false}
|
isSelectable={false}
|
||||||
sortingCallbacks={{
|
sortingCallbacks={{
|
||||||
[sortBy.name]: (node: Node) => node.getName(),
|
[columnId.name]: (node: Node) => node.getName(),
|
||||||
[sortBy.cpu]: (node: Node) => nodesStore.getLastMetricValues(node, ["cpuUsage"]),
|
[columnId.cpu]: (node: Node) => nodesStore.getLastMetricValues(node, ["cpuUsage"]),
|
||||||
[sortBy.memory]: (node: Node) => nodesStore.getLastMetricValues(node, ["memoryUsage"]),
|
[columnId.memory]: (node: Node) => nodesStore.getLastMetricValues(node, ["memoryUsage"]),
|
||||||
[sortBy.disk]: (node: Node) => nodesStore.getLastMetricValues(node, ["fsUsage"]),
|
[columnId.disk]: (node: Node) => nodesStore.getLastMetricValues(node, ["fsUsage"]),
|
||||||
[sortBy.conditions]: (node: Node) => node.getNodeConditionText(),
|
[columnId.conditions]: (node: Node) => node.getNodeConditionText(),
|
||||||
[sortBy.taints]: (node: Node) => node.getTaints().length,
|
[columnId.taints]: (node: Node) => node.getTaints().length,
|
||||||
[sortBy.roles]: (node: Node) => node.getRoleLabels(),
|
[columnId.roles]: (node: Node) => node.getRoleLabels(),
|
||||||
[sortBy.age]: (node: Node) => node.metadata.creationTimestamp,
|
[columnId.age]: (node: Node) => node.metadata.creationTimestamp,
|
||||||
[sortBy.version]: (node: Node) => node.getKubeletVersion(),
|
[columnId.version]: (node: Node) => node.getKubeletVersion(),
|
||||||
}}
|
}}
|
||||||
searchFilters={[
|
searchFilters={[
|
||||||
(node: Node) => node.getSearchFields(),
|
(node: Node) => node.getSearchFields(),
|
||||||
@ -159,16 +161,16 @@ export class Nodes extends React.Component<Props> {
|
|||||||
]}
|
]}
|
||||||
renderHeaderTitle="Nodes"
|
renderHeaderTitle="Nodes"
|
||||||
renderTableHeader={[
|
renderTableHeader={[
|
||||||
{ title: "Name", className: "name", sortBy: sortBy.name },
|
{ title: "Name", className: "name", sortBy: columnId.name, id: columnId.name },
|
||||||
{ className: "warning" },
|
{ className: "warning", showWithColumn: columnId.name },
|
||||||
{ title: "CPU", className: "cpu", sortBy: sortBy.cpu },
|
{ title: "CPU", className: "cpu", sortBy: columnId.cpu, id: columnId.cpu },
|
||||||
{ title: "Memory", className: "memory", sortBy: sortBy.memory },
|
{ title: "Memory", className: "memory", sortBy: columnId.memory, id: columnId.memory },
|
||||||
{ title: "Disk", className: "disk", sortBy: sortBy.disk },
|
{ title: "Disk", className: "disk", sortBy: columnId.disk, id: columnId.disk },
|
||||||
{ title: "Taints", className: "taints", sortBy: sortBy.taints },
|
{ title: "Taints", className: "taints", sortBy: columnId.taints, id: columnId.taints },
|
||||||
{ title: "Roles", className: "roles", sortBy: sortBy.roles },
|
{ title: "Roles", className: "roles", sortBy: columnId.roles, id: columnId.roles },
|
||||||
{ title: "Version", className: "version", sortBy: sortBy.version },
|
{ title: "Version", className: "version", sortBy: columnId.version, id: columnId.version },
|
||||||
{ title: "Age", className: "age", sortBy: sortBy.age },
|
{ title: "Age", className: "age", sortBy: columnId.age, id: columnId.age },
|
||||||
{ title: "Conditions", className: "conditions", sortBy: sortBy.conditions },
|
{ title: "Conditions", className: "conditions", sortBy: columnId.conditions, id: columnId.conditions },
|
||||||
]}
|
]}
|
||||||
renderTableContents={(node: Node) => {
|
renderTableContents={(node: Node) => {
|
||||||
const tooltipId = `node-taints-${node.getId()}`;
|
const tooltipId = `node-taints-${node.getId()}`;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user