in public/apps/configuration/panels/audit-logging/audit-logging.tsx [135:230]
export function AuditLogging(props: AuditLoggingProps) {
const [configuration, setConfiguration] = React.useState<AuditLoggingSettings>({});
const onSwitchChange = async () => {
try {
const updatedConfiguration = { ...configuration };
updatedConfiguration.enabled = !updatedConfiguration.enabled;
await updateAuditLogging(props.coreStart.http, updatedConfiguration);
setConfiguration(updatedConfiguration);
} catch (e) {
console.error(e);
}
};
React.useEffect(() => {
const fetchData = async () => {
try {
const auditLogging = await getAuditLogging(props.coreStart.http);
setConfiguration(auditLogging);
} catch (e) {
// TODO: switch to better error handling.
console.log(e);
}
};
fetchData();
}, [props.coreStart.http, props.fromType]);
const statusPanel = renderStatusPanel(onSwitchChange, configuration.enabled || false);
let content;
if (!configuration.enabled) {
content = statusPanel;
} else {
content = (
<>
{statusPanel}
<EuiSpacer />
<EuiPanel>
<EuiFlexGroup>
<EuiFlexItem>
<EuiTitle>
<h3>General settings</h3>
</EuiTitle>
</EuiFlexItem>
<EuiFlexItem grow={false}>
<EuiButton
data-test-subj="general-settings-configure"
onClick={() => {
window.location.href =
buildHashUrl(ResourceType.auditLogging) + SUB_URL_FOR_GENERAL_SETTINGS_EDIT;
}}
>
Configure
</EuiButton>
</EuiFlexItem>
</EuiFlexGroup>
<EuiHorizontalRule margin="m" />
{renderGeneralSettings(configuration)}
</EuiPanel>
<EuiSpacer />
<EuiPanel>
<EuiFlexGroup>
<EuiFlexItem>
<EuiTitle>
<h3>Compliance settings</h3>
</EuiTitle>
</EuiFlexItem>
<EuiFlexItem grow={false}>
<EuiButton
data-test-subj="compliance-settings-configure"
onClick={() => {
window.location.href =
buildHashUrl(ResourceType.auditLogging) + SUB_URL_FOR_COMPLIANCE_SETTINGS_EDIT;
}}
>
Configure
</EuiButton>
</EuiFlexItem>
</EuiFlexGroup>
<EuiHorizontalRule margin="m" />
{renderComplianceSettings(configuration)}
</EuiPanel>
</>
);
}
return <div className="panel-restrict-width">{content}</div>;
}