Commit graph

8 commits

Author SHA1 Message Date
Scott Gress
b35e65455e
Refactor paginated list to use UseQuery (#33669)
# Details

As mentioned in a previous front-end sync, I realized after having to
add a `reload()` method to the `PaginatedList` imperative handle that I
had strayed too far from the path. The original concept for this
component was for it to be fully self-contained, so the parent didn't
have to concern itself with pagination at all other than being told what
page to load. But the addition of an `onChangePage` property isn't a
tragedy and is totally worth the reduction in code, consistency with use
of `useQuery` elsewhere and React best practice of passing data from
parent to child.

This refactor still retains the use of the imperative handle for
querying the "dirty state" of the list, so parents don't have to manage
that state themselves.

## Testing

- [X] Added/updated automated tests
Updated PaginatedList tests as needed. Also confirmed that tests for the
upstream components (PoliciesPaginatedList, Secrets, RunBatchScriptModal
and ScriptBatchProgress) all passed without any modification.
- [X] QA'd all new/changed functionality manually
Added enough data to paginate each of the components that uses
PaginatedList, confirmed pagination still works and dirty state
functionality (in PoliciesPaginatedList) still works. Also confirmed
add/delete functionality works as expected in Secrets.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- New Features
- Consistent, responsive pagination across Scripts, Secrets, Hosts, and
Policies pages with clearer loading and empty states.
- Bug Fixes
- Delete Secret modal now reliably displays errors and refreshes the
list after deletion.
- Refactor
- Unified data-driven pagination flow for improved performance and
smoother navigation.
  - Simplified list interactions by removing manual reloads.
- Tests
- Updated tests to align with the new pagination behavior and data flow.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-10-28 11:27:05 -05:00
jacobshandling
669aaa7f2d
UI - Delete secret modal: Close modal on error/success, truncate long var names, add missing copy, fix copy alignment (#32508)
## For #32465 

Modal closes when delete errors:
<img width="1350" height="877" alt="Screenshot 2025-09-02 at 10 20
35 AM"
src="https://github.com/user-attachments/assets/daa97771-ba2f-49a7-9324-a2ce3f5bbe46"
/>

and when it succeeds:
<img width="1350" height="877" alt="Screenshot 2025-09-02 at 10 22
01 AM"
src="https://github.com/user-attachments/assets/94404529-bf8c-4c3a-bd0f-af3bab8bdc35"
/>

Short variable names render inline, additional copy underneath:
<img width="1074" height="610" alt="Screenshot 2025-09-02 at 11 33
16 AM"
src="https://github.com/user-attachments/assets/61958099-4450-4e2f-9ee8-f6ed15be8f2b"
/>

While long ones are truncated with the full value displayed in a
tooltip, also inline with additional copy underneath:
<img width="1074" height="610" alt="Screenshot 2025-09-02 at 11 33
55 AM"
src="https://github.com/user-attachments/assets/1fb45cb1-9252-45c9-a62e-c39cae05caaa"
/>

- [x] QA'd all new/changed functionality manually
- [x] Updated tests
- [x] Confirmed that the fix is not expected to adversely impact load
test results

---------

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2025-09-02 12:55:47 -07:00
Lucas Manuel Rodriguez
7341249025
Fix one-off error in secret variable length check (#32386)
For #32381.
2025-08-27 20:33:22 -03:00
Lucas Manuel Rodriguez
0b0e8c2aa2
Add success notifications for variables (#32251)
Nit: Missing feedback to user after creation or deletion of variables.
Found while testing #29235.

Added similar text used when creating or deleting other entities like
queries or scripts.
2025-08-26 17:45:02 -03:00
Scott Gress
4d31fe1c5e
Custom Variables UI updates (#32304)
for #32269 
for #32271 
for #32285

# Details

This PR addresses some front-end issues found during QA testing of the
new Custom Variables UI

# Checklist for submitter

## Testing

- [X] Added/updated automated tests

- [ ] QA'd all new/changed functionality manually

* Spaces allowed in custom variable values:
<img width="659" height="399" alt="image"
src="https://github.com/user-attachments/assets/e849636f-d91c-4649-a6f1-82bc2397cbbe"
/>

* Overflow in add var modal
<img width="657" height="412" alt="image"
src="https://github.com/user-attachments/assets/d04563e1-df29-457d-976a-b6b05b3aa623"
/>

* If it's too long, show error
<img width="664" height="414" alt="image"
src="https://github.com/user-attachments/assets/91100d0c-35b5-4cd2-a779-6a34bfdc9fc3"
/>

* Overflow in table too
<img width="1031" height="178" alt="image"
src="https://github.com/user-attachments/assets/4833bd64-2f3f-4de7-9392-1955341a5a96"
/>

* Added "Learn More" button and correct margin between tabs and
description
<img width="1053" height="224" alt="image"
src="https://github.com/user-attachments/assets/4db5116c-0a77-4427-ad61-9bde6e94679b"
/>

* Team admins / maintainers can no longer see "Add" or "Delete" var
buttons
<img width="1031" height="374" alt="image"
src="https://github.com/user-attachments/assets/a15ab358-a6de-4d0b-9df9-aa2e7ed5c0cb"
/>

For unreleased bug fixes in a release candidate, one of:

- [X] Confirmed that the fix is not expected to adversely impact load
test results
- [ ] Alerted the release DRI if additional load testing is needed
2025-08-26 14:08:15 -05:00
Lucas Manuel Rodriguez
632f731233
Remove text from remove variable dialog (#32249)
Missing change from #29235.
See decision
[here](https://github.com/fleetdm/fleet/issues/29235#issuecomment-3208040863).

<img width="675" height="264" alt="Screenshot 2025-08-25 at 10 14 29 AM"
src="https://github.com/user-attachments/assets/0446412e-7d13-40fc-ae2c-94e8bab04b9e"
/>
2025-08-25 15:02:37 -03:00
Lucas Manuel Rodriguez
53b7a0628a
Prevent IT admins from deleting a secret variable in use (#32161)
#31977

Tested with:
224 scripts, 102 Apple configuration profiles, 105 Apple declarations,
37 Windows configuration profiles. Scattered in 7 teams.

No variables on profiles/scripts:
- scan scripts: 22.079416ms
- scan apple profiles: 1.865083ms
- scan apple declarations: 683.75µs
- scan windows profiles: 531.167µs

A variable "X" on with profiles/scripts that have variable "Y":
- scan scripts: 26.305459ms
- scan apple profiles: 1.841708ms
- scan apple declarations: 756.917µs
- scan windows profiles: 571.875µs

---

## Testing

- [X] Added/updated automated tests

- [X] QA'd all new/changed functionality manually

For unreleased bug fixes in a release candidate, one of:

- [X] Confirmed that the fix is not expected to adversely impact load
test results
- [X] Alerted the release DRI if additional load testing is needed

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- New Features
- Prevents deleting a secret that’s still in use. The system now checks
scripts, Apple/Windows MDM profiles, and Apple declarations across teams
before allowing deletion.
- The delete dialog now shows a clear message indicating which item (and
team) is using the secret, replacing the previous generic error.
- Deletion succeeds once all references are removed, ensuring safer
secret management.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-08-22 11:22:37 -03:00
Scott Gress
2e1ce02796
UI for managing custom variables (#31875)
for #31054

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

- [X] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.

## Testing

- [ ] Added/updated automated tests
- [ ] Where appropriate, [automated tests simulate multiple hosts and
test for host
isolation](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/reference/patterns-backend.md#unit-testing)
(updates to one hosts's records do not affect another)

- [X] QA'd all new/changed functionality manually
2025-08-15 08:24:55 -05:00