1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Add Last Seen column to events page

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2021-05-20 10:10:41 -04:00
parent 39df65cb91
commit 3693670d27
2 changed files with 8 additions and 0 deletions

View File

@ -75,6 +75,10 @@ export class KubeEvent extends KubeObject {
return formatDuration(diff, true); return formatDuration(diff, true);
} }
getLastSeenTimeDiffFromNow(): number {
return Date.now() - new Date(this.lastTimestamp).getTime();
}
} }
export const eventApi = new KubeApi({ export const eventApi = new KubeApi({

View File

@ -46,6 +46,7 @@ enum columnId {
count = "count", count = "count",
source = "source", source = "source",
age = "age", age = "age",
lastSeen = "last-seen",
} }
interface Props extends Partial<KubeObjectListLayoutProps> { interface Props extends Partial<KubeObjectListLayoutProps> {
@ -73,6 +74,7 @@ export class Events extends React.Component<Props> {
[columnId.object]: (event: KubeEvent) => event.involvedObject.name, [columnId.object]: (event: KubeEvent) => event.involvedObject.name,
[columnId.count]: (event: KubeEvent) => event.count, [columnId.count]: (event: KubeEvent) => event.count,
[columnId.age]: (event: KubeEvent) => event.getTimeDiffFromNow(), [columnId.age]: (event: KubeEvent) => event.getTimeDiffFromNow(),
[columnId.lastSeen]: (event: KubeEvent) => event.getLastSeenTimeDiffFromNow(),
}; };
private tableConfiguration: TableProps = { private tableConfiguration: TableProps = {
@ -164,6 +166,7 @@ export class Events extends React.Component<Props> {
{ title: "Source", className: "source", id: columnId.source }, { title: "Source", className: "source", id: columnId.source },
{ title: "Count", className: "count", sortBy: columnId.count, id: columnId.count }, { title: "Count", className: "count", sortBy: columnId.count, id: columnId.count },
{ title: "Age", className: "age", sortBy: columnId.age, id: columnId.age }, { title: "Age", className: "age", sortBy: columnId.age, id: columnId.age },
{ title: "Last Seen", className: "last-seen", sortBy: columnId.lastSeen, id: columnId.lastSeen },
]} ]}
renderTableContents={(event: KubeEvent) => { renderTableContents={(event: KubeEvent) => {
const { involvedObject, type, message } = event; const { involvedObject, type, message } = event;
@ -190,6 +193,7 @@ export class Events extends React.Component<Props> {
event.getSource(), event.getSource(),
event.count, event.count,
event.getAge(), event.getAge(),
event.getLastSeenTime(),
]; ];
}} }}
/> />