Skip to content

Commit

Permalink
UI: only setEditingExistingQuery in the edit query form if the quer…
Browse files Browse the repository at this point in the history
…y has been modified (#25115)

## #24653 

- This bug was more generally that live query runs from the Edit query
form did not include the `query_id` in the `run` API call.


![ezgif-6-8ef29273dc](https://github.com/user-attachments/assets/d6792037-5d91-4f6f-84d9-640133df0522)


- [x] Changes file added for user-visible changes in `changes/`
- [x] Manual QA for all new/changed functionality

---------

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
  • Loading branch information
jacobshandling and Jacob Shandling authored Jan 3, 2025
1 parent b1446b1 commit 338a00a
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
2 changes: 2 additions & 0 deletions changes/24653-live-query-from-edit-affects-performance-stats
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- When running a live query from the edit query form, consider the results of the run in calculating
an existing query's performance impact if the user didn't change the query from the stored version.
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,7 @@ const EditQueryForm = ({
const [isEditingDescription, setIsEditingDescription] = useState(false);
const [isSaveAsNewLoading, setIsSaveAsNewLoading] = useState(false);
const [showAdvancedOptions, setShowAdvancedOptions] = useState(false);
const [queryWasChanged, setQueryWasChanged] = useState(false);

const platformCompatibility = usePlatformCompatibility();
const { setCompatiblePlatforms } = platformCompatibility;
Expand Down Expand Up @@ -233,6 +234,7 @@ const EditQueryForm = ({
};

const onChangeQuery = (sqlString: string) => {
setQueryWasChanged(true);
setLastEditedQueryBody(sqlString);
};

Expand Down Expand Up @@ -882,7 +884,17 @@ const EditQueryForm = ({
className={`${baseClass}__run`}
variant="blue-green"
onClick={() => {
setEditingExistingQuery(true); // Persists edited query data through live query flow
// calling `setEditingExistingQuery` here prevents
// inclusion of `query_id` in the subsequent `run` API call, which prevents counting
// this live run in performance impact. Since we DO want to count this run in those
// stats if the query is the same as the saved one, only set below IF the query
// has been changed.
// TODO - product: should host details > action > query > <select existing query>
// go to the host details page instead of the edit query page, where the user has
// the choice to edit the query or run it live directly?
if (queryWasChanged) {
setEditingExistingQuery(true); // Persists edited query data through live query flow
}
router.push(
PATHS.LIVE_QUERY(queryIdForEdit) +
TAGGED_TEMPLATES.queryByHostRoute(hostId, currentTeamId)
Expand Down

0 comments on commit 338a00a

Please sign in to comment.