1
0
mirror of https://github.com/lensapp/lens.git synced 2024-08-16 04:40:24 +03:00

chore: Move around Custom Resource and Custom Resource Definition files to simplify names

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2023-05-15 15:22:20 -04:00
parent 66a7615e9c
commit b1a988e133
33 changed files with 105 additions and 219 deletions

View File

@ -145,5 +145,5 @@ export type { NamespaceStore } from "../../renderer/components/namespaces/store"
export type { ServiceAccountStore as ServiceAccountsStore } from "../../renderer/components/user-management/service-accounts/store";
export type { RoleStore as RolesStore } from "../../renderer/components/user-management/roles/store";
export type { RoleBindingStore as RoleBindingsStore } from "../../renderer/components/user-management/role-bindings/store";
export type { CustomResourceDefinitionStore as CRDStore } from "../../renderer/components/custom-resources/definition.store";
export type { CustomResourceDefinitionStore as CRDStore } from "../../renderer/components/custom-resource-definitions/store";
export type { CustomResourceStore as CRDResourceStore } from "../../common/k8s-api/api-manager/resource.store";

View File

@ -5,8 +5,8 @@
import type { RenderResult } from "@testing-library/react";
import { CustomResourceDefinition } from "../../extensions/common-api/k8s-api";
import type { CustomResourceDefinitionStore } from "../../renderer/components/custom-resources/definition.store";
import customResourceDefinitionStoreInjectable from "../../renderer/components/custom-resources/definition.store.injectable";
import type { CustomResourceDefinitionStore } from "../../renderer/components/custom-resource-definitions/store";
import customResourceDefinitionStoreInjectable from "../../renderer/components/custom-resource-definitions/store.injectable";
import type { ApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder";
import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder";

View File

@ -77,7 +77,7 @@ exports[`Viewing Custom Resources with extra columns renders 1`] = `
>
<a
class="navItem"
data-testid="sidebar-item-link-for-workloads"
data-testid="link-for-sidebar-item-workloads"
href="/"
>
<i
@ -129,6 +129,7 @@ exports[`Viewing Custom Resources with extra columns renders 1`] = `
</span>
<i
class="Icon expandIcon material focusable"
data-testid="expand-icon-for-sidebar-item-workloads"
>
<span
class="icon"
@ -139,31 +140,6 @@ exports[`Viewing Custom Resources with extra columns renders 1`] = `
</i>
</a>
</div>
<div
class="SidebarItem"
data-is-active-test="false"
data-testid="sidebar-item-config"
>
<a
class="navItem"
data-testid="sidebar-item-link-for-config"
href="/"
>
<i
class="Icon material focusable"
>
<span
class="icon"
data-icon-name="list"
>
list
</span>
</i>
<span>
Config
</span>
</a>
</div>
<div
class="SidebarItem"
data-is-active-test="false"
@ -171,7 +147,7 @@ exports[`Viewing Custom Resources with extra columns renders 1`] = `
>
<a
class="navItem"
data-testid="sidebar-item-link-for-network"
data-testid="link-for-sidebar-item-network"
href="/"
>
<i
@ -189,6 +165,7 @@ exports[`Viewing Custom Resources with extra columns renders 1`] = `
</span>
<i
class="Icon expandIcon material focusable"
data-testid="expand-icon-for-sidebar-item-network"
>
<span
class="icon"
@ -199,31 +176,6 @@ exports[`Viewing Custom Resources with extra columns renders 1`] = `
</i>
</a>
</div>
<div
class="SidebarItem"
data-is-active-test="false"
data-testid="sidebar-item-storage"
>
<a
class="navItem"
data-testid="sidebar-item-link-for-storage"
href="/"
>
<i
class="Icon material focusable"
>
<span
class="icon"
data-icon-name="storage"
>
storage
</span>
</i>
<span>
Storage
</span>
</a>
</div>
<div
class="SidebarItem"
data-is-active-test="false"
@ -231,7 +183,7 @@ exports[`Viewing Custom Resources with extra columns renders 1`] = `
>
<a
class="navItem"
data-testid="sidebar-item-link-for-helm"
data-testid="link-for-sidebar-item-helm"
href="/"
>
<i
@ -283,67 +235,7 @@ exports[`Viewing Custom Resources with extra columns renders 1`] = `
</span>
<i
class="Icon expandIcon material focusable"
>
<span
class="icon"
data-icon-name="keyboard_arrow_down"
>
keyboard_arrow_down
</span>
</i>
</a>
</div>
<div
class="SidebarItem"
data-is-active-test="false"
data-testid="sidebar-item-user-management"
>
<a
class="navItem"
data-testid="sidebar-item-link-for-user-management"
href="/"
>
<i
class="Icon material focusable"
>
<span
class="icon"
data-icon-name="security"
>
security
</span>
</i>
<span>
Access Control
</span>
</a>
</div>
<div
class="SidebarItem"
data-is-active-test="true"
data-testid="sidebar-item-custom-resources"
>
<a
aria-current="page"
class="navItem active"
data-testid="sidebar-item-link-for-custom-resources"
href="/"
>
<i
class="Icon material focusable"
>
<span
class="icon"
data-icon-name="extension"
>
extension
</span>
</i>
<span>
Custom Resources
</span>
<i
class="Icon expandIcon material focusable"
data-testid="expand-icon-for-sidebar-item-helm"
>
<span
class="icon"
@ -371,7 +263,7 @@ exports[`Viewing Custom Resources with extra columns renders 1`] = `
class=""
>
<div
class="ItemListLayout flex column KubeObjectListLayout CrdResources"
class="ItemListLayout flex column KubeObjectListLayout CustomResources"
>
<div
class="header flex gaps align-center"
@ -419,7 +311,7 @@ exports[`Viewing Custom Resources with extra columns renders 1`] = `
class="items box grow flex column"
>
<div
class="Table flex column KubeObjectListLayout CrdResources box grow dark selectable scrollable sortable autoSize virtual"
class="Table flex column KubeObjectListLayout CustomResources box grow dark selectable scrollable sortable autoSize virtual"
>
<div
class="TableHead sticky nowrap topLine"
@ -521,7 +413,7 @@ exports[`Viewing Custom Resources with extra columns renders 1`] = `
</div>
</div>
<div
class="VirtualList KubeObjectListLayout CrdResources box grow dark"
class="VirtualList KubeObjectListLayout CustomResources box grow dark"
>
<div>
<div

View File

@ -9,8 +9,8 @@ import type { RenderResult } from "@testing-library/react";
import navigateToCustomResourcesInjectable from "../../common/front-end-routing/routes/cluster/custom-resources/navigate-to-custom-resources.injectable";
import apiManagerInjectable from "../../common/k8s-api/api-manager/manager.injectable";
import type { CustomResourceStore } from "../../common/k8s-api/api-manager/resource.store";
import type { CustomResourceDefinitionStore } from "../../renderer/components/custom-resources/definition.store";
import customResourceDefinitionStoreInjectable from "../../renderer/components/custom-resources/definition.store.injectable";
import type { CustomResourceDefinitionStore } from "../../renderer/components/custom-resource-definitions/store";
import customResourceDefinitionStoreInjectable from "../../renderer/components/custom-resource-definitions/store.injectable";
import type { ApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder";
import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder";

View File

@ -11,7 +11,7 @@ import { KubeObject } from "@k8slens/kube-object";
import maybeKubeApiInjectable from "../../../common/k8s-api/maybe-kube-api.injectable";
import { loggerInjectionToken } from "@k8slens/logger";
import { injectableDifferencingRegistratorWith } from "../../../common/utils/registrator-helper";
import customResourceDefinitionStoreInjectable from "../../components/custom-resources/definition.store.injectable";
import customResourceDefinitionStoreInjectable from "../../components/custom-resource-definitions/store.injectable";
import { beforeClusterFrameStartsSecondInjectionToken } from "../tokens";
const setupAutoCrdApiCreationsInjectable = getInjectable({

View File

@ -7,7 +7,7 @@ import { getInjectable } from "@ogre-tools/injectable";
import type { IComputedValue } from "mobx";
import { computed } from "mobx";
import type { CustomResourceDefinition } from "@k8slens/kube-object";
import customResourceDefinitionsInjectable from "../../custom-resources/custom-resources.injectable";
import customResourceDefinitionsInjectable from "../../custom-resource-definitions/definitions.injectable";
import type { LensRendererExtension } from "../../../../extensions/lens-renderer-extension";
import rendererExtensionsInjectable from "../../../../extensions/renderer-extensions.injectable";
import type { CommandRegistration, RegisteredCommand } from "./commands";

View File

@ -7,7 +7,7 @@ import { getInjectable } from "@ogre-tools/injectable";
import { computed } from "mobx";
import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable";
import subscribeStoresInjectable from "../../kube-watch-api/subscribe-stores.injectable";
import customResourceDefinitionStoreInjectable from "./definition.store.injectable";
import customResourceDefinitionStoreInjectable from "./store.injectable";
const customResourceDefinitionsInjectable = getInjectable({
id: "custom-resource-definitions",

View File

@ -3,11 +3,11 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
@import "crd.mixins";
@import "./mixins.scss";
.CRDDetails {
.CustomResourceDefinitionDetails {
.conditions {
@include crd-condition-bgc;
@include custom-resource-definitions-condition-colors;
}
.Table {

View File

@ -3,7 +3,7 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import "./crd-details.scss";
import "./details.scss";
import React from "react";
import { Link } from "react-router-dom";
@ -19,7 +19,7 @@ import type { Logger } from "@k8slens/logger";
import { withInjectables } from "@ogre-tools/injectable-react";
import { loggerInjectionToken } from "@k8slens/logger";
export interface CRDDetailsProps extends KubeObjectDetailsProps<CustomResourceDefinition> {
export interface CustomResourceDefinitionDetailsProps extends KubeObjectDetailsProps<CustomResourceDefinition> {
}
interface Dependencies {
@ -27,7 +27,7 @@ interface Dependencies {
}
@observer
class NonInjectedCRDDetails extends React.Component<CRDDetailsProps & Dependencies> {
class NonInjectedCustomResourceDefinitionDetails extends React.Component<CustomResourceDefinitionDetailsProps & Dependencies> {
render() {
const { object: crd } = this.props;
@ -36,7 +36,7 @@ class NonInjectedCRDDetails extends React.Component<CRDDetailsProps & Dependenci
}
if (!(crd instanceof CustomResourceDefinition)) {
this.props.logger.error("[CRDDetails]: passed object that is not an instanceof CustomResourceDefinition", crd);
this.props.logger.error("[CustomResourceDefinitionDetails]: passed object that is not an instanceof CustomResourceDefinition", crd);
return null;
}
@ -46,7 +46,7 @@ class NonInjectedCRDDetails extends React.Component<CRDDetailsProps & Dependenci
const validation = crd.getValidation();
return (
<div className="CRDDetails">
<div className="CustomResourceDefinitionDetails">
<DrawerItem name="Group">
{crd.getGroup()}
</DrawerItem>
@ -159,7 +159,7 @@ class NonInjectedCRDDetails extends React.Component<CRDDetailsProps & Dependenci
}
}
export const CRDDetails = withInjectables<Dependencies, CRDDetailsProps>(NonInjectedCRDDetails, {
export const CustomResourceDefinitionDetails = withInjectables<Dependencies, CustomResourceDefinitionDetailsProps>(NonInjectedCustomResourceDefinitionDetails, {
getProps: (di, props) => ({
...props,
logger: di.inject(loggerInjectionToken),

View File

@ -14,8 +14,8 @@ import navigateToCustomResourcesInjectable from "../../../common/front-end-routi
import { shouldShowResourceInjectionToken } from "../../../features/cluster/showing-kube-resources/common/allowed-resources-injection-token";
import routeIsActiveInjectable from "../../routes/route-is-active.injectable";
import routePathParametersInjectable from "../../routes/route-path-parameters.injectable";
import customResourcesSidebarItemInjectable from "./custom-resources-sidebar-item.injectable";
import customResourceDefinitionsInjectable from "./custom-resources.injectable";
import customResourcesSidebarItemInjectable from "../custom-resources/sidebar-item.injectable";
import customResourceDefinitionsInjectable from "./definitions.injectable";
const titleCaseSplitRegex = /(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])/;

View File

@ -6,7 +6,7 @@ import { getInjectable } from "@ogre-tools/injectable";
import { reaction } from "mobx";
import { injectableDifferencingRegistratorWith } from "../../../common/utils/registrator-helper";
import { beforeClusterFrameStartsSecondInjectionToken } from "../../before-frame-starts/tokens";
import customResourceDefinitionGroupsSidebarItemsComputedInjectable from "./custom-resource-definition-groups-sidebar-items-computed.injectable";
import customResourceDefinitionGroupsSidebarItemsComputedInjectable from "./groups-sidebar-items-computed.injectable";
const customResourceDefinitionGroupsSidebarItemsRegistratorInjectable = getInjectable({
id: "custom-resource-definition-groups-sidebar-items-registrator",

View File

@ -3,8 +3,8 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
// CRD conditions from here https://github.com/kubernetes/apiextensions-apiserver/blob/master/pkg/apis/apiextensions/types.go
$crd-condition-colors: (
// ref: https://github.com/kubernetes/apiextensions-apiserver/blob/master/pkg/apis/apiextensions/types.go
$custom-resource-definitions-condition-colors: (
Established: var(--colorSuccess),
NamesAccepted: var(--colorOk),
NonStructuralSchema: var(--colorError),
@ -12,8 +12,8 @@ $crd-condition-colors: (
KubernetesAPIApprovalPolicyConformant: var(--colorWarning)
);
@mixin crd-condition-bgc {
@each $status, $color in $crd-condition-colors {
@mixin custom-resource-definitions-condition-colors {
@each $status, $color in $custom-resource-definitions-condition-colors {
.#{$status} {
background: $color;
color: white;

View File

@ -0,0 +1,21 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import { routeSpecificComponentInjectionToken } from "../../routes/route-specific-component-injection-token";
import customResourceDefinitionsRouteInjectable from "../../../common/front-end-routing/routes/cluster/custom-resources/custom-resource-definitions.injectable";
import { CustomResourceDefinitions } from "./view";
const customResourceDefinitionsRouteComponentInjectable = getInjectable({
id: "custom-resource-definitions-route-component",
instantiate: (di) => ({
route: di.inject(customResourceDefinitionsRouteInjectable),
Component: CustomResourceDefinitions,
}),
injectionToken: routeSpecificComponentInjectionToken,
});
export default customResourceDefinitionsRouteComponentInjectable;

View File

@ -5,16 +5,18 @@
import { getInjectable } from "@ogre-tools/injectable";
import createPageParamInjectable from "../../navigation/create-page-param.injectable";
const crdGroupsUrlParamInjectable = getInjectable({
const selectedCustomResourceDefinitionGroupsUrlParamInjectable = getInjectable({
id: "crd-groups-url-param",
instantiate: (di) => {
const createPageParam = di.inject(createPageParamInjectable);
return createPageParam<string[]>({
return createPageParam({
name: "groups",
defaultValue: [],
defaultValue: new Set<string>(),
parse: (value: string[]) => new Set<string>(value),
stringify: (value) => Array.from(value),
});
},
});
export default crdGroupsUrlParamInjectable;
export default selectedCustomResourceDefinitionGroupsUrlParamInjectable;

View File

@ -7,7 +7,7 @@ import { getInjectable } from "@ogre-tools/injectable";
import customResourceDefinitionsRouteInjectable from "../../../common/front-end-routing/routes/cluster/custom-resources/custom-resource-definitions.injectable";
import navigateToCustomResourceDefinitionsInjectable from "../../../common/front-end-routing/routes/cluster/custom-resources/navigate-to-custom-resource-definitions.injectable";
import routeIsActiveInjectable from "../../routes/route-is-active.injectable";
import customResourcesSidebarItemInjectable from "./custom-resources-sidebar-item.injectable";
import customResourcesSidebarItemInjectable from "../custom-resources/sidebar-item.injectable";
const customResourceDefinitionsSidebarItemInjectable = getInjectable({
id: "sidebar-item-custom-resource-definitions",

View File

@ -9,7 +9,7 @@ import customResourceDefinitionApiInjectable from "../../../common/k8s-api/endpo
import { loggerInjectionToken } from "@k8slens/logger";
import clusterFrameContextForClusterScopedResourcesInjectable from "../../cluster-frame-context/for-cluster-scoped-resources.injectable";
import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable";
import { CustomResourceDefinitionStore } from "./definition.store";
import { CustomResourceDefinitionStore } from "./store";
const customResourceDefinitionStoreInjectable = getInjectable({
id: "custom-resource-definition-store",

View File

@ -3,9 +3,9 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
@import "crd.mixins";
@import "./mixins.scss";
.CrdList {
.CustomResourceDefinitions {
.TableCell {
&.kind {
flex: 1.5;

View File

@ -3,10 +3,10 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import "./crd-list.scss";
import "./view.scss";
import React from "react";
import { computed, makeObservable, observable } from "mobx";
import { computed, makeObservable } from "mobx";
import { observer } from "mobx-react";
import { Link } from "react-router-dom";
import { iter, stopPropagation } from "@k8slens/utilities";
@ -16,10 +16,10 @@ import { Icon } from "@k8slens/icon";
import { KubeObjectAge } from "../kube-object/age";
import { TabLayout } from "../layout/tab-layout-2";
import type { PageParam } from "../../navigation/page-param";
import type { CustomResourceDefinitionStore } from "./definition.store";
import type { CustomResourceDefinitionStore } from "./store";
import { withInjectables } from "@ogre-tools/injectable-react";
import crdGroupsUrlParamInjectable from "./crd-groups-url-param.injectable";
import customResourceDefinitionStoreInjectable from "./definition.store.injectable";
import selectedCustomResourceDefinitionGroupsUrlParamInjectable from "./selected-groups-url-param.injectable";
import customResourceDefinitionStoreInjectable from "./store.injectable";
enum columnId {
kind = "kind",
@ -30,53 +30,54 @@ enum columnId {
}
interface Dependencies {
crdGroupsUrlParam: PageParam<string[]>;
selectedGroups: PageParam<Set<string>>;
customResourceDefinitionStore: CustomResourceDefinitionStore;
}
@observer
class NonInjectedCustomResourceDefinitions extends React.Component<Dependencies> {
private readonly selectedGroups = observable.set(this.props.crdGroupsUrlParam.get());
constructor(props: Dependencies) {
super(props);
makeObservable(this);
}
@computed get items() {
if (this.selectedGroups.size) {
return this.props.customResourceDefinitionStore.items.filter(item => this.selectedGroups.has(item.getGroup()));
const selectedGroups = this.props.selectedGroups.get();
if (selectedGroups.size) {
return this.props.customResourceDefinitionStore.items.filter(item => selectedGroups.has(item.getGroup()));
}
return this.props.customResourceDefinitionStore.items; // show all by default
}
@computed get groupSelectOptions() {
const selectedGroups = this.props.selectedGroups.get();
return Object.keys(this.props.customResourceDefinitionStore.groups)
.map(group => ({
value: group,
label: group,
isSelected: this.selectedGroups.has(group),
isSelected: selectedGroups.has(group),
}));
}
toggleSelection = (options: readonly ({ value: string })[]) => {
const groups = options.map(({ value }) => value);
this.selectedGroups.replace(groups);
this.props.crdGroupsUrlParam.set(groups);
this.props.selectedGroups.setRaw(options.map(({ value }) => value));
};
private getPlaceholder() {
if (this.selectedGroups.size === 0) {
const selectedGroups = this.props.selectedGroups.get();
if (selectedGroups.size === 0) {
return "All groups";
}
const prefix = this.selectedGroups.size === 1
const prefix = selectedGroups.size === 1
? "Group"
: "Groups";
return `${prefix}: ${iter.join(this.selectedGroups.values(), ", ")}`;
return `${prefix}: ${iter.join(selectedGroups.values(), ", ")}`;
}
render() {
@ -85,7 +86,7 @@ class NonInjectedCustomResourceDefinitions extends React.Component<Dependencies>
<KubeObjectListLayout
isConfigurable
tableId="crd"
className="CrdList"
className="CustomResourceDefinitions"
store={this.props.customResourceDefinitionStore}
// Don't subscribe the `customResourceDefinitionStore` because <Sidebar> already has and is always mounted
subscribeStores={false}
@ -166,7 +167,7 @@ class NonInjectedCustomResourceDefinitions extends React.Component<Dependencies>
export const CustomResourceDefinitions = withInjectables<Dependencies>(NonInjectedCustomResourceDefinitions, {
getProps: (di, props) => ({
...props,
crdGroupsUrlParam: di.inject(crdGroupsUrlParamInjectable),
selectedGroups: di.inject(selectedCustomResourceDefinitionGroupsUrlParamInjectable),
customResourceDefinitionStore: di.inject(customResourceDefinitionStoreInjectable),
}),
});

View File

@ -3,7 +3,7 @@
exports[`<CustomResourceDetails /> with a CRD with a boolean field should display false in an additionalPrinterColumn as 'false' 1`] = `
<div>
<div
class="CrdResourceDetails MyCrd"
class="CustomResourceDetails MyCrd"
>
<div
class="DrawerItem"
@ -26,7 +26,7 @@ exports[`<CustomResourceDetails /> with a CRD with a boolean field should displa
exports[`<CustomResourceDetails /> with a CRD with a boolean field should display true in an additionalPrinterColumn as 'true' 1`] = `
<div>
<div
class="CrdResourceDetails MyCrd"
class="CustomResourceDetails MyCrd"
>
<div
class="DrawerItem"
@ -49,7 +49,7 @@ exports[`<CustomResourceDetails /> with a CRD with a boolean field should displa
exports[`<CustomResourceDetails /> with a CRD with a number field should display 0 in an additionalPrinterColumn as '0' 1`] = `
<div>
<div
class="CrdResourceDetails MyCrd"
class="CustomResourceDetails MyCrd"
>
<div
class="DrawerItem"
@ -72,7 +72,7 @@ exports[`<CustomResourceDetails /> with a CRD with a number field should display
exports[`<CustomResourceDetails /> with a CRD with a number field should display 1234 in an additionalPrinterColumn as '1234' 1`] = `
<div>
<div
class="CrdResourceDetails MyCrd"
class="CustomResourceDetails MyCrd"
>
<div
class="DrawerItem"

View File

@ -8,7 +8,7 @@ import { CustomResourceDefinition, KubeObject } from "@k8slens/kube-object";
import { getDiForUnitTesting } from "../../../getDiForUnitTesting";
import type { DiRender } from "../../test-utils/renderFor";
import { renderFor } from "../../test-utils/renderFor";
import { CustomResourceDetails } from "../crd-resource-details";
import { CustomResourceDetails } from "../details";
describe("<CustomResourceDetails />", () => {
let render: DiRender;

View File

@ -1,21 +0,0 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import { routeSpecificComponentInjectionToken } from "../../routes/route-specific-component-injection-token";
import crdListRouteInjectable from "../../../common/front-end-routing/routes/cluster/custom-resources/custom-resource-definitions.injectable";
import { CustomResourceDefinitions } from "./crd-list";
const crdListRouteComponentInjectable = getInjectable({
id: "crd-list-route-component",
instantiate: (di) => ({
route: di.inject(crdListRouteInjectable),
Component: CustomResourceDefinitions,
}),
injectionToken: routeSpecificComponentInjectionToken,
});
export default crdListRouteComponentInjectable;

View File

@ -3,7 +3,7 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
.CrdResourceDetails {
.CustomResourceDetails {
.status {
.ready {
color: white;

View File

@ -3,7 +3,7 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import "./crd-resource-details.scss";
import "./details.scss";
import React from "react";
import { observer } from "mobx-react";
@ -131,7 +131,7 @@ class NonInjectedCustomResourceDetails extends React.Component<CustomResourceDet
const extraColumns = crd.getPrinterColumns();
return (
<div className={cssNames("CrdResourceDetails", crd.getResourceKind())}>
<div className={cssNames("CustomResourceDetails", crd.getResourceKind())}>
{this.renderAdditionalColumns(object, extraColumns)}
{this.renderStatus(object, extraColumns)}
</div>

View File

@ -1,9 +0,0 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
export * from "./crd-list";
export * from "./crd-details";
export * from "./crd-resources";
export * from "./crd-resource-details";

View File

@ -3,7 +3,7 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import { CustomResources } from "./crd-resources";
import { CustomResources } from "./view";
import customResourcesRouteInjectable from "../../../common/front-end-routing/routes/cluster/custom-resources/custom-resources-route.injectable";
import { routeSpecificComponentInjectionToken } from "../../routes/route-specific-component-injection-token";

View File

@ -3,5 +3,5 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
.CrdResources {
.CustomResources {
}

View File

@ -3,7 +3,7 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import "./crd-resources.scss";
import "./view.scss";
import React from "react";
import { observer } from "mobx-react";
@ -14,11 +14,11 @@ import type { ApiManager } from "../../../common/k8s-api/api-manager";
import { formatJSONValue, safeJSONPathValue } from "@k8slens/utilities";
import { TabLayout } from "../layout/tab-layout-2";
import { withInjectables } from "@ogre-tools/injectable-react";
import customResourcesRouteParametersInjectable from "./custom-resources-route-parameters.injectable";
import customResourcesRouteParametersInjectable from "./route-parameters.injectable";
import { KubeObjectAge } from "../kube-object/age";
import type { CustomResourceDefinitionStore } from "./definition.store";
import type { CustomResourceDefinitionStore } from "../custom-resource-definitions/store";
import apiManagerInjectable from "../../../common/k8s-api/api-manager/manager.injectable";
import customResourceDefinitionStoreInjectable from "./definition.store.injectable";
import customResourceDefinitionStoreInjectable from "../custom-resource-definitions/store.injectable";
import { NamespaceSelectBadge } from "../namespaces/namespace-select-badge";
import type { TableCellProps } from "@k8slens/list-layout";
@ -67,7 +67,7 @@ class NonInjectedCustomResources extends React.Component<Dependencies> {
isConfigurable
key={`crd_resources_${crd.getResourceApiBase()}`}
tableId="crd_resources"
className="CrdResources"
className="CustomResources"
store={store}
sortingCallbacks={{
[columnId.name]: customResource => customResource.getName(),

View File

@ -5,8 +5,8 @@
import { getInjectable } from "@ogre-tools/injectable";
import { computed } from "mobx";
import React from "react";
import { CustomResourceDetails } from "../custom-resources";
import customResourceDefinitionStoreInjectable from "../custom-resources/definition.store.injectable";
import { CustomResourceDetails } from "../custom-resources/details";
import customResourceDefinitionStoreInjectable from "../custom-resource-definitions/store.injectable";
import currentKubeObjectInDetailsInjectable from "./current-kube-object-in-details.injectable";
import { kubeObjectDetailItemInjectionToken } from "./kube-object-detail-items/kube-object-detail-item-injection-token";

View File

@ -5,7 +5,7 @@
import { getInjectable } from "@ogre-tools/injectable";
import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token";
import { computed } from "mobx";
import { CRDDetails } from "../../../custom-resources";
import { CustomResourceDefinitionDetails } from "../../../custom-resource-definitions/details";
import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version";
import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable";
@ -16,7 +16,7 @@ const customResourceDefinitionsDetailItemInjectable = getInjectable({
const kubeObject = di.inject(currentKubeObjectInDetailsInjectable);
return {
Component: CRDDetails,
Component: CustomResourceDefinitionDetails,
enabled: computed(() => isCustomResourceDefinition(kubeObject.value.get()?.object)),
orderNumber: 10,
};

View File

@ -4,7 +4,7 @@
*/
import { waitUntilDefined } from "@k8slens/utilities";
import { getInjectable } from "@ogre-tools/injectable";
import customResourceDefinitionStoreInjectable from "../custom-resources/definition.store.injectable";
import customResourceDefinitionStoreInjectable from "../custom-resource-definitions/store.injectable";
import apiManagerInjectable from "../../../common/k8s-api/api-manager/manager.injectable";
import type { Namespace } from "@k8slens/kube-object";