mirror of
https://github.com/skooner-k8s/skooner.git
synced 2026-08-24 04:16:18 +00:00
Making names in EventPanel into links
This commit is contained in:
@@ -46,7 +46,7 @@ export default function EventsPanel({items, filter, shortList, sort}) {
|
||||
<div className='td_iconLabel'>{x.involvedObject.kind}</div>
|
||||
</td>
|
||||
{!shortList && (
|
||||
<td className='wrapped_name'>{x.involvedObject.namespace}:{x.involvedObject.name}</td>
|
||||
<td className='wrapped_name'>{getName(x.involvedObject)}</td>
|
||||
)}
|
||||
<td>{moment(x.metadata.creationTimestamp).fromNow(true)}</td>
|
||||
<td className='optional_small'>{x.reason}</td>
|
||||
@@ -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 ? (<a href={href}>{text}</a>) : 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}`;
|
||||
}
|
||||
|
||||
@@ -116,7 +116,10 @@ export default class Pod extends Base {
|
||||
<ContainersPanel spec={item && item.spec} />
|
||||
|
||||
<div className='contentPanel_header'>Events</div>
|
||||
<EventsPanel items={filteredEvents} />
|
||||
<EventsPanel
|
||||
shortList={true}
|
||||
items={filteredEvents}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user