diff --git a/plugins/plugin-kubectl/i18n/resources_de.json b/plugins/plugin-kubectl/i18n/resources_de.json index 2a84fcf65af..77291e981ce 100644 --- a/plugins/plugin-kubectl/i18n/resources_de.json +++ b/plugins/plugin-kubectl/i18n/resources_de.json @@ -1,6 +1,6 @@ { "startedOn": "Gestartet am", - "createdOn": "Erstellt am {0}", + "createdOn": "Erstellt am **{0}**", "readonly": "Sie verwenden den schreibgeschützten Anzeigemodus", "contextsTableTitle": "Kubernetes-Kontexte", "deleteResource": "Diese Ressource löschen", diff --git a/plugins/plugin-kubectl/i18n/resources_en_US.json b/plugins/plugin-kubectl/i18n/resources_en_US.json index 2d95bf2c198..9852bb0b2e4 100644 --- a/plugins/plugin-kubectl/i18n/resources_en_US.json +++ b/plugins/plugin-kubectl/i18n/resources_en_US.json @@ -5,7 +5,9 @@ "Namespace": "Namespace", "Usage": "Usage", "startedOn": "Started on", - "createdOn": "Created on {0}", + "createdOn": "Created on **{0}**", + "createdOn=X resourceVersion=Y": "Created on **{0}**. Showing resource version **{1}**.", + "resourceVersion=Y": "Showing resource version **{0}**", "readonly": "You are in read-only view mode", "contextsTableTitle": "Kubernetes Contexts", "deleteResource": "Delete this resource", diff --git a/plugins/plugin-kubectl/i18n/resources_es.json b/plugins/plugin-kubectl/i18n/resources_es.json index 75488356e75..fe139851d3b 100644 --- a/plugins/plugin-kubectl/i18n/resources_es.json +++ b/plugins/plugin-kubectl/i18n/resources_es.json @@ -1,6 +1,6 @@ { "startedOn": "Iniciado el", - "createdOn": "Creado el", + "createdOn": "Creado el **{0}**", "readonly": "Está en modalidad de vista de solo lectura", "contextsTableTitle": "Contextos de Kubernetes", "deleteResource": "Suprimir este recurso", diff --git a/plugins/plugin-kubectl/i18n/resources_fr.json b/plugins/plugin-kubectl/i18n/resources_fr.json index 800cf13a039..a3acf57439b 100644 --- a/plugins/plugin-kubectl/i18n/resources_fr.json +++ b/plugins/plugin-kubectl/i18n/resources_fr.json @@ -1,6 +1,6 @@ { "startedOn": "Démarré le", - "createdOn": "Créé le {0}", + "createdOn": "Créé le **{0}**", "readonly": "Vous êtes en mode d'affichage lecture seule", "contextsTableTitle": "Contextes Kubernetes", "deleteResource": "Supprimer cette ressource", diff --git a/plugins/plugin-kubectl/i18n/resources_it.json b/plugins/plugin-kubectl/i18n/resources_it.json index bc55ab16d75..50543fbbcff 100644 --- a/plugins/plugin-kubectl/i18n/resources_it.json +++ b/plugins/plugin-kubectl/i18n/resources_it.json @@ -1,6 +1,6 @@ { "startedOn": "Avviato il", - "createdOn": "Creato il {0}", + "createdOn": "Creato il **{0}**", "readonly": "Si sta utilizzando la modalità di visualizzazione sola lettura", "contextsTableTitle": "Contesti Kubernetes", "deleteResource": "Elimina questa risorsa", diff --git a/plugins/plugin-kubectl/i18n/resources_ja.json b/plugins/plugin-kubectl/i18n/resources_ja.json index 93ce9c03e83..73fc7aee7dc 100644 --- a/plugins/plugin-kubectl/i18n/resources_ja.json +++ b/plugins/plugin-kubectl/i18n/resources_ja.json @@ -1,6 +1,6 @@ { "startedOn": "開始日時", - "createdOn": "作成日: {0}", + "createdOn": "作成日: **{0}**", "readonly": "読み取り専用表示モードです", "contextsTableTitle": "Kubernetes コンテキスト", "deleteResource": "このリソースの削除", diff --git a/plugins/plugin-kubectl/i18n/resources_pt_BR.json b/plugins/plugin-kubectl/i18n/resources_pt_BR.json index c582e806261..881664e94dd 100644 --- a/plugins/plugin-kubectl/i18n/resources_pt_BR.json +++ b/plugins/plugin-kubectl/i18n/resources_pt_BR.json @@ -1,6 +1,6 @@ { "startedOn": "Iniciado em", - "createdOn": "Criado em {0}", + "createdOn": "Criado em **{0}**", "readonly": "Você está no modo de visualização somente leitura", "contextsTableTitle": "Contextos do Kubernetes", "deleteResource": "Excluir este recurso", diff --git a/plugins/plugin-kubectl/i18n/resources_zh_CN.json b/plugins/plugin-kubectl/i18n/resources_zh_CN.json index bbe0b9d7850..f3b903c180f 100644 --- a/plugins/plugin-kubectl/i18n/resources_zh_CN.json +++ b/plugins/plugin-kubectl/i18n/resources_zh_CN.json @@ -1,6 +1,6 @@ { "startedOn": "开始日期", - "createdOn": "创建于 {0}", + "createdOn": "创建于 **{0}**", "readonly": "您处于只读模式", "contextsTableTitle": "Kubernetes 上下文", "deleteResource": "删除此资源", diff --git a/plugins/plugin-kubectl/i18n/resources_zh_TW.json b/plugins/plugin-kubectl/i18n/resources_zh_TW.json index 571e9d80f96..bb0f04d194a 100644 --- a/plugins/plugin-kubectl/i18n/resources_zh_TW.json +++ b/plugins/plugin-kubectl/i18n/resources_zh_TW.json @@ -1,6 +1,6 @@ { "startedOn": "開始日期", - "createdOn": "創建於 {0}", + "createdOn": "創建於 **{0}**", "readonly": "您正在使用唯讀檢視模式", "contextsTableTitle": "Kubernetes 環境定義", "deleteResource": "刪除此資源", diff --git a/plugins/plugin-kubectl/src/controller/kubectl/get.ts b/plugins/plugin-kubectl/src/controller/kubectl/get.ts index 73a88ea666b..62d546a9d1f 100644 --- a/plugins/plugin-kubectl/src/controller/kubectl/get.ts +++ b/plugins/plugin-kubectl/src/controller/kubectl/get.ts @@ -25,9 +25,15 @@ import commandPrefix from '../command-prefix' import doGetWatchTable from './watch/get-watch' import extractAppAndName from '../../lib/util/name' import { isUsage, doHelp } from '../../lib/util/help' -import { KubeResource, isKubeResource, isKubeItems, sameResourceVersion } from '../../lib/model/resource' import { KubeOptions, isEntityRequest, isTableRequest, formatOf, isWatchRequest, getNamespace } from './options' import { stringToTable, KubeTableResponse, isKubeTableResponse } from '../../lib/view/formatTable' +import { + KubeResource, + isKubeResource, + isKubeItems, + sameResourceVersion, + hasResourceVersion +} from '../../lib/model/resource' const strings = i18n('plugin-kubectl') @@ -104,6 +110,30 @@ export async function doGetAsEntity(args: Arguments, response: RawR } } +/** Pretty-print creationTimestamp */ +function creationTimestamp(resource: KubeResource) { + return new Date(resource.metadata.creationTimestamp).toLocaleString() +} + +/** ToolbarText presentation */ +function toolbarText(resource: KubeResource) { + const type = 'info' as const + + const hasTimestamp = resource.metadata.creationTimestamp !== undefined + const hasVersion = hasResourceVersion(resource) + + if (hasTimestamp && hasVersion) { + return { + type, + text: strings('createdOn=X resourceVersion=Y', creationTimestamp(resource), resource.metadata.resourceVersion) + } + } else if (hasTimestamp) { + return { type, text: strings('createdOn', creationTimestamp(resource)) } + } else if (hasVersion) { + return { type, text: strings('resourceVersion=Y', creationTimestamp(resource), resource.metadata.resourceVersion) } + } +} + /** * `kubectl get` as entity response * @@ -140,12 +170,7 @@ export async function doGetAsMMR( comparator: sameResourceVersion, originatingCommand: args.command, isKubeResource: true, - toolbarText: !resource.metadata.creationTimestamp - ? undefined - : { - type: 'info', - text: strings('createdOn', new Date(resource.metadata.creationTimestamp).toLocaleString()) - }, + toolbarText: toolbarText(resource), onclick: { kind: `kubectl get ${kindAndNamespaceOf(resource)}`, name: `kubectl get ${kindAndNamespaceOf(resource)} ${resource.metadata.name}`,