Unverified Commit 82d81819 authored by Roman's avatar Roman Committed by GitHub
Browse files

Fix: proper sorting resources by age column (#2182)


* - fix: proper sorting for resource age column
- use Date.now() instead of new Date().getTime() (#2141 follow-up)
Signed-off-by: default avatarRoman <ixrock@gmail.com>

* fix: proper bar-chart tooltip callback
Signed-off-by: default avatarRoman <ixrock@gmail.com>

* fix: sorting in cronjobs, more Date.now() replacements
Signed-off-by: default avatarRoman <ixrock@gmail.com>
parent e87bb850
Showing with 25 additions and 24 deletions
+25 -24
......@@ -198,10 +198,9 @@ export class HelmRelease implements ItemObject {
}
getUpdated(humanize = true, compact = true) {
const now = new Date().getTime();
const updated = this.updated.replace(/\s\w*$/, ""); // 2019-11-26 10:58:09 +0300 MSK -> 2019-11-26 10:58:09 +0300 to pass into Date()
const updatedDate = new Date(updated).getTime();
const diff = now - updatedDate;
const diff = Date.now() - updatedDate;
if (humanize) {
return formatDuration(diff, compact);
......
......@@ -63,10 +63,12 @@ export class PersistentVolume extends KubeObject {
return this.status.phase || "-";
}
getClaimRefName() {
const { claimRef } = this.spec;
getStorageClass(): string {
return this.spec.storageClassName;
}
return claimRef ? claimRef.name : "";
getClaimRefName(): string {
return this.spec.claimRef?.name ?? "";
}
}
......
......@@ -123,7 +123,7 @@ export class KubeObject implements ItemObject {
}
getTimeDiffFromNow(): number {
return new Date().getTime() - new Date(this.metadata.creationTimestamp).getTime();
return Date.now() - new Date(this.metadata.creationTimestamp).getTime();
}
getAge(humanize = true, compact = true, fromNow = false): string | number {
......
......@@ -30,7 +30,7 @@ export class LimitRanges extends React.Component<Props> {
sortingCallbacks={{
[columnId.name]: (item: LimitRange) => item.getName(),
[columnId.namespace]: (item: LimitRange) => item.getNs(),
[columnId.age]: (item: LimitRange) => item.metadata.creationTimestamp,
[columnId.age]: (item: LimitRange) => item.getTimeDiffFromNow(),
}}
searchFilters={[
(item: LimitRange) => item.getName(),
......
......@@ -31,7 +31,7 @@ export class ConfigMaps extends React.Component<Props> {
[columnId.name]: (item: ConfigMap) => item.getName(),
[columnId.namespace]: (item: ConfigMap) => item.getNs(),
[columnId.keys]: (item: ConfigMap) => item.getKeys(),
[columnId.age]: (item: ConfigMap) => item.metadata.creationTimestamp,
[columnId.age]: (item: ConfigMap) => item.getTimeDiffFromNow(),
}}
searchFilters={[
(item: ConfigMap) => item.getSearchFields(),
......
......@@ -31,7 +31,7 @@ export class ResourceQuotas extends React.Component<Props> {
sortingCallbacks={{
[columnId.name]: (item: ResourceQuota) => item.getName(),
[columnId.namespace]: (item: ResourceQuota) => item.getNs(),
[columnId.age]: (item: ResourceQuota) => item.metadata.creationTimestamp,
[columnId.age]: (item: ResourceQuota) => item.getTimeDiffFromNow(),
}}
searchFilters={[
(item: ResourceQuota) => item.getSearchFields(),
......
......@@ -38,7 +38,7 @@ export class Secrets extends React.Component<Props> {
[columnId.labels]: (item: Secret) => item.getLabels(),
[columnId.keys]: (item: Secret) => item.getKeys(),
[columnId.type]: (item: Secret) => item.type,
[columnId.age]: (item: Secret) => item.metadata.creationTimestamp,
[columnId.age]: (item: Secret) => item.getTimeDiffFromNow(),
}}
searchFilters={[
(item: Secret) => item.getSearchFields(),
......
......@@ -57,7 +57,7 @@ export class CrdResources extends React.Component<Props> {
const sortingCallbacks: { [sortBy: string]: TableSortCallback } = {
[columnId.name]: (item: KubeObject) => item.getName(),
[columnId.namespace]: (item: KubeObject) => item.getNs(),
[columnId.age]: (item: KubeObject) => item.metadata.creationTimestamp,
[columnId.age]: (item: KubeObject) => item.getTimeDiffFromNow(),
};
extraColumns.forEach(column => {
......
......@@ -33,7 +33,7 @@ export class Namespaces extends React.Component<Props> {
sortingCallbacks={{
[columnId.name]: (ns: Namespace) => ns.getName(),
[columnId.labels]: (ns: Namespace) => ns.getLabels(),
[columnId.age]: (ns: Namespace) => ns.metadata.creationTimestamp,
[columnId.age]: (ns: Namespace) => ns.getTimeDiffFromNow(),
[columnId.status]: (ns: Namespace) => ns.getStatus(),
}}
searchFilters={[
......
......@@ -30,7 +30,7 @@ export class Endpoints extends React.Component<Props> {
sortingCallbacks={{
[columnId.name]: (endpoint: Endpoint) => endpoint.getName(),
[columnId.namespace]: (endpoint: Endpoint) => endpoint.getNs(),
[columnId.age]: (endpoint: Endpoint) => endpoint.metadata.creationTimestamp,
[columnId.age]: (endpoint: Endpoint) => endpoint.getTimeDiffFromNow(),
}}
searchFilters={[
(endpoint: Endpoint) => endpoint.getSearchFields()
......
......@@ -31,7 +31,7 @@ export class Ingresses extends React.Component<Props> {
sortingCallbacks={{
[columnId.name]: (ingress: Ingress) => ingress.getName(),
[columnId.namespace]: (ingress: Ingress) => ingress.getNs(),
[columnId.age]: (ingress: Ingress) => ingress.metadata.creationTimestamp,
[columnId.age]: (ingress: Ingress) => ingress.getTimeDiffFromNow(),
}}
searchFilters={[
(ingress: Ingress) => ingress.getSearchFields(),
......
......@@ -30,7 +30,7 @@ export class NetworkPolicies extends React.Component<Props> {
sortingCallbacks={{
[columnId.name]: (item: NetworkPolicy) => item.getName(),
[columnId.namespace]: (item: NetworkPolicy) => item.getNs(),
[columnId.age]: (item: NetworkPolicy) => item.metadata.creationTimestamp,
[columnId.age]: (item: NetworkPolicy) => item.getTimeDiffFromNow(),
}}
searchFilters={[
(item: NetworkPolicy) => item.getSearchFields(),
......
......@@ -40,7 +40,7 @@ export class Services extends React.Component<Props> {
[columnId.ports]: (service: Service) => (service.spec.ports || []).map(({ port }) => port)[0],
[columnId.clusterIp]: (service: Service) => service.getClusterIp(),
[columnId.type]: (service: Service) => service.getType(),
[columnId.age]: (service: Service) => service.metadata.creationTimestamp,
[columnId.age]: (service: Service) => service.getTimeDiffFromNow(),
[columnId.status]: (service: Service) => service.getStatus(),
}}
searchFilters={[
......
......@@ -150,7 +150,7 @@ export class Nodes extends React.Component<Props> {
[columnId.conditions]: (node: Node) => node.getNodeConditionText(),
[columnId.taints]: (node: Node) => node.getTaints().length,
[columnId.roles]: (node: Node) => node.getRoleLabels(),
[columnId.age]: (node: Node) => node.metadata.creationTimestamp,
[columnId.age]: (node: Node) => node.getTimeDiffFromNow(),
[columnId.version]: (node: Node) => node.getKubeletVersion(),
}}
searchFilters={[
......
......@@ -28,7 +28,7 @@ export class PodSecurityPolicies extends React.Component {
[columnId.name]: (item: PodSecurityPolicy) => item.getName(),
[columnId.volumes]: (item: PodSecurityPolicy) => item.getVolumes(),
[columnId.privileged]: (item: PodSecurityPolicy) => +item.isPrivileged(),
[columnId.age]: (item: PodSecurityPolicy) => item.metadata.creationTimestamp,
[columnId.age]: (item: PodSecurityPolicy) => item.getTimeDiffFromNow(),
}}
searchFilters={[
(item: PodSecurityPolicy) => item.getSearchFields(),
......
......@@ -31,7 +31,7 @@ export class StorageClasses extends React.Component<Props> {
store={storageClassStore} isClusterScoped
sortingCallbacks={{
[columnId.name]: (item: StorageClass) => item.getName(),
[columnId.age]: (item: StorageClass) => item.metadata.creationTimestamp,
[columnId.age]: (item: StorageClass) => item.getTimeDiffFromNow(),
[columnId.provisioner]: (item: StorageClass) => item.provisioner,
[columnId.reclaimPolicy]: (item: StorageClass) => item.reclaimPolicy,
}}
......
......@@ -43,7 +43,7 @@ export class PersistentVolumeClaims extends React.Component<Props> {
[columnId.status]: (pvc: PersistentVolumeClaim) => pvc.getStatus(),
[columnId.size]: (pvc: PersistentVolumeClaim) => unitsToBytes(pvc.getStorage()),
[columnId.storageClass]: (pvc: PersistentVolumeClaim) => pvc.spec.storageClassName,
[columnId.age]: (pvc: PersistentVolumeClaim) => pvc.metadata.creationTimestamp,
[columnId.age]: (pvc: PersistentVolumeClaim) => pvc.getTimeDiffFromNow(),
}}
searchFilters={[
(item: PersistentVolumeClaim) => item.getSearchFields(),
......
......@@ -34,10 +34,10 @@ export class PersistentVolumes extends React.Component<Props> {
store={volumesStore} isClusterScoped
sortingCallbacks={{
[columnId.name]: (item: PersistentVolume) => item.getName(),
[columnId.storageClass]: (item: PersistentVolume) => item.spec.storageClassName,
[columnId.storageClass]: (item: PersistentVolume) => item.getStorageClass(),
[columnId.capacity]: (item: PersistentVolume) => item.getCapacity(true),
[columnId.status]: (item: PersistentVolume) => item.getStatus(),
[columnId.age]: (item: PersistentVolume) => item.metadata.creationTimestamp,
[columnId.age]: (item: PersistentVolume) => item.getTimeDiffFromNow(),
}}
searchFilters={[
(item: PersistentVolume) => item.getSearchFields(),
......
......@@ -33,7 +33,7 @@ export class RoleBindings extends React.Component<Props> {
[columnId.name]: (binding: RoleBinding) => binding.getName(),
[columnId.namespace]: (binding: RoleBinding) => binding.getNs(),
[columnId.bindings]: (binding: RoleBinding) => binding.getSubjectNames(),
[columnId.age]: (binding: RoleBinding) => binding.metadata.creationTimestamp,
[columnId.age]: (binding: RoleBinding) => binding.getTimeDiffFromNow(),
}}
searchFilters={[
(binding: RoleBinding) => binding.getSearchFields(),
......
......@@ -32,7 +32,7 @@ export class Roles extends React.Component<Props> {
sortingCallbacks={{
[columnId.name]: (role: Role) => role.getName(),
[columnId.namespace]: (role: Role) => role.getNs(),
[columnId.age]: (role: Role) => role.metadata.creationTimestamp,
[columnId.age]: (role: Role) => role.getTimeDiffFromNow(),
}}
searchFilters={[
(role: Role) => role.getSearchFields(),
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment