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

some fixes, improved items search by values from spec.parameters.*

Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
Roman 2023-01-02 16:02:49 +02:00
parent 4c88f295ec
commit 34e7977259
2 changed files with 32 additions and 25 deletions

View File

@ -11,6 +11,8 @@ export class IngressClassApi extends KubeApi<IngressClass> {
constructor() {
super({
objectConstructor: IngressClass,
checkPreferredVersion: true,
fallbackApiBases: ["/apis/extensions/v1beta1/ingressclasses"],
});
}
}
@ -37,7 +39,7 @@ export interface IngressClassParametersReference {
}
export interface IngressClassSpec {
controller: string; // example.com/ingress-controller
controller: string; // "example.com/ingress-controller"
parameters?: IngressClassParametersReference;
}
@ -49,28 +51,28 @@ export class IngressClass extends KubeObject<IngressClassMetadata, IngressClassS
static readonly namespaced = true;
static readonly apiBase = "/apis/networking.k8s.io/v1/ingressclasses";
getController() {
getIngressCtrl(): string {
return this.spec.controller;
}
getApiGroup() {
return this.spec.parameters?.apiGroup;
getCtrlApiGroup() {
return this.spec?.parameters?.apiGroup;
}
getScope() {
return this.spec.parameters?.scope;
getCtrlScope() {
return this.spec?.parameters?.scope;
}
getNs() {
return this.spec.parameters?.namespace as string;
getCtrlNs() {
return this.spec?.parameters?.namespace as string;
}
getKind() {
return this.spec.parameters?.kind;
getCtrlKind() {
return this.spec?.parameters?.kind;
}
getSpecName() {
return this.spec.parameters?.name as string;
getCtrlName() {
return this.spec?.parameters?.name as string;
}
get isDefault() {

View File

@ -13,8 +13,9 @@ import { withInjectables } from "@ogre-tools/injectable-react";
import type { IngressClassStore } from "./ingress-class-store";
import ingressClassStoreInjectable from "./ingress-class-store.injectable";
import type { IngressClass } from "../../../common/k8s-api/endpoints/ingress-class.api";
import { Icon } from "../icon";
import { cssNames } from "../../utils";
import { Icon } from "../icon";
import { Badge } from "../badge";
enum columnId {
name = "name",
@ -42,15 +43,19 @@ const NonInjectedIngressClasses = observer((props: Dependencies) => {
className={styles.IngressClasses}
store={store}
sortingCallbacks={{
[columnId.name]: (resource: IngressClass) => resource.getName(),
[columnId.namespace]: (resource: IngressClass) => resource.getNs(),
[columnId.controller]: (resource: IngressClass) => resource.getController(),
[columnId.apiGroup]: (resource: IngressClass) => resource.getApiGroup(),
[columnId.scope]: (resource: IngressClass) => resource.getScope(),
[columnId.kind]: (resource: IngressClass) => resource.getKind(),
[columnId.name]: (resource: IngressClass) => resource.getCtrlName(),
[columnId.namespace]: (resource: IngressClass) => resource.getCtrlNs(),
[columnId.controller]: (resource: IngressClass) => resource.getIngressCtrl(),
[columnId.apiGroup]: (resource: IngressClass) => resource.getCtrlApiGroup(),
[columnId.scope]: (resource: IngressClass) => resource.getCtrlScope(),
[columnId.kind]: (resource: IngressClass) => resource.getCtrlKind(),
}}
searchFilters={[
ingress => ingress.getSearchFields(),
(resource: IngressClass) => resource.getSearchFields(),
(resource: IngressClass) => resource.getIngressCtrl(),
(resource: IngressClass) => resource.getCtrlApiGroup(),
(resource: IngressClass) => resource.getCtrlScope(),
(resource: IngressClass) => resource.getCtrlKind(),
]}
renderHeaderTitle="Ingress Classes"
renderTableHeader={[
@ -89,11 +94,11 @@ const NonInjectedIngressClasses = observer((props: Dependencies) => {
/>
)}
</div>,
ingressClass.getController(),
ingressClass.getNs(),
ingressClass.getApiGroup(),
ingressClass.getScope(),
ingressClass.getKind(),
ingressClass.getCtrlNs(),
<Badge label={ingressClass.getIngressCtrl()} tooltip={ingressClass.getIngressCtrl()} />,
ingressClass.getCtrlApiGroup(),
ingressClass.getCtrlScope(),
ingressClass.getCtrlKind(),
]}
/>
</SiblingsInTabLayout>