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

Reverse sort direction for age columns

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2022-03-16 08:47:32 -04:00
parent e8e1f191aa
commit 4716e83555
33 changed files with 36 additions and 36 deletions

View File

@ -57,14 +57,14 @@ export class ClusterIssues extends React.Component<ClusterIssuesProps> {
kind: node.kind, kind: node.kind,
message, message,
renderAge: () => <KubeObjectAge key="age" object={node} />, renderAge: () => <KubeObjectAge key="age" object={node} />,
ageMs: node.getCreationTimestamp(), ageMs: -node.getCreationTimestamp(),
})) }))
)), )),
...eventStore.getWarnings().map(warning => ({ ...eventStore.getWarnings().map(warning => ({
getId: () => warning.involvedObject.uid, getId: () => warning.involvedObject.uid,
getName: () => warning.involvedObject.name, getName: () => warning.involvedObject.name,
renderAge: () => <KubeObjectAge key="age" object={warning} />, renderAge: () => <KubeObjectAge key="age" object={warning} />,
ageMs: warning.getCreationTimestamp(), ageMs: -warning.getCreationTimestamp(),
message: warning.message, message: warning.message,
kind: warning.kind, kind: warning.kind,
selfLink: apiManager.lookupApiLink(warning.involvedObject, warning), selfLink: apiManager.lookupApiLink(warning.involvedObject, warning),

View File

@ -58,7 +58,7 @@ export class HorizontalPodAutoscalers extends React.Component<HorizontalPodAutos
[columnId.minPods]: hpa => hpa.getMinPods(), [columnId.minPods]: hpa => hpa.getMinPods(),
[columnId.maxPods]: hpa => hpa.getMaxPods(), [columnId.maxPods]: hpa => hpa.getMaxPods(),
[columnId.replicas]: hpa => hpa.getReplicas(), [columnId.replicas]: hpa => hpa.getReplicas(),
[columnId.age]: hpa => hpa.getCreationTimestamp(), [columnId.age]: hpa => -hpa.getCreationTimestamp(),
}} }}
searchFilters={[ searchFilters={[
hpa => hpa.getSearchFields(), hpa => hpa.getSearchFields(),

View File

@ -35,7 +35,7 @@ export class LimitRanges extends React.Component<LimitRangesProps> {
sortingCallbacks={{ sortingCallbacks={{
[columnId.name]: limitRange => limitRange.getName(), [columnId.name]: limitRange => limitRange.getName(),
[columnId.namespace]: limitRange => limitRange.getNs(), [columnId.namespace]: limitRange => limitRange.getNs(),
[columnId.age]: limitRange => limitRange.getCreationTimestamp(), [columnId.age]: limitRange => -limitRange.getCreationTimestamp(),
}} }}
searchFilters={[ searchFilters={[
item => item.getName(), item => item.getName(),

View File

@ -37,7 +37,7 @@ export class ConfigMaps extends React.Component<ConfigMapsProps> {
[columnId.name]: configMap => configMap.getName(), [columnId.name]: configMap => configMap.getName(),
[columnId.namespace]: configMap => configMap.getNs(), [columnId.namespace]: configMap => configMap.getNs(),
[columnId.keys]: configMap => configMap.getKeys(), [columnId.keys]: configMap => configMap.getKeys(),
[columnId.age]: configMap => configMap.getCreationTimestamp(), [columnId.age]: configMap => -configMap.getCreationTimestamp(),
}} }}
searchFilters={[ searchFilters={[
configMap => configMap.getSearchFields(), configMap => configMap.getSearchFields(),

View File

@ -43,7 +43,7 @@ export class PodDisruptionBudgets extends React.Component<PodDisruptionBudgetsPr
[columnId.maxUnavailable]: pdb => pdb.getMaxUnavailable(), [columnId.maxUnavailable]: pdb => pdb.getMaxUnavailable(),
[columnId.currentHealthy]: pdb => pdb.getCurrentHealthy(), [columnId.currentHealthy]: pdb => pdb.getCurrentHealthy(),
[columnId.desiredHealthy]: pdb => pdb.getDesiredHealthy(), [columnId.desiredHealthy]: pdb => pdb.getDesiredHealthy(),
[columnId.age]: pdb => pdb.getCreationTimestamp(), [columnId.age]: pdb => -pdb.getCreationTimestamp(),
}} }}
searchFilters={[ searchFilters={[
pdb => pdb.getSearchFields(), pdb => pdb.getSearchFields(),

View File

@ -37,7 +37,7 @@ export class ResourceQuotas extends React.Component<ResourceQuotasProps> {
sortingCallbacks={{ sortingCallbacks={{
[columnId.name]: resourceQuota => resourceQuota.getName(), [columnId.name]: resourceQuota => resourceQuota.getName(),
[columnId.namespace]: resourceQuota => resourceQuota.getNs(), [columnId.namespace]: resourceQuota => resourceQuota.getNs(),
[columnId.age]: resourceQuota => resourceQuota.getCreationTimestamp(), [columnId.age]: resourceQuota => -resourceQuota.getCreationTimestamp(),
}} }}
searchFilters={[ searchFilters={[
resourceQuota => resourceQuota.getSearchFields(), resourceQuota => resourceQuota.getSearchFields(),

View File

@ -44,7 +44,7 @@ export class Secrets extends React.Component<SecretsProps> {
[columnId.labels]: secret => secret.getLabels(), [columnId.labels]: secret => secret.getLabels(),
[columnId.keys]: secret => secret.getKeys(), [columnId.keys]: secret => secret.getKeys(),
[columnId.type]: secret => secret.type, [columnId.type]: secret => secret.type,
[columnId.age]: secret => secret.getCreationTimestamp(), [columnId.age]: secret => -secret.getCreationTimestamp(),
}} }}
searchFilters={[ searchFilters={[
secret => secret.getSearchFields(), secret => secret.getSearchFields(),

View File

@ -77,14 +77,14 @@ export class CustomResourceDefinitions extends React.Component {
[columnId.group]: crd => crd.getGroup(), [columnId.group]: crd => crd.getGroup(),
[columnId.version]: crd => crd.getVersion(), [columnId.version]: crd => crd.getVersion(),
[columnId.scope]: crd => crd.getScope(), [columnId.scope]: crd => crd.getScope(),
[columnId.age]: crd => crd.getCreationTimestamp(), [columnId.age]: crd => -crd.getCreationTimestamp(),
}} }}
searchFilters={[ searchFilters={[
crd => crd.getResourceKind(), crd => crd.getResourceKind(),
crd => crd.getGroup(), crd => crd.getGroup(),
crd => crd.getVersion(), crd => crd.getVersion(),
crd => crd.getScope(), crd => crd.getScope(),
crd => crd.getCreationTimestamp(), crd => -crd.getCreationTimestamp(),
]} ]}
renderHeaderTitle="Custom Resources" renderHeaderTitle="Custom Resources"
customizeHeader={({ filters, ...headerPlaceholders }) => { customizeHeader={({ filters, ...headerPlaceholders }) => {

View File

@ -64,7 +64,7 @@ export class CustomResourceDefinitionResources extends React.Component<CustomRes
sortingCallbacks={{ sortingCallbacks={{
[columnId.name]: customResource => customResource.getName(), [columnId.name]: customResource => customResource.getName(),
[columnId.namespace]: customResource => customResource.getNs(), [columnId.namespace]: customResource => customResource.getNs(),
[columnId.age]: customResource => customResource.getCreationTimestamp(), [columnId.age]: customResource => -customResource.getCreationTimestamp(),
...Object.fromEntries(extraColumns.map(({ name, jsonPath }) => [ ...Object.fromEntries(extraColumns.map(({ name, jsonPath }) => [
name, name,
customResource => value(customResource, parseJsonPath(jsonPath.slice(1))), customResource => value(customResource, parseJsonPath(jsonPath.slice(1))),

View File

@ -29,7 +29,7 @@ export class EventStore extends KubeObjectStore<KubeEvent> {
protected sortItems(items: KubeEvent[]) { protected sortItems(items: KubeEvent[]) {
return super.sortItems(items, [ return super.sortItems(items, [
event => event.getCreationTimestamp(), // keep events order as timeline ("fresh" on top) event => -event.getCreationTimestamp(), // keep events order as timeline ("fresh" on top)
], "asc"); ], "asc");
} }

View File

@ -60,8 +60,8 @@ export class Events extends React.Component<EventsProps> {
[columnId.type]: event => event.type, [columnId.type]: event => event.type,
[columnId.object]: event => event.involvedObject.name, [columnId.object]: event => event.involvedObject.name,
[columnId.count]: event => event.count, [columnId.count]: event => event.count,
[columnId.age]: event => event.getCreationTimestamp(), [columnId.age]: event => -event.getCreationTimestamp(),
[columnId.lastSeen]: event => new Date(event.lastTimestamp).getTime(), [columnId.lastSeen]: event => -new Date(event.lastTimestamp).getTime(),
}; };
constructor(props: EventsProps) { constructor(props: EventsProps) {

View File

@ -46,7 +46,7 @@ export const NonInjectedNamespacesRoute = ({ namespaceStore, openAddNamespaceDia
sortingCallbacks={{ sortingCallbacks={{
[columnId.name]: namespace => namespace.getName(), [columnId.name]: namespace => namespace.getName(),
[columnId.labels]: namespace => namespace.getLabels(), [columnId.labels]: namespace => namespace.getLabels(),
[columnId.age]: namespace => namespace.getCreationTimestamp(), [columnId.age]: namespace => -namespace.getCreationTimestamp(),
[columnId.status]: namespace => namespace.getStatus(), [columnId.status]: namespace => namespace.getStatus(),
}} }}
searchFilters={[ searchFilters={[

View File

@ -35,7 +35,7 @@ export class Endpoints extends React.Component<EndpointsProps> {
sortingCallbacks={{ sortingCallbacks={{
[columnId.name]: endpoint => endpoint.getName(), [columnId.name]: endpoint => endpoint.getName(),
[columnId.namespace]: endpoint => endpoint.getNs(), [columnId.namespace]: endpoint => endpoint.getNs(),
[columnId.age]: endpoint => endpoint.getCreationTimestamp(), [columnId.age]: endpoint => -endpoint.getCreationTimestamp(),
}} }}
searchFilters={[ searchFilters={[
endpoint => endpoint.getSearchFields(), endpoint => endpoint.getSearchFields(),

View File

@ -36,7 +36,7 @@ export class Ingresses extends React.Component<IngressesProps> {
sortingCallbacks={{ sortingCallbacks={{
[columnId.name]: ingress => ingress.getName(), [columnId.name]: ingress => ingress.getName(),
[columnId.namespace]: ingress => ingress.getNs(), [columnId.namespace]: ingress => ingress.getNs(),
[columnId.age]: ingress => ingress.getCreationTimestamp(), [columnId.age]: ingress => -ingress.getCreationTimestamp(),
}} }}
searchFilters={[ searchFilters={[
ingress => ingress.getSearchFields(), ingress => ingress.getSearchFields(),

View File

@ -36,7 +36,7 @@ export class NetworkPolicies extends React.Component<NetworkPoliciesProps> {
sortingCallbacks={{ sortingCallbacks={{
[columnId.name]: networkPolicy => networkPolicy.getName(), [columnId.name]: networkPolicy => networkPolicy.getName(),
[columnId.namespace]: networkPolicy => networkPolicy.getNs(), [columnId.namespace]: networkPolicy => networkPolicy.getNs(),
[columnId.age]: networkPolicy => networkPolicy.getCreationTimestamp(), [columnId.age]: networkPolicy => -networkPolicy.getCreationTimestamp(),
}} }}
searchFilters={[ searchFilters={[
networkPolicy => networkPolicy.getSearchFields(), networkPolicy => networkPolicy.getSearchFields(),

View File

@ -45,7 +45,7 @@ export class Services extends React.Component<ServicesProps> {
[columnId.ports]: service => (service.spec.ports || []).map(({ port }) => port)[0], [columnId.ports]: service => (service.spec.ports || []).map(({ port }) => port)[0],
[columnId.clusterIp]: service => service.getClusterIp(), [columnId.clusterIp]: service => service.getClusterIp(),
[columnId.type]: service => service.getType(), [columnId.type]: service => service.getType(),
[columnId.age]: service => service.getCreationTimestamp(), [columnId.age]: service => -service.getCreationTimestamp(),
[columnId.status]: service => service.getStatus(), [columnId.status]: service => service.getStatus(),
}} }}
searchFilters={[ searchFilters={[

View File

@ -192,7 +192,7 @@ export class NodesRoute extends React.Component<NodesRouteProps> {
[columnId.conditions]: node => node.getNodeConditionText(), [columnId.conditions]: node => node.getNodeConditionText(),
[columnId.taints]: node => node.getTaints().length, [columnId.taints]: node => node.getTaints().length,
[columnId.roles]: node => node.getRoleLabels(), [columnId.roles]: node => node.getRoleLabels(),
[columnId.age]: node => node.getCreationTimestamp(), [columnId.age]: node => -node.getCreationTimestamp(),
[columnId.version]: node => node.getKubeletVersion(), [columnId.version]: node => node.getKubeletVersion(),
}} }}
searchFilters={[ searchFilters={[

View File

@ -32,7 +32,7 @@ export class PodSecurityPolicies extends React.Component {
[columnId.name]: podSecurityPolicy => podSecurityPolicy.getName(), [columnId.name]: podSecurityPolicy => podSecurityPolicy.getName(),
[columnId.volumes]: podSecurityPolicy => podSecurityPolicy.getVolumes(), [columnId.volumes]: podSecurityPolicy => podSecurityPolicy.getVolumes(),
[columnId.privileged]: podSecurityPolicy => +podSecurityPolicy.isPrivileged(), [columnId.privileged]: podSecurityPolicy => +podSecurityPolicy.isPrivileged(),
[columnId.age]: podSecurityPolicy => podSecurityPolicy.getCreationTimestamp(), [columnId.age]: podSecurityPolicy => -podSecurityPolicy.getCreationTimestamp(),
}} }}
searchFilters={[ searchFilters={[
podSecurityPolicy => podSecurityPolicy.getSearchFields(), podSecurityPolicy => podSecurityPolicy.getSearchFields(),

View File

@ -36,7 +36,7 @@ export class StorageClasses extends React.Component<StorageClassesProps> {
store={storageClassStore} store={storageClassStore}
sortingCallbacks={{ sortingCallbacks={{
[columnId.name]: storageClass => storageClass.getName(), [columnId.name]: storageClass => storageClass.getName(),
[columnId.age]: storageClass => storageClass.getCreationTimestamp(), [columnId.age]: storageClass => -storageClass.getCreationTimestamp(),
[columnId.provisioner]: storageClass => storageClass.provisioner, [columnId.provisioner]: storageClass => storageClass.provisioner,
[columnId.reclaimPolicy]: storageClass => storageClass.reclaimPolicy, [columnId.reclaimPolicy]: storageClass => storageClass.reclaimPolicy,
}} }}

View File

@ -49,7 +49,7 @@ export class PersistentVolumeClaims extends React.Component<PersistentVolumeClai
[columnId.status]: pvc => pvc.getStatus(), [columnId.status]: pvc => pvc.getStatus(),
[columnId.size]: pvc => unitsToBytes(pvc.getStorage()), [columnId.size]: pvc => unitsToBytes(pvc.getStorage()),
[columnId.storageClass]: pvc => pvc.spec.storageClassName, [columnId.storageClass]: pvc => pvc.spec.storageClassName,
[columnId.age]: pvc => pvc.getCreationTimestamp(), [columnId.age]: pvc => -pvc.getCreationTimestamp(),
}} }}
searchFilters={[ searchFilters={[
pvc => pvc.getSearchFields(), pvc => pvc.getSearchFields(),

View File

@ -43,7 +43,7 @@ export class PersistentVolumes extends React.Component<PersistentVolumesProps> {
[columnId.storageClass]: volume => volume.getStorageClass(), [columnId.storageClass]: volume => volume.getStorageClass(),
[columnId.capacity]: volume => volume.getCapacity(true), [columnId.capacity]: volume => volume.getCapacity(true),
[columnId.status]: volume => volume.getStatus(), [columnId.status]: volume => volume.getStatus(),
[columnId.age]: volume => volume.getCreationTimestamp(), [columnId.age]: volume => -volume.getCreationTimestamp(),
}} }}
searchFilters={[ searchFilters={[
volume => volume.getSearchFields(), volume => volume.getSearchFields(),

View File

@ -41,7 +41,7 @@ export class ClusterRoleBindings extends React.Component<ClusterRoleBindingsProp
sortingCallbacks={{ sortingCallbacks={{
[columnId.name]: binding => binding.getName(), [columnId.name]: binding => binding.getName(),
[columnId.bindings]: binding => binding.getSubjectNames(), [columnId.bindings]: binding => binding.getSubjectNames(),
[columnId.age]: binding => binding.getCreationTimestamp(), [columnId.age]: binding => -binding.getCreationTimestamp(),
}} }}
searchFilters={[ searchFilters={[
binding => binding.getSearchFields(), binding => binding.getSearchFields(),

View File

@ -36,7 +36,7 @@ export class ClusterRoles extends React.Component<ClusterRolesProps> {
store={clusterRolesStore} store={clusterRolesStore}
sortingCallbacks={{ sortingCallbacks={{
[columnId.name]: clusterRole => clusterRole.getName(), [columnId.name]: clusterRole => clusterRole.getName(),
[columnId.age]: clusterRole => clusterRole.getCreationTimestamp(), [columnId.age]: clusterRole => -clusterRole.getCreationTimestamp(),
}} }}
searchFilters={[ searchFilters={[
clusterRole => clusterRole.getSearchFields(), clusterRole => clusterRole.getSearchFields(),

View File

@ -42,7 +42,7 @@ export class RoleBindings extends React.Component<RoleBindingsProps> {
[columnId.name]: binding => binding.getName(), [columnId.name]: binding => binding.getName(),
[columnId.namespace]: binding => binding.getNs(), [columnId.namespace]: binding => binding.getNs(),
[columnId.bindings]: binding => binding.getSubjectNames(), [columnId.bindings]: binding => binding.getSubjectNames(),
[columnId.age]: binding => binding.getCreationTimestamp(), [columnId.age]: binding => -binding.getCreationTimestamp(),
}} }}
searchFilters={[ searchFilters={[
binding => binding.getSearchFields(), binding => binding.getSearchFields(),

View File

@ -37,7 +37,7 @@ export class Roles extends React.Component<RolesProps> {
sortingCallbacks={{ sortingCallbacks={{
[columnId.name]: role => role.getName(), [columnId.name]: role => role.getName(),
[columnId.namespace]: role => role.getNs(), [columnId.namespace]: role => role.getNs(),
[columnId.age]: role => role.getCreationTimestamp(), [columnId.age]: role => -role.getCreationTimestamp(),
}} }}
searchFilters={[ searchFilters={[
role => role.getSearchFields(), role => role.getSearchFields(),

View File

@ -36,7 +36,7 @@ export class ServiceAccounts extends React.Component<ServiceAccountsProps> {
sortingCallbacks={{ sortingCallbacks={{
[columnId.name]: account => account.getName(), [columnId.name]: account => account.getName(),
[columnId.namespace]: account => account.getNs(), [columnId.namespace]: account => account.getNs(),
[columnId.age]: account => account.getCreationTimestamp(), [columnId.age]: account => -account.getCreationTimestamp(),
}} }}
searchFilters={[ searchFilters={[
account => account.getSearchFields(), account => account.getSearchFields(),

View File

@ -50,7 +50,7 @@ export class CronJobs extends React.Component<CronJobsProps> {
? moment().diff(cronJob.status.lastScheduleTime) ? moment().diff(cronJob.status.lastScheduleTime)
: 0 : 0
), ),
[columnId.age]: cronJob => cronJob.getCreationTimestamp(), [columnId.age]: cronJob => -cronJob.getCreationTimestamp(),
}} }}
searchFilters={[ searchFilters={[
cronJob => cronJob.getSearchFields(), cronJob => cronJob.getSearchFields(),

View File

@ -47,7 +47,7 @@ export class DaemonSets extends React.Component<DaemonSetsProps> {
[columnId.name]: daemonSet => daemonSet.getName(), [columnId.name]: daemonSet => daemonSet.getName(),
[columnId.namespace]: daemonSet => daemonSet.getNs(), [columnId.namespace]: daemonSet => daemonSet.getNs(),
[columnId.pods]: daemonSet => this.getPodsLength(daemonSet), [columnId.pods]: daemonSet => this.getPodsLength(daemonSet),
[columnId.age]: daemonSet => daemonSet.getCreationTimestamp(), [columnId.age]: daemonSet => -daemonSet.getCreationTimestamp(),
}} }}
searchFilters={[ searchFilters={[
daemonSet => daemonSet.getSearchFields(), daemonSet => daemonSet.getSearchFields(),

View File

@ -60,7 +60,7 @@ export class Deployments extends React.Component<DeploymentsProps> {
[columnId.name]: deployment => deployment.getName(), [columnId.name]: deployment => deployment.getName(),
[columnId.namespace]: deployment => deployment.getNs(), [columnId.namespace]: deployment => deployment.getNs(),
[columnId.replicas]: deployment => deployment.getReplicas(), [columnId.replicas]: deployment => deployment.getReplicas(),
[columnId.age]: deployment => deployment.getCreationTimestamp(), [columnId.age]: deployment => -deployment.getCreationTimestamp(),
[columnId.condition]: deployment => deployment.getConditionsText(), [columnId.condition]: deployment => deployment.getConditionsText(),
}} }}
searchFilters={[ searchFilters={[

View File

@ -40,7 +40,7 @@ export class Jobs extends React.Component<JobsProps> {
[columnId.name]: job => job.getName(), [columnId.name]: job => job.getName(),
[columnId.namespace]: job => job.getNs(), [columnId.namespace]: job => job.getNs(),
[columnId.conditions]: job => job.getCondition() != null ? job.getCondition().type : "", [columnId.conditions]: job => job.getCondition() != null ? job.getCondition().type : "",
[columnId.age]: job => job.getCreationTimestamp(), [columnId.age]: job => -job.getCreationTimestamp(),
}} }}
searchFilters={[ searchFilters={[
job => job.getSearchFields(), job => job.getSearchFields(),

View File

@ -90,7 +90,7 @@ export class Pods extends React.Component<PodsProps> {
[columnId.owners]: pod => pod.getOwnerRefs().map(ref => ref.kind), [columnId.owners]: pod => pod.getOwnerRefs().map(ref => ref.kind),
[columnId.qos]: pod => pod.getQosClass(), [columnId.qos]: pod => pod.getQosClass(),
[columnId.node]: pod => pod.getNodeName(), [columnId.node]: pod => pod.getNodeName(),
[columnId.age]: pod => pod.getCreationTimestamp(), [columnId.age]: pod => -pod.getCreationTimestamp(),
[columnId.status]: pod => pod.getStatusMessage(), [columnId.status]: pod => pod.getStatusMessage(),
}} }}
searchFilters={[ searchFilters={[

View File

@ -42,7 +42,7 @@ export class ReplicaSets extends React.Component<ReplicaSetsProps> {
[columnId.desired]: replicaSet => replicaSet.getDesired(), [columnId.desired]: replicaSet => replicaSet.getDesired(),
[columnId.current]: replicaSet => replicaSet.getCurrent(), [columnId.current]: replicaSet => replicaSet.getCurrent(),
[columnId.ready]: replicaSet => replicaSet.getReady(), [columnId.ready]: replicaSet => replicaSet.getReady(),
[columnId.age]: replicaSet => replicaSet.getCreationTimestamp(), [columnId.age]: replicaSet => -replicaSet.getCreationTimestamp(),
}} }}
searchFilters={[ searchFilters={[
replicaSet => replicaSet.getSearchFields(), replicaSet => replicaSet.getSearchFields(),

View File

@ -46,7 +46,7 @@ export class StatefulSets extends React.Component<StatefulSetsProps> {
sortingCallbacks={{ sortingCallbacks={{
[columnId.name]: statefulSet => statefulSet.getName(), [columnId.name]: statefulSet => statefulSet.getName(),
[columnId.namespace]: statefulSet => statefulSet.getNs(), [columnId.namespace]: statefulSet => statefulSet.getNs(),
[columnId.age]: statefulSet => statefulSet.getCreationTimestamp(), [columnId.age]: statefulSet => -statefulSet.getCreationTimestamp(),
[columnId.replicas]: statefulSet => statefulSet.getReplicas(), [columnId.replicas]: statefulSet => statefulSet.getReplicas(),
}} }}
searchFilters={[ searchFilters={[