mirror of
https://github.com/empayre/fleet.git
synced 2024-11-06 08:55:24 +00:00
a10aac29c6
## Follow-up work to #17717 **Finalize disabled options and tooltips:** <img width="697" alt="Screenshot 2024-03-21 at 5 14 40 PM" src="https://github.com/fleetdm/fleet/assets/61553566/ea5d880f-75f6-48ef-85cc-b807812c9a50"> <img width="697" alt="Screenshot 2024-03-21 at 5 15 13 PM" src="https://github.com/fleetdm/fleet/assets/61553566/bdd33118-933e-4676-9e1e-680ebcddbc7a"> **Only update policies and settings when there's a diff:** ![1(1)](https://github.com/fleetdm/fleet/assets/61553566/183d1834-3c54-4fef-a208-dfbb0354e507) **Reorganize onChange handlers, types** - [x] Manual QA for all new/changed functionality --------- Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
92 lines
2.4 KiB
TypeScript
92 lines
2.4 KiB
TypeScript
export type IIntegrationType = "jira" | "zendesk";
|
||
export interface IJiraIntegration {
|
||
url: string;
|
||
username: string;
|
||
api_token: string;
|
||
project_key: string;
|
||
enable_failing_policies?: boolean;
|
||
enable_software_vulnerabilities?: boolean;
|
||
}
|
||
|
||
export interface IZendeskIntegration {
|
||
url: string;
|
||
email: string;
|
||
api_token: string;
|
||
group_id: number;
|
||
enable_failing_policies?: boolean;
|
||
enable_software_vulnerabilities?: boolean;
|
||
}
|
||
|
||
export interface IIntegration {
|
||
url: string;
|
||
username?: string;
|
||
email?: string;
|
||
api_token: string;
|
||
project_key?: string;
|
||
group_id?: number;
|
||
enable_failing_policies?: boolean;
|
||
enable_software_vulnerabilities?: boolean;
|
||
originalIndex?: number;
|
||
type?: IIntegrationType;
|
||
tableIndex?: number;
|
||
dropdownIndex?: number;
|
||
name?: string;
|
||
}
|
||
|
||
export interface IIntegrationFormData {
|
||
url: string;
|
||
username?: string;
|
||
email?: string;
|
||
apiToken: string;
|
||
projectKey?: string;
|
||
groupId?: number;
|
||
enableSoftwareVulnerabilities?: boolean;
|
||
}
|
||
|
||
export interface IIntegrationTableData extends IIntegrationFormData {
|
||
originalIndex: number;
|
||
type: IIntegrationType;
|
||
tableIndex?: number;
|
||
name: string;
|
||
}
|
||
|
||
export interface IIntegrationFormErrors {
|
||
url?: string | null;
|
||
email?: string | null;
|
||
username?: string | null;
|
||
apiToken?: string | null;
|
||
groupId?: number | null;
|
||
projectKey?: string | null;
|
||
enableSoftwareVulnerabilities?: boolean;
|
||
}
|
||
|
||
export interface IGlobalCalendarIntegration {
|
||
domain: string;
|
||
api_key_json: string;
|
||
}
|
||
|
||
interface ITeamCalendarSettings {
|
||
enable_calendar_events: boolean;
|
||
webhook_url: string;
|
||
}
|
||
|
||
// zendesk and jira fields are coupled – if one is present, the other needs to be present. If
|
||
// one is present and the other is null/missing, the other will be nullified. google_calendar is
|
||
// separated – it can be present without the other 2 without nullifying them.
|
||
// TODO: Update these types to reflect this.
|
||
|
||
export interface IZendeskJiraIntegrations {
|
||
zendesk: IZendeskIntegration[];
|
||
jira: IJiraIntegration[];
|
||
}
|
||
|
||
// reality is that IZendeskJiraIntegrations are optional – should be something like `extends
|
||
// Partial<IZendeskJiraIntegrations>`, but that leads to a mess of types to resolve.
|
||
export interface IGlobalIntegrations extends IZendeskJiraIntegrations {
|
||
google_calendar?: IGlobalCalendarIntegration[] | null;
|
||
}
|
||
|
||
export interface ITeamIntegrations extends IZendeskJiraIntegrations {
|
||
google_calendar?: ITeamCalendarSettings | null;
|
||
}
|