Use translation
Signed-off-by: Dominika Zemanovicova <dzemanov@redhat.com>
This commit is contained in:
@@ -10,9 +10,7 @@
|
||||
]
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"main": "dist/index.esm.js",
|
||||
"types": "dist/index.d.ts"
|
||||
"access": "public"
|
||||
},
|
||||
"keywords": [
|
||||
"backstage",
|
||||
@@ -26,8 +24,23 @@
|
||||
},
|
||||
"license": "Apache-2.0",
|
||||
"sideEffects": false,
|
||||
"exports": {
|
||||
".": "./src/index.ts",
|
||||
"./alpha": "./src/alpha.ts",
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"typesVersions": {
|
||||
"*": {
|
||||
"alpha": [
|
||||
"src/alpha.ts"
|
||||
],
|
||||
"package.json": [
|
||||
"package.json"
|
||||
]
|
||||
}
|
||||
},
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
## API Report File for "@backstage/plugin-kubernetes-cluster"
|
||||
|
||||
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
|
||||
|
||||
```ts
|
||||
import { TranslationRef } from '@backstage/core-plugin-api/alpha';
|
||||
|
||||
// @alpha (undocumented)
|
||||
export const kubernetesClusterTranslationRef: TranslationRef<
|
||||
'kubernetes-cluster',
|
||||
{
|
||||
readonly 'kubernetesClusterContentPage.permissionAlert.message': "To view Kubernetes objects, contact your portal administrator to give you the 'kubernetes.clusters.read' permission.";
|
||||
readonly 'kubernetesClusterContentPage.permissionAlert.title': 'Permission required';
|
||||
}
|
||||
>;
|
||||
|
||||
// (No @packageDocumentation comment for this package)
|
||||
```
|
||||
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
* Copyright 2025 The Backstage Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
export { kubernetesClusterTranslationRef } from './translation';
|
||||
+6
-3
@@ -26,6 +26,8 @@ import {
|
||||
import { WarningPanel } from '@backstage/core-components';
|
||||
import { kubernetesClustersReadPermission } from '@backstage/plugin-kubernetes-common';
|
||||
import { RequirePermission } from '@backstage/plugin-permission-react';
|
||||
import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
|
||||
import { kubernetesClusterTranslationRef } from '../../translation';
|
||||
|
||||
const ContentGrid = () => {
|
||||
const { error } = useKubernetesClusterError();
|
||||
@@ -59,14 +61,15 @@ const ContentGrid = () => {
|
||||
* @public
|
||||
*/
|
||||
export const KubernetesClusterContent = () => {
|
||||
const { t } = useTranslationRef(kubernetesClusterTranslationRef);
|
||||
|
||||
return (
|
||||
<RequirePermission
|
||||
permission={kubernetesClustersReadPermission}
|
||||
errorPage={
|
||||
<WarningPanel
|
||||
title="Permission required"
|
||||
message={`To view Kubernetes objects, contact your portal administrator to give you the
|
||||
'${kubernetesClustersReadPermission.name}' permission.`}
|
||||
title={t('kubernetesClusterContentPage.permissionAlert.title')}
|
||||
message={t('kubernetesClusterContentPage.permissionAlert.message')}
|
||||
/>
|
||||
}
|
||||
>
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Copyright 2025 The Backstage Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { createTranslationRef } from '@backstage/core-plugin-api/alpha';
|
||||
|
||||
/** @alpha */
|
||||
export const kubernetesClusterTranslationRef = createTranslationRef({
|
||||
id: 'kubernetes-cluster',
|
||||
messages: {
|
||||
kubernetesClusterContentPage: {
|
||||
permissionAlert: {
|
||||
title: 'Permission required',
|
||||
message:
|
||||
"To view Kubernetes objects, contact your portal administrator to give you the 'kubernetes.clusters.read' permission.",
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
@@ -13,6 +13,7 @@ import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
|
||||
import { FrontendPlugin } from '@backstage/frontend-plugin-api';
|
||||
import { JSX as JSX_2 } from 'react';
|
||||
import { RouteRef } from '@backstage/frontend-plugin-api';
|
||||
import { TranslationRef } from '@backstage/core-plugin-api/alpha';
|
||||
|
||||
// @public (undocumented)
|
||||
const _default: FrontendPlugin<
|
||||
@@ -47,21 +48,6 @@ const _default: FrontendPlugin<
|
||||
routeRef?: RouteRef<AnyRouteRefParams> | undefined;
|
||||
};
|
||||
}>;
|
||||
'api:kubernetes': ExtensionDefinition<{
|
||||
kind: 'api';
|
||||
name: undefined;
|
||||
config: {};
|
||||
configInput: {};
|
||||
output: ConfigurableExtensionDataRef<
|
||||
AnyApiFactory,
|
||||
'core.api.factory',
|
||||
{}
|
||||
>;
|
||||
inputs: {};
|
||||
params: {
|
||||
factory: AnyApiFactory;
|
||||
};
|
||||
}>;
|
||||
'entity-content:kubernetes/kubernetes': ExtensionDefinition<{
|
||||
kind: 'entity-content';
|
||||
name: 'kubernetes';
|
||||
@@ -113,6 +99,21 @@ const _default: FrontendPlugin<
|
||||
filter?: string | ((entity: Entity) => boolean) | undefined;
|
||||
};
|
||||
}>;
|
||||
'api:kubernetes': ExtensionDefinition<{
|
||||
kind: 'api';
|
||||
name: undefined;
|
||||
config: {};
|
||||
configInput: {};
|
||||
output: ConfigurableExtensionDataRef<
|
||||
AnyApiFactory,
|
||||
'core.api.factory',
|
||||
{}
|
||||
>;
|
||||
inputs: {};
|
||||
params: {
|
||||
factory: AnyApiFactory;
|
||||
};
|
||||
}>;
|
||||
'api:kubernetes/proxy': ExtensionDefinition<{
|
||||
kind: 'api';
|
||||
name: 'proxy';
|
||||
@@ -162,5 +163,14 @@ const _default: FrontendPlugin<
|
||||
>;
|
||||
export default _default;
|
||||
|
||||
// @alpha (undocumented)
|
||||
export const kubernetesTranslationRef: TranslationRef<
|
||||
'kubernetes',
|
||||
{
|
||||
readonly 'kubernetesContentPage.permissionAlert.message': "To view Kubernetes objects, contact your portal administrator to give you the 'kubernetes.clusters.read' and 'kubernetes.resources.read' permission.";
|
||||
readonly 'kubernetesContentPage.permissionAlert.title': 'Permission required';
|
||||
}
|
||||
>;
|
||||
|
||||
// (No @packageDocumentation comment for this package)
|
||||
```
|
||||
|
||||
@@ -20,6 +20,8 @@ import {
|
||||
} from '@backstage/plugin-kubernetes-common';
|
||||
import { usePermission } from '@backstage/plugin-permission-react';
|
||||
import { WarningPanel } from '@backstage/core-components';
|
||||
import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
|
||||
import { kubernetesTranslationRef } from './alpha/translation';
|
||||
|
||||
export type RequireKubernetesPermissionProps = {
|
||||
children: ReactNode;
|
||||
@@ -34,6 +36,7 @@ export function RequireKubernetesPermissions(
|
||||
const kubernetesResourcesPermissionResult = usePermission({
|
||||
permission: kubernetesResourcesReadPermission,
|
||||
});
|
||||
const { t } = useTranslationRef(kubernetesTranslationRef);
|
||||
|
||||
if (
|
||||
kubernetesClustersPermissionResult.loading ||
|
||||
@@ -51,9 +54,8 @@ export function RequireKubernetesPermissions(
|
||||
|
||||
return (
|
||||
<WarningPanel
|
||||
title="Permission required"
|
||||
message={`To view Kubernetes objects, contact your portal administrator to give you the
|
||||
'${kubernetesClustersReadPermission.name}' and '${kubernetesResourcesReadPermission.name}' permission.`}
|
||||
title={t('kubernetesContentPage.permissionAlert.title')}
|
||||
message={t('kubernetesContentPage.permissionAlert.message')}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -13,5 +13,5 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
export { kubernetesTranslationRef } from './translation';
|
||||
export { default } from './plugin';
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Copyright 2025 The Backstage Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { createTranslationRef } from '@backstage/core-plugin-api/alpha';
|
||||
|
||||
/** @alpha */
|
||||
export const kubernetesTranslationRef = createTranslationRef({
|
||||
id: 'kubernetes',
|
||||
messages: {
|
||||
kubernetesContentPage: {
|
||||
permissionAlert: {
|
||||
title: 'Permission required',
|
||||
message:
|
||||
"To view Kubernetes objects, contact your portal administrator to give you the 'kubernetes.clusters.read' and 'kubernetes.resources.read' permission.",
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user