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,
},
});