2023-10-09 18:31:31 +00:00
|
|
|
import Checkbox from "components/forms/fields/Checkbox";
|
|
|
|
|
import Icon from "components/Icon";
|
|
|
|
|
import InfoBanner from "components/InfoBanner";
|
|
|
|
|
import TooltipWrapper from "components/TooltipWrapper";
|
|
|
|
|
import { QueryLoggingOption } from "interfaces/schedulable_query";
|
|
|
|
|
import React, { useState } from "react";
|
|
|
|
|
import { Link } from "react-router";
|
|
|
|
|
|
|
|
|
|
const baseClass = "discard-data-option";
|
|
|
|
|
|
|
|
|
|
interface IDiscardDataOptionProps {
|
|
|
|
|
queryReportsDisabled: boolean;
|
|
|
|
|
selectedLoggingType: QueryLoggingOption;
|
|
|
|
|
discardData: boolean;
|
|
|
|
|
setDiscardData: (value: boolean) => void;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const DiscardDataOption = ({
|
|
|
|
|
queryReportsDisabled,
|
|
|
|
|
selectedLoggingType,
|
|
|
|
|
discardData,
|
|
|
|
|
setDiscardData,
|
|
|
|
|
}: IDiscardDataOptionProps) => {
|
|
|
|
|
const [forceEditDiscardData, setForceEditDiscardData] = useState(false);
|
|
|
|
|
const disable = queryReportsDisabled && !forceEditDiscardData;
|
|
|
|
|
|
|
|
|
|
const renderHelpText = () => (
|
|
|
|
|
<div className="help-text">
|
|
|
|
|
{disable ? (
|
|
|
|
|
<>
|
|
|
|
|
This setting is ignored because query reports in Fleet have been{" "}
|
|
|
|
|
<TooltipWrapper
|
|
|
|
|
tipContent={
|
2023-11-07 21:15:49 +00:00
|
|
|
<>
|
|
|
|
|
A Fleet administrator can enable query reports under <br />
|
|
|
|
|
<b>
|
|
|
|
|
Organization settings > Advanced options > Disable query
|
|
|
|
|
reports
|
|
|
|
|
</b>
|
|
|
|
|
.
|
|
|
|
|
</>
|
2023-10-09 18:31:31 +00:00
|
|
|
}
|
|
|
|
|
>
|
|
|
|
|
{"globally disabled."}
|
|
|
|
|
</TooltipWrapper>{" "}
|
|
|
|
|
<Link
|
2024-02-23 14:57:18 +00:00
|
|
|
to=""
|
2023-10-09 18:31:31 +00:00
|
|
|
onClick={(e: React.MouseEvent) => {
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
setForceEditDiscardData(true);
|
|
|
|
|
}}
|
|
|
|
|
className={`${baseClass}__edit-anyway`}
|
|
|
|
|
>
|
|
|
|
|
<>
|
|
|
|
|
Edit anyway
|
2023-10-31 16:06:38 +00:00
|
|
|
<Icon name="chevron-right" color="core-fleet-blue" size="small" />
|
2023-10-09 18:31:31 +00:00
|
|
|
</>
|
|
|
|
|
</Link>
|
|
|
|
|
</>
|
|
|
|
|
) : (
|
2024-11-13 14:32:59 +00:00
|
|
|
"The most recent results for each host will not be available in Fleet."
|
2023-10-09 18:31:31 +00:00
|
|
|
)}
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
return (
|
|
|
|
|
<div className={baseClass}>
|
|
|
|
|
{["differential", "differential_ignore_removals"].includes(
|
|
|
|
|
selectedLoggingType
|
|
|
|
|
) && (
|
2025-02-19 15:36:36 +00:00
|
|
|
<>
|
|
|
|
|
<InfoBanner color="purple">
|
2023-10-09 18:31:31 +00:00
|
|
|
The <b>Discard data</b> setting is ignored when differential logging
|
2023-10-12 15:56:40 +00:00
|
|
|
is enabled. This query's results will not be saved in Fleet.
|
2025-02-19 15:36:36 +00:00
|
|
|
</InfoBanner>
|
|
|
|
|
</>
|
2023-10-09 18:31:31 +00:00
|
|
|
)}
|
2024-01-18 15:48:44 +00:00
|
|
|
<Checkbox
|
|
|
|
|
name="discardData"
|
|
|
|
|
onChange={setDiscardData}
|
|
|
|
|
value={discardData}
|
|
|
|
|
wrapperClassName={
|
|
|
|
|
disable ? `${baseClass}__disabled-discard-data-checkbox` : ""
|
|
|
|
|
}
|
|
|
|
|
helpText={renderHelpText()}
|
|
|
|
|
>
|
|
|
|
|
Discard data
|
|
|
|
|
</Checkbox>
|
2023-10-09 18:31:31 +00:00
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default DiscardDataOption;
|