From f876ecc4cf1e64fac0449ce5b9f3221042678123 Mon Sep 17 00:00:00 2001 From: nidhigarg-bmw <101316912+nidhigarg-bmw@users.noreply.github.com> Date: Thu, 3 Aug 2023 15:06:30 +0530 Subject: [PATCH 1/7] fix(admin credential): role change (#180) --- src/types/Config.tsx | 2 +- src/types/Constants.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/types/Config.tsx b/src/types/Config.tsx index 8f3b2dd3f..87fdaa9b2 100644 --- a/src/types/Config.tsx +++ b/src/types/Config.tsx @@ -486,7 +486,7 @@ export const ALL_PAGES: IPage[] = [ { name: PAGES.DATA_SPACE, element: }, { name: PAGES.ADMIN_CREDENTIAL, - role: ROLES.ADMIN_CREDENTIAL_DECISION, + role: ROLES.DECISION_SSICREDENTIAL, element: , }, ] diff --git a/src/types/Constants.ts b/src/types/Constants.ts index 43bb5ad4c..684e4ab75 100644 --- a/src/types/Constants.ts +++ b/src/types/Constants.ts @@ -207,7 +207,7 @@ export enum ROLES { UPDATE_COMPANY_ROLE = 'update_company_role', SUBMITTED_APPLICATION = 'view_submitted_applications', REQUEST_SSICREDENTIAL = 'request_ssicredential', - ADMIN_CREDENTIAL_DECISION = 'admin_credential_decision', + DECISION_SSICREDENTIAL = 'decision_ssicredential', } export enum HINTS { From 666a0d63ed0f246b597847666a15faa62415e87f Mon Sep 17 00:00:00 2001 From: nidhigarg-bmw <101316912+nidhigarg-bmw@users.noreply.github.com> Date: Thu, 3 Aug 2023 15:07:40 +0530 Subject: [PATCH 2/7] fix(certificate): error message (#172) --- src/assets/locales/de/main.json | 2 +- src/assets/locales/en/main.json | 2 +- src/components/overlays/UpdateCertificate/index.tsx | 9 +++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/assets/locales/de/main.json b/src/assets/locales/de/main.json index 499c53b43..b7b46ee6c 100644 --- a/src/assets/locales/de/main.json +++ b/src/assets/locales/de/main.json @@ -1536,7 +1536,7 @@ "uploadDocumentTitle": "Please upload your certificate proof:", "note": "Please upload only pdf files with maximum 1 MB.", "descriptionLabel": "Description for verification", - "error": "Something went wrong!", + "error": "Something went wrong. ", "success": "Certificate uploaded successfully." }, "successCertificate": { diff --git a/src/assets/locales/en/main.json b/src/assets/locales/en/main.json index 1b0c8745f..0c4b3a0d1 100644 --- a/src/assets/locales/en/main.json +++ b/src/assets/locales/en/main.json @@ -1475,7 +1475,7 @@ "uploadDocumentTitle": "Please upload your certificate proof:", "note": "Please upload only pdf files with maximum 1 MB.", "descriptionLabel": "Description for verification", - "error": "Something went wrong!", + "error": "Something went wrong. ", "success": "Certificate uploaded successfully." }, "successCertificate": { diff --git a/src/components/overlays/UpdateCertificate/index.tsx b/src/components/overlays/UpdateCertificate/index.tsx index dcd427df3..37d048479 100644 --- a/src/components/overlays/UpdateCertificate/index.tsx +++ b/src/components/overlays/UpdateCertificate/index.tsx @@ -66,9 +66,14 @@ export default function UpdateCertificate({ id }: { id: string }) { await addCertificate(data).unwrap() setSubmitClicked(true) } - } catch (err) { + } catch (err: unknown) { setLoading(false) - error(t('content.certificates.updateCertificate.error'), '', '') + error( + t('content.certificates.updateCertificate.error') + + err.data.errors.unknown[0], + '', + '' + ) } } From 14edcde96838c8fef6fc4bc56b77c17f852f7ed4 Mon Sep 17 00:00:00 2001 From: Manojava Koushik <111366021+manojava-gk@users.noreply.github.com> Date: Thu, 3 Aug 2023 15:09:14 +0530 Subject: [PATCH 3/7] updates(notification): add credential approval, credential reject and subscription url msgs (#175) --- src/assets/locales/de/notification.json | 12 ++++++++++++ src/assets/locales/en/notification.json | 12 ++++++++++++ .../pages/NotificationCenter/NotificationItem.tsx | 13 ++++++++++++- src/features/notification/types.ts | 5 +++++ 4 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/assets/locales/de/notification.json b/src/assets/locales/de/notification.json index 16e6df352..54d394c62 100644 --- a/src/assets/locales/de/notification.json +++ b/src/assets/locales/de/notification.json @@ -87,6 +87,18 @@ "title": "Assigned User Roles Updated - {{app}}", "content": "Hallo {{username}}, \n\nIhre App-Benutzerrollen wurden von Ihrem Unternehmensadministrator aktualisiert. Mit dem Wechsel der Rolle ändern sich Ihre Zugriffsrechte. Weitere Einzelheiten zu den Rollenänderungen finden sie anbei. \n\nHinzugefügte Rollen: {{addedRoles}} \n\nEntfernte Rollen: {{removedRoles}}" }, + "CREDENTIAL_APPROVAL": { + "title": "Verified Credential {{credentialType}} angelegt", + "content": "Verified Credential {{credentialType}} wurde ihrem Company Wallet hinzugefügt." + }, + "CREDENTIAL_REJECTED": { + "title": "Verified Credential {{credentialType}} abgelehnt", + "content": "Verified Credential {{credentialType}} wurde abgelehnt. Sie können jederzeit die Anfrage wiederholen." + }, + "SUBSCRIPTION_URL_UPDATE": { + "title": "App URL {{app}} updated", + "content": "Der App Provider hat die hinterlegte App Instance URL für ihre abonnierte App {{app}} geändert.\n\nNeue URL: {{newUrl}}" + }, "link": { "appmarketplace": "Zum App Marketplace", "technicalsetup": "Zur Connector Registrierung", diff --git a/src/assets/locales/en/notification.json b/src/assets/locales/en/notification.json index 6313e9791..49be33227 100644 --- a/src/assets/locales/en/notification.json +++ b/src/assets/locales/en/notification.json @@ -83,6 +83,18 @@ "title": "Assigned User Roles Updated - {{app}}", "content": "Hallo {{username}}, \n\nyour app user roles got updated by your company administrator. With the change of the role assignment your access rights have changed. You can find all details regarding the role change below. \n\nNew Roles: {{addedRoles}} \n\nRemoved Roles: {{removedRoles}}" }, + "CREDENTIAL_APPROVAL": { + "title": "Verified Credential {{credentialType}} assigned", + "content": "Verified Credential {{credentialType}} got assigned to your company wallet." + }, + "CREDENTIAL_REJECTED": { + "title": "Verified Credential {{credentialType}} declined", + "content": "Verified Credential {{credentialType}} got declined. You can start a new request immediately." + }, + "SUBSCRIPTION_URL_UPDATE": { + "title": "App URL {{app}} updated", + "content": "The app provider has changed the stored App Instance URL for your subscribed app {{app}}.\n\nNew URL: {{newUrl}}" + }, "link": { "appmarketplace": "Go to app marketplace", "technicalsetup": "Go to connector configuration", diff --git a/src/components/pages/NotificationCenter/NotificationItem.tsx b/src/components/pages/NotificationCenter/NotificationItem.tsx index 41f8dfdee..31a7ca56f 100644 --- a/src/components/pages/NotificationCenter/NotificationItem.tsx +++ b/src/components/pages/NotificationCenter/NotificationItem.tsx @@ -81,13 +81,15 @@ const NotificationContent = ({ const userId = item.contentParsed?.userId const appId = item.contentParsed?.appId const you = UserService.getName() - const appName = item.contentParsed?.AppName + const appName = item.contentParsed?.AppName ?? item.contentParsed?.appName const companyName = item.contentParsed?.RequestorCompanyName const offerName = item.contentParsed?.OfferName const userName = item.contentParsed?.username const coreOfferName = item.contentParsed?.coreOfferName const removedRoles = item.contentParsed?.removedRoles const addedRoles = item.contentParsed?.addedRoles + const credentialType = item.contentParsed?.type + const newUrl = item.contentParsed?.newUrl return ( <> @@ -104,6 +106,8 @@ const NotificationContent = ({ coreOfferName: coreOfferName, removedRoles: removedRoles ? removedRoles : '-', addedRoles: addedRoles ? addedRoles : '-', + credentialType: credentialType, + newUrl: newUrl, }} > { return case NotificationType.ROLE_UPDATE_CORE_OFFER: return + case NotificationType.CREDENTIAL_APPROVAL: + return + case NotificationType.CREDENTIAL_REJECTED: + return + case NotificationType.SUBSCRIPTION_URL_UPDATE: + return default: return
{JSON.stringify(item, null, 2)}
} @@ -317,6 +327,7 @@ export default function NotificationItem({ {t(`${item.typeId}.title`, { app: item.contentParsed?.AppName ?? item.contentParsed?.appName, offer: item.contentParsed?.OfferName, + credentialType: item.contentParsed?.type, })} {open && ( diff --git a/src/features/notification/types.ts b/src/features/notification/types.ts index 2eb5155e5..398e86aaa 100644 --- a/src/features/notification/types.ts +++ b/src/features/notification/types.ts @@ -96,6 +96,9 @@ export enum NotificationType { SERVICE_RELEASE_REQUEST = 'SERVICE_RELEASE_REQUEST', ROLE_UPDATE_APP_OFFER = 'ROLE_UPDATE_APP_OFFER', ROLE_UPDATE_CORE_OFFER = 'ROLE_UPDATE_CORE_OFFER', + CREDENTIAL_REJECTED = 'CREDENTIAL_REJECTED', + CREDENTIAL_APPROVAL = 'CREDENTIAL_APPROVAL', + SUBSCRIPTION_URL_UPDATE = 'SUBSCRIPTION_URL_UPDATE', } export interface NotificationContent { @@ -110,6 +113,8 @@ export interface NotificationContent { appName?: string removedRoles?: string addedRoles?: string + type?: string | number + newUrl?: string } export interface CXNotificationContent { From ce4aa7d12aab778a55a87c6e30ed125ec2b7a513 Mon Sep 17 00:00:00 2001 From: lavanya-bmw <106523828+lavanya-bmw@users.noreply.github.com> Date: Thu, 3 Aug 2023 15:28:05 +0530 Subject: [PATCH 4/7] fix(description): fixed page break issue when api response don't have value for each language (#184) --- src/components/pages/AppOverview/ChangeDescription.tsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/pages/AppOverview/ChangeDescription.tsx b/src/components/pages/AppOverview/ChangeDescription.tsx index f7f284180..1e968c070 100644 --- a/src/components/pages/AppOverview/ChangeDescription.tsx +++ b/src/components/pages/AppOverview/ChangeDescription.tsx @@ -55,10 +55,10 @@ export default function ChangeDescription() { const defaultValues = useMemo(() => { return { - longDescriptionEN: description?.[0].longDescription ?? '', - longDescriptionDE: description?.[1].longDescription ?? '', - shortDescriptionEN: description?.[0].shortDescription ?? '', - shortDescriptionDE: description?.[1].shortDescription ?? '', + longDescriptionEN: description?.[0]?.longDescription ?? '', + longDescriptionDE: description?.[1]?.longDescription ?? '', + shortDescriptionEN: description?.[0]?.shortDescription ?? '', + shortDescriptionDE: description?.[1]?.shortDescription ?? '', } }, [description]) @@ -247,7 +247,7 @@ export default function ChangeDescription() {
{['shortDescriptionEN', 'shortDescriptionDE'].map( - (item: string, i) => ( + (item: string) => (
Date: Thu, 3 Aug 2023 16:11:09 +0530 Subject: [PATCH 5/7] update(app and service release): updated color for asterik (#185) --- src/assets/locales/de/main.json | 4 +- src/assets/locales/de/servicerelease.json | 12 ++--- src/assets/locales/en/main.json | 6 +-- src/assets/locales/en/servicerelease.json | 12 ++--- .../ReleaseProcess/AppMarketCard/index.tsx | 44 ++++++++++++++----- .../basic/ReleaseProcess/AppPage/index.tsx | 9 ++-- .../ContractAndConsent/index.tsx | 6 ++- .../basic/ReleaseProcess/OfferCard/index.tsx | 15 ++++++- .../basic/ReleaseProcess/OfferPage/index.tsx | 1 + .../TechnicalIntegration/index.tsx | 10 ++++- .../components/CommonContractAndConsent.tsx | 4 +- 11 files changed, 85 insertions(+), 38 deletions(-) diff --git a/src/assets/locales/de/main.json b/src/assets/locales/de/main.json index b7b46ee6c..26c2bc69c 100644 --- a/src/assets/locales/de/main.json +++ b/src/assets/locales/de/main.json @@ -1003,14 +1003,14 @@ "technicalIntegration": { "headerTitle": "Technical Integration", "headerDescription": "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard .Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard .", - "step1Header": "1. User Role Upload *", + "step1Header": "1. User Role Upload", "step1HeaderDescription": "[copy] Lorem ipsum sapientem ne neque dolor erat,eros solet invidunt duo Quisque aliquid leo. Pretium patrioque sociis eu nihil Cum enim ad, ipsum alii vidisse justo id. Option porttitor diam voluptua. Cu Eam augue dolor dolores quis,", "clientID": "Client ID", "URL": "URL", "pleaseEnterValidURL": "Please enter a valid URL", "URLPlaceholder": "http://www.loremipsum.de", "clientCreated": "Client created", - "step2Header": "2. Technical User Setup *", + "step2Header": "2. Technical User Setup", "step2HeaderDescription": "[copy] Lorem ipsum sapientem ne neque dolor erat,eros solet invidunt duo Quisque aliquid leo. Pretium patrioque sociis eu nihil Cum enim ad, ipsum alii vidisse justo id. Option porttitor diam voluptua. Cu Eam augue dolor dolores quis,", "uploadRolesDescription": "Upload all app roles by using the available upload template (csv) file added attached", "rolesPreview": "Preview of Roles uploaded", diff --git a/src/assets/locales/de/servicerelease.json b/src/assets/locales/de/servicerelease.json index ec1eeaebe..bca4d6a03 100644 --- a/src/assets/locales/de/servicerelease.json +++ b/src/assets/locales/de/servicerelease.json @@ -26,18 +26,18 @@ "step1": { "headerTitle": "Service Card Erstellen", "headerDescription": "Die folgenden Eingabefelder und Uploads werden verwendet, um Ihre Service-'Service Card' zu erstellen, die auf dem Marktplatz platziert wird. Die Servicekarte ist der erste Berührungspunkt mit dem Kunden.", - "serviceName": "Service Name*", - "serviceType": "Service Type*", + "serviceName": "Service Name", + "serviceType": "Service Type", "serviceTypePlaceholder": "Wählen Sie den Servicetyp aus", - "shortDescriptionEN": "Kurzbeschreibung (en)*", - "shortDescriptionDE": "Kurzbeschreibung (de)*", + "shortDescriptionEN": "Kurzbeschreibung (en)", + "shortDescriptionDE": "Kurzbeschreibung (de)", "serviceLeadImageUpload": "Service Card Bild" }, "step2": { "headerTitle": "Service Details", "headerDescription": "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard .Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard .", - "longDescriptionEN": "Service Beschreibung (en)*", - "longDescriptionDE": "Service Beschreibung (de)*", + "longDescriptionEN": "Service Beschreibung (en)", + "longDescriptionDE": "Service Beschreibung (de)", "doc": "Supporting Material", "note": "Info:", "providerDetails": "Provider Details", diff --git a/src/assets/locales/en/main.json b/src/assets/locales/en/main.json index 0c4b3a0d1..c0449df2f 100644 --- a/src/assets/locales/en/main.json +++ b/src/assets/locales/en/main.json @@ -928,7 +928,7 @@ "salesManager": "Sales Manager", "salesManagerPlaceholder": "Please select a Sales Manager", "salesManagerDescription": "Please select the app sales manager via the dropdown below. The sales manager can only get set if a user of your company has the respective portal role. The sales manager will get informed as soon as a app subscribtion request is triggered by the customer.", - "pricingInformation": "Pricing Information (e.g. free / charged ( to be defined)", + "pricingInformation": "Pricing Information (e.g. free / charged (to be defined))", "appLeadImageUpload": "App Lead Image Upload" }, "appPage": { @@ -965,14 +965,14 @@ "technicalIntegration": { "headerTitle": "Technical Integration", "headerDescription": "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard .Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard .", - "step1Header": "1. User Role Upload *", + "step1Header": "1. User Role Upload", "step1HeaderDescription": "[copy] Lorem ipsum sapientem ne neque dolor erat,eros solet invidunt duo Quisque aliquid leo. Pretium patrioque sociis eu nihil Cum enim ad, ipsum alii vidisse justo id. Option porttitor diam voluptua. Cu Eam augue dolor dolores quis,", "clientID": "Client ID", "URL": "URL", "pleaseEnterValidURL": "Please enter a valid URL", "URLPlaceholder": "http://www.loremipsum.de", "clientCreated": "Client created", - "step2Header": "2. Technical User Setup *", + "step2Header": "2. Technical User Setup", "step2HeaderDescription": "[copy] Lorem ipsum sapientem ne neque dolor erat,eros solet invidunt duo Quisque aliquid leo. Pretium patrioque sociis eu nihil Cum enim ad, ipsum alii vidisse justo id. Option porttitor diam voluptua. Cu Eam augue dolor dolores quis,", "uploadRolesDescription": "Upload all app roles by using the available upload template (csv) file added attached", "rolesPreview": "Preview of Roles uploaded", diff --git a/src/assets/locales/en/servicerelease.json b/src/assets/locales/en/servicerelease.json index 6d0562dac..02ff0548f 100644 --- a/src/assets/locales/en/servicerelease.json +++ b/src/assets/locales/en/servicerelease.json @@ -26,18 +26,18 @@ "step1": { "headerTitle": "Create Service", "headerDescription": "The following input fields and uploads are used to create your service 'Service Card' which will be placed inside the marketplace. The service card is the first touchpoint with the customer.", - "serviceName": "Service Name*", - "serviceType": "Service Type*", + "serviceName": "Service Name", + "serviceType": "Service Type", "serviceTypePlaceholder": "Select a Service Type Id", - "shortDescriptionEN": "Short Description (en)*", - "shortDescriptionDE": "Short Description (de)*", + "shortDescriptionEN": "Short Description (en)", + "shortDescriptionDE": "Short Description (de)", "serviceLeadImageUpload": "Service Card Image" }, "step2": { "headerTitle": "Service Details", "headerDescription": "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard .Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard .", - "longDescriptionEN": "Long Description (en)*", - "longDescriptionDE": "Long Description (de)*", + "longDescriptionEN": "Long Description (en)", + "longDescriptionDE": "Long Description (de)", "doc": "Supporting Material", "note": "Note:", "providerDetails": "Provider Details", diff --git a/src/components/shared/basic/ReleaseProcess/AppMarketCard/index.tsx b/src/components/shared/basic/ReleaseProcess/AppMarketCard/index.tsx index 36a638f2a..ac9532cc6 100644 --- a/src/components/shared/basic/ReleaseProcess/AppMarketCard/index.tsx +++ b/src/components/shared/basic/ReleaseProcess/AppMarketCard/index.tsx @@ -508,7 +508,12 @@ export default function AppMarketCard() { }} name="title" pattern={Patterns.appMarketCard.appTitle} - label={t('content.apprelease.appMarketCard.appTitle') + ' *'} + label={ + <> + {t('content.apprelease.appMarketCard.appTitle')} + * + + } rules={{ required: `${t( 'content.apprelease.appMarketCard.appTitle' @@ -538,7 +543,12 @@ export default function AppMarketCard() { maxLength={30} minLength={3} pattern={Patterns.appMarketCard.appProvider} - label={t('content.apprelease.appMarketCard.appProvider') + ' *'} + label={ + <> + {t('content.apprelease.appMarketCard.appProvider')} + * + + } rules={{ required: `${t( 'content.apprelease.appMarketCard.appProvider' @@ -572,7 +582,8 @@ export default function AppMarketCard() { }} label={ <> - {t(`content.apprelease.appMarketCard.${item}`) + ' *'} + {t(`content.apprelease.appMarketCard.${item}`)} + * @@ -623,9 +634,12 @@ export default function AppMarketCard() { trigger, errors, name: 'useCaseCategory', - label: - t('content.apprelease.appMarketCard.useCaseCategory') + - ' *', + label: ( + <> + {t('content.apprelease.appMarketCard.useCaseCategory')} + * + + ), placeholder: t( 'content.apprelease.appMarketCard.useCaseCategoryPlaceholder' ), @@ -663,8 +677,12 @@ export default function AppMarketCard() { trigger, errors, name: 'appLanguage', - label: - t('content.apprelease.appMarketCard.appLanguage') + ' *', + label: ( + <> + {t('content.apprelease.appMarketCard.appLanguage')} + * + + ), placeholder: t( 'content.apprelease.appMarketCard.appLanguagePlaceholder' ), @@ -735,7 +753,10 @@ export default function AppMarketCard() { maxLength={15} minLength={1} label={ - t('content.apprelease.appMarketCard.pricingInformation') + ' *' + <> + {t('content.apprelease.appMarketCard.pricingInformation')} + * + } rules={{ required: `${t( @@ -764,7 +785,10 @@ export default function AppMarketCard() { errors, }} label={ - t('content.apprelease.appMarketCard.appLeadImageUpload') + ' *' + <> + {t('content.apprelease.appMarketCard.appLeadImageUpload')} + * + } noteDescription={t( 'content.apprelease.appReleaseForm.OnlyOneFileAllowed' diff --git a/src/components/shared/basic/ReleaseProcess/AppPage/index.tsx b/src/components/shared/basic/ReleaseProcess/AppPage/index.tsx index 6eacfb045..457a33649 100644 --- a/src/components/shared/basic/ReleaseProcess/AppPage/index.tsx +++ b/src/components/shared/basic/ReleaseProcess/AppPage/index.tsx @@ -481,7 +481,8 @@ export default function AppPage() { }} label={ <> - {t(`content.apprelease.appPage.${item}`) + ' *'} + {t(`content.apprelease.appPage.${item}`)} + * @@ -521,7 +522,8 @@ export default function AppPage() {
- {t('content.apprelease.appPage.images') + ' *'} + {t('content.apprelease.appPage.images')} + * - {t('content.apprelease.appPage.privacyInformation') + ' *'} + {t('content.apprelease.appPage.privacyInformation')} + * {t('content.apprelease.appPage.privacyInformationDescription')} diff --git a/src/components/shared/basic/ReleaseProcess/ContractAndConsent/index.tsx b/src/components/shared/basic/ReleaseProcess/ContractAndConsent/index.tsx index 97b9a0b09..f9c06d81a 100644 --- a/src/components/shared/basic/ReleaseProcess/ContractAndConsent/index.tsx +++ b/src/components/shared/basic/ReleaseProcess/ContractAndConsent/index.tsx @@ -67,8 +67,10 @@ export default function ContractAndConsent() { 'content.apprelease.appReleaseForm.isMandatory' )} imageFieldLabel={ - t('content.apprelease.contractAndConsent.uploadImageConformity') + - ' *' + <> + {t('content.apprelease.contractAndConsent.uploadImageConformity')} + * + } pageSnackbarDescription={t( 'content.apprelease.appReleaseForm.dataSavedSuccessMessage' diff --git a/src/components/shared/basic/ReleaseProcess/OfferCard/index.tsx b/src/components/shared/basic/ReleaseProcess/OfferCard/index.tsx index 548181cb5..910804b9e 100644 --- a/src/components/shared/basic/ReleaseProcess/OfferCard/index.tsx +++ b/src/components/shared/basic/ReleaseProcess/OfferCard/index.tsx @@ -363,7 +363,12 @@ export default function OfferCard() { }} name="title" pattern={Patterns.offerCard.serviceName} - label={t('step1.serviceName')} + label={ + <> + {t('step1.serviceName')} + * + + } rules={{ required: `${t('step1.serviceName')} ${t( 'serviceReleaseForm.isMandatory' @@ -389,7 +394,12 @@ export default function OfferCard() { trigger, errors, name: 'serviceTypeIds', - label: t('step1.serviceType'), + label: ( + <> + {t('step1.serviceType')} + * + + ), placeholder: t('step1.serviceTypePlaceholder'), type: 'multiSelectList', rules: { @@ -430,6 +440,7 @@ export default function OfferCard() { label={ <> {t(`step1.${desc}`)} + * diff --git a/src/components/shared/basic/ReleaseProcess/OfferPage/index.tsx b/src/components/shared/basic/ReleaseProcess/OfferPage/index.tsx index 38bd30d1f..6fa9d41df 100644 --- a/src/components/shared/basic/ReleaseProcess/OfferPage/index.tsx +++ b/src/components/shared/basic/ReleaseProcess/OfferPage/index.tsx @@ -283,6 +283,7 @@ export default function OfferPage({ label={ <> {t(`step2.${longDesc}`)} + * diff --git a/src/components/shared/basic/ReleaseProcess/TechnicalIntegration/index.tsx b/src/components/shared/basic/ReleaseProcess/TechnicalIntegration/index.tsx index 9bc8703f8..03b700c36 100644 --- a/src/components/shared/basic/ReleaseProcess/TechnicalIntegration/index.tsx +++ b/src/components/shared/basic/ReleaseProcess/TechnicalIntegration/index.tsx @@ -324,7 +324,10 @@ export default function TechnicalIntegration() {
- {t('content.apprelease.technicalIntegration.step1Header')} + <> + {t('content.apprelease.technicalIntegration.step1Header')} + * + {t('content.apprelease.technicalIntegration.step1HeaderDescription')} @@ -552,7 +555,10 @@ export default function TechnicalIntegration() { )} - {t('content.apprelease.technicalIntegration.step2Header')} + <> + {t('content.apprelease.technicalIntegration.step2Header')} + * + {t('content.apprelease.technicalIntegration.step2HeaderDescription')} diff --git a/src/components/shared/basic/ReleaseProcess/components/CommonContractAndConsent.tsx b/src/components/shared/basic/ReleaseProcess/components/CommonContractAndConsent.tsx index 8e7c79ce1..467eae422 100644 --- a/src/components/shared/basic/ReleaseProcess/components/CommonContractAndConsent.tsx +++ b/src/components/shared/basic/ReleaseProcess/components/CommonContractAndConsent.tsx @@ -20,7 +20,7 @@ import { useForm } from 'react-hook-form' import { useTranslation } from 'react-i18next' -import { useCallback, useEffect, useMemo, useState } from 'react' +import { ReactElement, useCallback, useEffect, useMemo, useState } from 'react' import { useDispatch } from 'react-redux' import { decrement, increment } from 'features/appManagement/slice' import { @@ -68,7 +68,7 @@ type CommonConsentType = { stepperTitle: string stepperDescription: string checkBoxMandatoryText: string - imageFieldLabel?: string + imageFieldLabel?: ReactElement pageSnackbarDescription: string pageNotificationObject: { title: string From 8b741a395e158fcceb398f6e0f6fc2f7b4258323 Mon Sep 17 00:00:00 2001 From: Manojava Koushik <111366021+manojava-gk@users.noreply.github.com> Date: Thu, 3 Aug 2023 16:12:27 +0530 Subject: [PATCH 6/7] bugfix(notification): fix go to use case link issue (#186) --- src/assets/locales/de/notification.json | 2 +- src/assets/locales/en/notification.json | 2 +- src/components/pages/NotificationCenter/NotificationItem.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/assets/locales/de/notification.json b/src/assets/locales/de/notification.json index 54d394c62..71563f1b2 100644 --- a/src/assets/locales/de/notification.json +++ b/src/assets/locales/de/notification.json @@ -105,7 +105,7 @@ "home": "Zur Startseite", "app": "Zur App", "user": "Zum Benutzer", - "usecases": "Zu den Use Cases", + "usecase": "Zu den Use Case", "serviceprovider": "Go to service provider", "appmanagementboard": "App Management Board öffnen", "servicemanagementboard": "Service Management Board öffnen", diff --git a/src/assets/locales/en/notification.json b/src/assets/locales/en/notification.json index 49be33227..6698fc55c 100644 --- a/src/assets/locales/en/notification.json +++ b/src/assets/locales/en/notification.json @@ -101,7 +101,7 @@ "home": "Go to home page", "app": "Go to app", "user": "Go to user", - "usecases": "Go to use cases", + "usecase": "Go to Use Case", "serviceprovider": "Go to service provider", "appmanagementboard": "Get there", "servicemanagementboard": "Get there", diff --git a/src/components/pages/NotificationCenter/NotificationItem.tsx b/src/components/pages/NotificationCenter/NotificationItem.tsx index 31a7ca56f..57acdf73b 100644 --- a/src/components/pages/NotificationCenter/NotificationItem.tsx +++ b/src/components/pages/NotificationCenter/NotificationItem.tsx @@ -159,7 +159,7 @@ const NotificationConfig = ({ item }: { item: CXNotificationContent }) => { case NotificationType.WELCOME_CONNECTOR_REGISTRATION: return case NotificationType.WELCOME_USE_CASES: - return + return case NotificationType.WELCOME_SERVICE_PROVIDER: return ( Date: Thu, 3 Aug 2023 16:16:46 +0530 Subject: [PATCH 7/7] feat(technical integration): ui enhancement (#189) --- src/assets/locales/de/main.json | 2 + src/assets/locales/en/main.json | 2 + .../TechnicalUserAddForm.scss | 22 ++++++- .../AddTechnicalUser/TechnicalUserAddForm.tsx | 59 +++++++++++-------- .../overlays/AddTechnicalUser/index.tsx | 18 ++++-- src/features/admin/serviceApiSlice.ts | 2 +- 6 files changed, 71 insertions(+), 34 deletions(-) diff --git a/src/assets/locales/de/main.json b/src/assets/locales/de/main.json index 26c2bc69c..cf2a845eb 100644 --- a/src/assets/locales/de/main.json +++ b/src/assets/locales/de/main.json @@ -782,11 +782,13 @@ "technicalUserSubheadlineSuccess": "Der technische Benutzer wurde mit den folgenden Daten angelegt:", "technicalUserSubheadlineError": "Something went wrong. The technical user did not got created due to a system error. Please try it later again or contact your administrator.", "chooseUserRole": "Benutzer-Rolle für den Portalzugriff auswählen", + "help": "Help", "helperText": "Bitte geben Sie alle erforderlichen Informationen ein, bevor Sie fortfahren.", "roleDesc": "Role Description Details", "technicalUser": { "addOverlay": { "service": "Dienst", + "serviceSubHeading": "Select one service roles:", "username": "Username", "description": "Beschreibung", "spocHeadline": "Single Point of Contact (SPoC)", diff --git a/src/assets/locales/en/main.json b/src/assets/locales/en/main.json index c0449df2f..5ef2fc587 100644 --- a/src/assets/locales/en/main.json +++ b/src/assets/locales/en/main.json @@ -780,11 +780,13 @@ "technicalUserSubheadlineSuccess": "Congratulations, the technical user got successfully created. Below you can find all the relevant details needed to apply the technical user for your service connection. Please ensure that you keep this secrets confidential.", "technicalUserSubheadlineError": "Something went wrong. The technical user did not got created due to a system error. Please try it later again or contact your administrator.", "chooseUserRole": "Select CX Portal User Role", + "help": "Help", "helperText": "Please enter all required information before proceeding.", "roleDesc": "Role Description Details", "technicalUser": { "addOverlay": { "service": "Service", + "serviceSubHeading": "Select one service roles:", "username": "Username", "description": "Description", "spocHeadline": "Single Point of Contact (SPoC)", diff --git a/src/components/overlays/AddTechnicalUser/TechnicalUserAddForm.scss b/src/components/overlays/AddTechnicalUser/TechnicalUserAddForm.scss index b0452830c..0df6c7242 100644 --- a/src/components/overlays/AddTechnicalUser/TechnicalUserAddForm.scss +++ b/src/components/overlays/AddTechnicalUser/TechnicalUserAddForm.scss @@ -17,7 +17,27 @@ * * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ - .form-input { padding: 0; } + +.helpText { + display: flex; + color: #0d55af !important; + margin-top: 30px !important; + text-decoration: none; + margin-bottom: 20px !important; + + svg { + font-size: 20px; + } +} + +.technicalUserForm { + display: grid; + + .roleDescription { + line-height: 0; + margin: 5px 27px 20px; + } +} diff --git a/src/components/overlays/AddTechnicalUser/TechnicalUserAddForm.tsx b/src/components/overlays/AddTechnicalUser/TechnicalUserAddForm.tsx index 09fd495bf..ba565448d 100644 --- a/src/components/overlays/AddTechnicalUser/TechnicalUserAddForm.tsx +++ b/src/components/overlays/AddTechnicalUser/TechnicalUserAddForm.tsx @@ -18,16 +18,16 @@ * SPDX-License-Identifier: Apache-2.0 ********************************************************************************/ +import { useState } from 'react' import Box from '@mui/material/Box' import { useTranslation } from 'react-i18next' import InputLabel from '@mui/material/InputLabel' import { Controller } from 'react-hook-form' -import Select from '@mui/material/Select' -import MenuItem from '@mui/material/MenuItem' import FormHelperText from '@mui/material/FormHelperText' import TextField from '@mui/material/TextField' import InputAdornment from '@mui/material/InputAdornment' import ErrorOutlineOutlinedIcon from '@mui/icons-material/ErrorOutlineOutlined' +import { Radio, Typography } from '@catena-x/portal-shared-components' import { ServiceAccountRole, useFetchServiceAccountRolesQuery, @@ -48,36 +48,43 @@ const TechnicalUserAddFormSelect = ({ }: any) => { const { t } = useTranslation() const roles = useFetchServiceAccountRolesQuery().data + const [selectedValue, setSelectedValue] = useState() return ( ( - <> + {t('content.addUser.technicalUser.addOverlay.service')} - + + {t('content.addUser.technicalUser.addOverlay.serviceSubHeading')} + + {roles?.map((role: ServiceAccountRole) => ( + <> + { + setSelectedValue(event.target.value) + trigger(name) + onChange(event) + }} + size="small" + sx={{ + display: 'flex', + }} + /> + {role.roleDescription && ( + + {role.roleDescription} + + )} + + ))} {!!errors[name] && ( )} - + )} name={name} control={control} diff --git a/src/components/overlays/AddTechnicalUser/index.tsx b/src/components/overlays/AddTechnicalUser/index.tsx index 8df6ac508..b62264acc 100644 --- a/src/components/overlays/AddTechnicalUser/index.tsx +++ b/src/components/overlays/AddTechnicalUser/index.tsx @@ -27,6 +27,7 @@ import { CircleProgress, Typography, } from '@catena-x/portal-shared-components' +import { Link } from 'react-router-dom' import { Box } from '@mui/material' import { useDispatch } from 'react-redux' import { closeOverlay } from 'features/control/overlay' @@ -44,6 +45,8 @@ import { UserDetailCard } from 'components/shared/basic/UserDetailInfo/UserDetai import { ServerResponseOverlay } from '../ServerResponse' import { useFetchOwnUserDetailsQuery } from 'features/admin/userApiSlice' import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline' +import HelpOutlineIcon from '@mui/icons-material/HelpOutline' +import './TechnicalUserAddForm.scss' export const AddTechnicalUser = () => { const { t } = useTranslation() @@ -186,15 +189,18 @@ export const AddTechnicalUser = () => { onCloseWithIcon={handleDispatch} /> + + + + {t('content.addUser.help')} + + - - -