diff --git a/shell/components/formatter/InvolvedObjectLink.vue b/shell/components/formatter/InvolvedObjectLink.vue new file mode 100644 index 0000000000..f0fbf90272 --- /dev/null +++ b/shell/components/formatter/InvolvedObjectLink.vue @@ -0,0 +1,45 @@ + + + diff --git a/shell/components/formatter/LinkName.vue b/shell/components/formatter/LinkName.vue index 01c913c86d..376ad83e1a 100644 --- a/shell/components/formatter/LinkName.vue +++ b/shell/components/formatter/LinkName.vue @@ -18,6 +18,11 @@ export default { default: '', }, + objectId: { + type: String, + default: '', + }, + product: { type: String, default: EXPLORER, @@ -31,7 +36,7 @@ export default { const params = { resource: this.type, namespace: this.namespace, - id: this.value, + id: this.objectId ? this.objectId : this.value, product: this.product || EXPLORER, }; diff --git a/shell/config/product/explorer.js b/shell/config/product/explorer.js index c6aa245f95..1564564015 100644 --- a/shell/config/product/explorer.js +++ b/shell/config/product/explorer.js @@ -18,7 +18,7 @@ import { STORAGE_CLASS_PROVISIONER, PERSISTENT_VOLUME_SOURCE, HPA_REFERENCE, MIN_REPLICA, MAX_REPLICA, CURRENT_REPLICA, ACCESS_KEY, DESCRIPTION, EXPIRES, EXPIRY_STATE, SUB_TYPE, AGE_NORMAN, SCOPE_NORMAN, PERSISTENT_VOLUME_CLAIM, RECLAIM_POLICY, PV_REASON, WORKLOAD_HEALTH_SCALE, POD_RESTARTS, - DURATION, LAST_SEEN_TIME, + DURATION, MESSAGE, REASON, LAST_SEEN_TIME, EVENT_TYPE, OBJECT, } from '@shell/config/table-headers'; import { DSL } from '@shell/store/type-map'; @@ -192,7 +192,7 @@ export function init(store) { ]); headers(INGRESS, [STATE, NAME_COL, NAMESPACE_COL, INGRESS_TARGET, INGRESS_DEFAULT_BACKEND, INGRESS_CLASS, AGE]); headers(SERVICE, [STATE, NAME_COL, NAMESPACE_COL, TARGET_PORT, SELECTOR, SPEC_TYPE, AGE]); - headers(EVENT, [STATE, { ...LAST_SEEN_TIME, defaultSort: true }, 'EventType', 'Reason', 'Object', 'Subobject', 'Source', 'Message', 'First Seen', 'Count', 'Name', 'Namespace']); + headers(EVENT, [STATE, { ...LAST_SEEN_TIME, defaultSort: true }, EVENT_TYPE, REASON, OBJECT, 'Subobject', 'Source', MESSAGE, 'First Seen', 'Count', NAME_COL, NAMESPACE_COL]); headers(HPA, [STATE, NAME_COL, HPA_REFERENCE, MIN_REPLICA, MAX_REPLICA, CURRENT_REPLICA, AGE]); headers(WORKLOAD, [STATE, NAME_COL, NAMESPACE_COL, TYPE, WORKLOAD_IMAGES, WORKLOAD_ENDPOINTS, POD_RESTARTS, AGE, WORKLOAD_HEALTH_SCALE]); headers(WORKLOAD_TYPES.DEPLOYMENT, [STATE, NAME_COL, NAMESPACE_COL, WORKLOAD_IMAGES, WORKLOAD_ENDPOINTS, 'Ready', 'Up-to-date', 'Available', POD_RESTARTS, AGE, WORKLOAD_HEALTH_SCALE]); diff --git a/shell/config/table-headers.js b/shell/config/table-headers.js index 543ed88484..0fcecc0da8 100644 --- a/shell/config/table-headers.js +++ b/shell/config/table-headers.js @@ -481,6 +481,14 @@ export const REASON = { value: 'reason', sort: ['reason'] }; +export const OBJECT = { + name: 'object', + labelKey: 'tableHeaders.object', + value: 'involvedObject', + sort: ['involvedObject.kind', 'involvedObject.name'], + canBeVariable: true, + formatter: 'InvolvedObjectLink', +}; export const RECLAIM_POLICY = { name: 'reclaimPolicy', labelKey: 'tableHeaders.reclaimPolicy', diff --git a/shell/pages/c/_cluster/explorer/EventsTable.vue b/shell/pages/c/_cluster/explorer/EventsTable.vue index cdc43290d4..9555e19caf 100644 --- a/shell/pages/c/_cluster/explorer/EventsTable.vue +++ b/shell/pages/c/_cluster/explorer/EventsTable.vue @@ -1,7 +1,7 @@