From 77b068655ad1fb9e41f9611cefafc947ac12591d Mon Sep 17 00:00:00 2001 From: RachelElysia Date: Wed, 13 Mar 2024 14:06:32 -0400 Subject: [PATCH] Add to other api updates --- frontend/__mocks__/configMock.ts | 1 + .../cards/Calendars/Calendars.tsx | 19 +++++++++++++------ .../cards/Integrations/Integrations.tsx | 8 +++++++- .../ManagePolicyAutomationsModal.tsx | 4 +++- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/frontend/__mocks__/configMock.ts b/frontend/__mocks__/configMock.ts index 26b996662a59..03e555485166 100644 --- a/frontend/__mocks__/configMock.ts +++ b/frontend/__mocks__/configMock.ts @@ -76,6 +76,7 @@ const DEFAULT_CONFIG_MOCK: IConfig = { integrations: { jira: [], zendesk: [], + google_calendar: [], }, logging: { debug: false, diff --git a/frontend/pages/admin/IntegrationsPage/cards/Calendars/Calendars.tsx b/frontend/pages/admin/IntegrationsPage/cards/Calendars/Calendars.tsx index c0cfe9e39142..97303271d51d 100644 --- a/frontend/pages/admin/IntegrationsPage/cards/Calendars/Calendars.tsx +++ b/frontend/pages/admin/IntegrationsPage/cards/Calendars/Calendars.tsx @@ -56,13 +56,15 @@ const Calendars = (): JSX.Element => { const validateForm = () => { const errors: ICalendarsFormErrors = {}; - if (!email) { + + // Must set all keys or no keys at all + if (!email && (!!domain || !!privateKey)) { errors.email = "Email must be present"; } - if (!domain) { + if (!domain && (!!email || !!privateKey)) { errors.email = "Domain must be present"; } - if (!privateKey) { + if (!privateKey && (!!email || !!domain)) { errors.privateKey = "Private key must be present"; } @@ -99,7 +101,7 @@ const Calendars = (): JSX.Element => { ); refetchConfig(); }) - .catch( data: IApiError ) => { + .catch(() => { renderFlash( "error", <> @@ -127,6 +129,7 @@ const Calendars = (): JSX.Element => { name="email" value={email} parseTarget + onBlur={validateForm} tooltip={ <> The email address for this Google @@ -141,6 +144,7 @@ const Calendars = (): JSX.Element => { name="domain" value={domain} parseTarget + onBlur={validateForm} tooltip={ <> The Google Workspace domain this
service account is @@ -152,9 +156,10 @@ const Calendars = (): JSX.Element => { The private key for this Google
Workspace service account. @@ -180,9 +185,11 @@ const Calendars = (): JSX.Element => {

); }; + return (
- {isLoadingAppConfig ? : renderForm()} + {isLoadingAppConfig && } + {renderForm()}
); }; diff --git a/frontend/pages/admin/IntegrationsPage/cards/Integrations/Integrations.tsx b/frontend/pages/admin/IntegrationsPage/cards/Integrations/Integrations.tsx index 9393a39826ce..a620063c4803 100644 --- a/frontend/pages/admin/IntegrationsPage/cards/Integrations/Integrations.tsx +++ b/frontend/pages/admin/IntegrationsPage/cards/Integrations/Integrations.tsx @@ -228,6 +228,7 @@ const Integrations = (): JSX.Element => { integrations: { jira: integrations?.jira, zendesk: zendeskIntegrations, + google_calendar: integrations?.google_calendar, }, }); } @@ -236,6 +237,7 @@ const Integrations = (): JSX.Element => { integrations: { zendesk: integrations?.zendesk, jira: jiraIntegrations, + google_calendar: integrations?.google_calendar, }, }); }; @@ -287,6 +289,7 @@ const Integrations = (): JSX.Element => { integrations: { jira: integrationSubmitData, zendesk: zendeskIntegrations, + google_calendar: integrations?.google_calendar, }, }); } @@ -294,6 +297,7 @@ const Integrations = (): JSX.Element => { integrations: { zendesk: integrationSubmitData, jira: jiraIntegrations, + google_calendar: integrations?.google_calendar, }, }); }; @@ -416,7 +420,9 @@ const Integrations = (): JSX.Element => { onCancel={toggleAddIntegrationModal} onSubmit={onAddSubmit} backendValidators={backendValidators} - integrations={integrations || { jira: [], zendesk: [] }} + integrations={ + integrations || { jira: [], zendesk: [], google_calendar: [] } + } testingConnection={testingConnection} /> )} diff --git a/frontend/pages/policies/ManagePoliciesPage/components/ManagePolicyAutomationsModal/ManagePolicyAutomationsModal.tsx b/frontend/pages/policies/ManagePoliciesPage/components/ManagePolicyAutomationsModal/ManagePolicyAutomationsModal.tsx index ae71c22cfecd..781aa44ed6c4 100644 --- a/frontend/pages/policies/ManagePoliciesPage/components/ManagePolicyAutomationsModal/ManagePolicyAutomationsModal.tsx +++ b/frontend/pages/policies/ManagePoliciesPage/components/ManagePolicyAutomationsModal/ManagePolicyAutomationsModal.tsx @@ -99,7 +99,8 @@ const ManagePolicyAutomationsModal = ({ webhook_settings: { failing_policies_webhook: webhook }, } = automationsConfig; - const { jira, zendesk } = availableIntegrations || {}; + const { jira, zendesk, google_calendar: googleCalendar } = + availableIntegrations || {}; const allIntegrations: IIntegration[] = []; jira && allIntegrations.push(...jira); zendesk && allIntegrations.push(...zendesk); @@ -263,6 +264,7 @@ const ManagePolicyAutomationsModal = ({ integrations: { jira: newJira, zendesk: newZendesk, + google_calendar: googleCalendar, }, });