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

View File

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