diff --git a/client/src/components/eventsPanel.js b/client/src/components/eventsPanel.js index 792d287..40793a5 100644 --- a/client/src/components/eventsPanel.js +++ b/client/src/components/eventsPanel.js @@ -46,7 +46,7 @@ export default function EventsPanel({items, filter, shortList, sort}) {
{x.involvedObject.kind}
{!shortList && ( - {x.involvedObject.namespace}:{x.involvedObject.name} + {getName(x.involvedObject)} )} {moment(x.metadata.creationTimestamp).fromNow(true)} {x.reason} @@ -59,6 +59,36 @@ export default function EventsPanel({items, filter, shortList, sort}) { ); } +function getName({kind, namespace, name}) { + const text = namespace ? `${namespace}:${name}` : name; + const href = getHref(kind, namespace, name); + return href ? ({text}) : text; +} + +function getHref(kind, namespace, name) { + switch (kind) { + case 'ClusterRole': return `/#!clusterrole/${name}`; + case 'ClusterRoleBinding': return `/#!clusterrolebinding/${name}`; + case 'ConfigMap': return `/#!configmap/${namespace}/${name}`; + case 'DaemonSet': return `/#!workload/daemonset/${namespace}/${name}`; + case 'Deployment': return `/#!workload/deployment/${namespace}/${name}`; + case 'Ingress': return `/#!ingress/${namespace}/${name}`; + case 'Node': return `/#!node/${name}`; + case 'PersistentVolume': return `/#!persistentvolume/${name}`; + case 'PersistentVolumeClaim': return `/#!persistentvolumeclaim/${namespace}/${name}`; + case 'Pod': return `/#!pod/${namespace}/${name}`; + case 'ReplicaSet': return `/#!replicaset/${namespace}/${name}`; + case 'Role': return `/#!role/${namespace}/${name}`; + case 'RoleBinding': return `/#!rolebinding/${namespace}/${name}`; + case 'Secret': return `/#!secret/${namespace}/${name}`; + case 'Service': return `/#!service/${namespace}/${name}`; + case 'ServiceAccount': return `/#!serviceaccount/${namespace}/${name}`; + case 'StatefulSet': return `/#!workload/statefulset/${namespace}/${name}`; + case 'StorageClass': return `/#!storageclass/${name}`; + default: return undefined; + } +} + function sortByName({involvedObject}) { return `${involvedObject.namespace}:${involvedObject.name}`; } diff --git a/client/src/views/pod.js b/client/src/views/pod.js index 67f1f3a..7f64076 100644 --- a/client/src/views/pod.js +++ b/client/src/views/pod.js @@ -116,7 +116,10 @@ export default class Pod extends Base {
Events
- + ); }