diff --git a/package-lock.json b/package-lock.json index 22f4346f1..62c9b9ea6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6900,9 +6900,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001568", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001568.tgz", - "integrity": "sha512-vSUkH84HontZJ88MiNrOau1EBrCqEQYgkC5gIySiDlpsm8sGVrhU7Kx4V6h0tnqaHzIHZv08HlJIwPbL4XL9+A==", + "version": "1.0.30001632", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001632.tgz", + "integrity": "sha512-udx3o7yHJfUxMLkGohMlVHCvFvWmirKh9JAH/d7WOLPetlH+LTL5cocMZ0t7oZx/mdlOWXti97xLZWc8uURRHg==", "dev": true, "funding": [ { diff --git a/src/components/content/catalog/services/details/ServiceDetail.tsx b/src/components/content/catalog/services/details/ServiceDetail.tsx index cebc4b5ed..1b94f6fb1 100644 --- a/src/components/content/catalog/services/details/ServiceDetail.tsx +++ b/src/components/content/catalog/services/details/ServiceDetail.tsx @@ -48,16 +48,16 @@ function ServiceDetail({ serviceDetails }: { serviceDetails: ServiceTemplateDeta {serviceDetails.serviceTemplateId} - - {serviceDetails.description} - {serviceDetails.category} {serviceDetails.version} - {serviceDetails.createTime} - {serviceDetails.lastModifiedTime} {serviceDetails.namespace} + + {serviceDetails.description} + + {serviceDetails.createTime} + {serviceDetails.lastModifiedTime} diff --git a/src/components/content/common/ocl/DisplayOclData.tsx b/src/components/content/common/ocl/DisplayOclData.tsx index 30f114179..0bf0666a6 100644 --- a/src/components/content/common/ocl/DisplayOclData.tsx +++ b/src/components/content/common/ocl/DisplayOclData.tsx @@ -99,17 +99,18 @@ function DisplayOclData({ ocl }: { ocl: Ocl }): React.JSX.Element | string { {ocl.namespace} - - - + {ocl.description} + + {ocl.deployment.credentialType ? ocl.deployment.credentialType.valueOf() : ''} + - - {ocl.deployment.credentialType ? ocl.deployment.credentialType : ''} + + - {ocl.description} {ocl.eula ? : Not Provided} diff --git a/src/components/content/common/ocl/FlavorsText.tsx b/src/components/content/common/ocl/FlavorsText.tsx index 3f3fcdf58..ec10d20a4 100644 --- a/src/components/content/common/ocl/FlavorsText.tsx +++ b/src/components/content/common/ocl/FlavorsText.tsx @@ -13,18 +13,29 @@ export function FlavorsText({ flavors }: { flavors: ServiceFlavor[] }): React.JS // These warnings must be suppressed because the Ocl object here is created from the import file and the data not necessarily contains all the mandatory fields. // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (flavors) { - const yamlDocument = new YAML.Document(); - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - yamlDocument.contents = flavors; - return ( - {yamlDocument.toString()}} title={'Flavors'} trigger='hover'> - - - ); + const flavorPops: React.JSX.Element[] = flavors.map((flavor, index) => { + const yamlDocument = new YAML.Document(); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-expect-error + yamlDocument.contents = flavor; + return ( +
  • + {yamlDocument.toString()} + } + title='Flavor Details' + trigger='hover' + > + + +
  • + ); + }); + + return ; } return <>; } diff --git a/src/components/content/home/common/DashBoardError.tsx b/src/components/content/home/common/DashBoardError.tsx index aa5ede62f..4c17cfd2e 100644 --- a/src/components/content/home/common/DashBoardError.tsx +++ b/src/components/content/home/common/DashBoardError.tsx @@ -3,13 +3,19 @@ * SPDX-FileCopyrightText: Huawei Inc. */ -import { Alert, Card } from 'antd'; +import { Alert, Button, Card } from 'antd'; import React from 'react'; import errorAlertStyles from '../../../../styles/error-alert.module.css'; import { ApiError, Response } from '../../../../xpanse-api/generated'; import { convertStringArrayToUnorderedList } from '../../../utils/generateUnorderedList'; -export default function DashBoardError({ error }: { error: unknown }): React.JSX.Element { +export default function DashBoardError({ + error, + retryRequest, +}: { + error: unknown; + retryRequest: () => void; +}): React.JSX.Element { if (error instanceof ApiError && error.body && 'details' in error.body) { const response: Response = error.body as Response; return ( @@ -20,6 +26,17 @@ export default function DashBoardError({ error }: { error: unknown }): React.JSX type={'error'} closable={false} className={errorAlertStyles.errorFailureAlert} + action={ + + } /> ); @@ -32,6 +49,17 @@ export default function DashBoardError({ error }: { error: unknown }): React.JSX type={'error'} closable={false} className={errorAlertStyles.errorFailureAlert} + action={ + + } /> ); diff --git a/src/components/content/home/isv/IsvServicesDashBoard.tsx b/src/components/content/home/isv/IsvServicesDashBoard.tsx index ffe1a8de7..c154f4b10 100644 --- a/src/components/content/home/isv/IsvServicesDashBoard.tsx +++ b/src/components/content/home/isv/IsvServicesDashBoard.tsx @@ -24,6 +24,12 @@ export function IsvServicesDashBoard(): React.JSX.Element { let registeredServicesCount: number = 0; const navigate = useNavigate(); + const retryRequest = () => { + if (listDeployedServicesByIsvQuery.isError) { + void listDeployedServicesByIsvQuery.refetch(); + } + }; + if (listDeployedServicesByIsvQuery.data !== undefined && listDeployedServicesByIsvQuery.data.length > 0) { listDeployedServicesByIsvQuery.data.forEach((serviceItem: DeployedService) => { if ( @@ -56,7 +62,7 @@ export function IsvServicesDashBoard(): React.JSX.Element { ? listDeployedServicesByIsvQuery.error : listRegisteredServicesByIsvQuery.error; - return ; + return ; } if ( diff --git a/src/components/content/home/user/EndUserServicesDashboard.tsx b/src/components/content/home/user/EndUserServicesDashboard.tsx index 0b9a89e8f..761ed08d8 100644 --- a/src/components/content/home/user/EndUserServicesDashboard.tsx +++ b/src/components/content/home/user/EndUserServicesDashboard.tsx @@ -22,8 +22,14 @@ export function EndUserServicesDashboard(): React.JSX.Element { let successfulDestroysCount: number = 0; let failedDestroysCount: number = 0; + const retryRequest = () => { + if (listDeployedServicesQuery.isError) { + void listDeployedServicesQuery.refetch(); + } + }; + if (listDeployedServicesQuery.isError) { - return ; + return ; } if (listDeployedServicesQuery.isPending || listDeployedServicesQuery.isFetching) { diff --git a/src/components/content/review/ServiceReviews.tsx b/src/components/content/review/ServiceReviews.tsx index 9853c0e04..6e241d497 100644 --- a/src/components/content/review/ServiceReviews.tsx +++ b/src/components/content/review/ServiceReviews.tsx @@ -312,7 +312,7 @@ export default function ServiceReviews(): React.JSX.Element { {currentServiceTemplateVo ? ( {currentServiceTemplateVo.namespace}
    - - + + {currentServiceTemplateVo.description} + + + {currentServiceTemplateVo.deployment.credentialType + ? currentServiceTemplateVo.deployment.credentialType + : ''} + + + - - {currentServiceTemplateVo.deployment.credentialType - ? currentServiceTemplateVo.deployment.credentialType - : ''} - - - {currentServiceTemplateVo.description} - {currentServiceTemplateVo.eula ? ( diff --git a/src/styles/ocl-display.module.css b/src/styles/ocl-display.module.css index 1814af507..d05479951 100644 --- a/src/styles/ocl-display.module.css +++ b/src/styles/ocl-display.module.css @@ -19,6 +19,7 @@ margin-top: 10px; overflow-x: auto; } + .ocl-data-display-service-review-name { width: 400px; margin-top: 15px; @@ -28,6 +29,7 @@ width: 800px; margin-top: 15px; } + .ocl-data-display-default-billing-mode { font-size: 10px; display: flex; @@ -37,6 +39,7 @@ margin-top: -12px; transform: translateX(-20%); } + .ocl-data-display-default-billing-mode-tag { margin-top: 8px; width: 80px; @@ -73,3 +76,8 @@ overflow: auto; max-width: 50vh; } + +.ocl-flavors-item-content { + max-height: 200px; + overflow: auto; +}