Commit graph

1678 commits

Author SHA1 Message Date
Carlo
715d963f82
My device page (self-service) for iOS/iPadOS (#35238)
Implements #32247. This is the complete feature branch, consolidating:

- https://github.com/fleetdm/fleet/pull/35018
- https://github.com/fleetdm/fleet/pull/34758
- https://github.com/fleetdm/fleet/pull/35009
- https://github.com/fleetdm/fleet/pull/35181
- https://github.com/fleetdm/fleet/pull/35342

---------

Co-authored-by: Jonathan Katz <44128041+jkatz01@users.noreply.github.com>
Co-authored-by: RachelElysia <71795832+RachelElysia@users.noreply.github.com>
Co-authored-by: Martin Angers <martin.n.angers@gmail.com>
Co-authored-by: jkatz01 <yehonatankatz@gmail.com>
2025-11-07 17:30:51 -05:00
RachelElysia
3efeeb1ad0
Fleet UI: Ability to edit software display names (#34872) 2025-11-07 09:59:30 -05:00
RachelElysia
f12bedece7
Fleet UI: Fix table selection styling (#35295) 2025-11-06 15:31:14 -05:00
Gabriel Hernandez
f0ebb47de6
update the TooltipTruncatedText Component (#35205)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #34652

This updates the TooltipTruncatedText component to use our
TooltipWrapper component. This helps us maintain consistency in our
tooltips.
2025-11-06 14:40:46 +00:00
Marko Lisica
10e6b0d638
Add instructions for deleting Android Enterprise (#34339)
Added section on deleting Android Enterprise in Google Admin.

I'll use this new title to link in the UI, inside the banner when user
deletes Android Enterprise in Google Admin.

Related to:
https://github.com/fleetdm/fleet/issues/34152#issuecomment-3407854195
2025-11-04 12:20:24 +01:00
RachelElysia
9f174b7cdc
Fleet UI: Host details activity script package uses correct modal (#35050) 2025-10-31 10:55:16 -04:00
RachelElysia
03ddd18758
Fleet UI: Hide install modals' details button if no details to display (#34954) 2025-10-29 16:04:44 -04:00
Scott Gress
cdd54f83dc
Update script and profile uploaders (#34909)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #32632 

# Details

Resolves a couple of issues caught in QA:

1. Script uploader now shows correct icon in empty state, *nix shell
script uploaded and Powershell script uploaded:
<img width="640" alt="image"
src="https://github.com/user-attachments/assets/7467d596-f3f9-43a3-9bfc-bb08d56e2c2b"
/>
<img width="640" height="360" alt="image"
src="https://github.com/user-attachments/assets/6d148672-38a5-49d1-b0ca-cb9e5d992b81"
/>
<img width="640" height="314" alt="image"
src="https://github.com/user-attachments/assets/b4dc3069-f54d-40d1-b7ef-3d1afc1a2e21"
/>

2. Updated title text for profile upload from "Update configuration
profile" to "Upload configuration profile"
<img width="640" height="275" alt="image"
src="https://github.com/user-attachments/assets/3daead86-3b40-415a-8472-6895402840bd"
/>
<img width="640" height="579" alt="image"
src="https://github.com/user-attachments/assets/40583c0f-83a6-4800-be21-f9e6fd5304d3"
/>




# Checklist for submitter

## Testing

- [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
2025-10-29 09:37:47 -05:00
RachelElysia
f83b8ca064
Fleet UI: IPA - ability to upload, call mdm command API for activity details (#34886)
resolves #34826 

## Issue
Followup for #34012 

## Description
- Fix client side error happening when uploading Custom Package > IPA 
- Fix IPA details modal to call mdm command API instead of software
install result API
2025-10-28 17:48:10 -04:00
RachelElysia
e1b325130a
Fleet UI: IPA custom packages (#34220) 2025-10-28 12:44:17 -04:00
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
RachelElysia
dbbb165494
Fleet UI: Keep new lines in code blocks but still remove trailing new lines (#34777) 2025-10-27 09:35:18 -04:00
Gabriel Hernandez
56c90daf57
update contact url buttons on swift dialog popup for macos mdm migration (#34265)
**Related issue:** Fixes #32902

This changes the error message swift dialog popup for macos mdm
migration. it will not correctly show file protocol URLs and makes the
"Contact IT" the primary button action on this popup.
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.
- [x] QA'd all new/changed functionality manually

## fleetd/orbit/Fleet Desktop

- [x] Verified compatibility with the latest released version of Fleet
(see [Must
rule](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/workflows/fleetd-development-and-release-strategy.md))
- [x] Verified that fleetd runs on macOS, Linux and Windows
- [ ] Verified auto-update works from the released version of component
to the new version (see [tools/tuf/test](../tools/tuf/test/README.md))

---------

Co-authored-by: Jordan Montgomery <elijah.jordan.montgomery@gmail.com>
2025-10-24 16:45:49 -04:00
Noah Talerman
c25028710b
Fleet product: Change label from 'Manage users' to 'Users' (#34738)
- @noahtalerman: Noun is used for all other items except "Sign out":

<img width="252" height="362" alt="Image"
src="https://github.com/user-attachments/assets/34280bf0-5e74-46ed-b425-49faecbca18f"
/>
2025-10-24 13:52:05 -04:00
Scott Gress
9151b26745
Fix alignment on "This feature is included in Fleet Premium" message (#34696)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #34133 

# Checklist for submitter

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

## Testing

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

Before:
<img width="420" height="46" alt="image"
src="https://github.com/user-attachments/assets/e6117197-c966-42be-8fb6-e3a6e18e203e"
/>

After:
<img width="420" height="50" alt="image"
src="https://github.com/user-attachments/assets/880a6c0b-932b-4bf8-8ff8-33f1d1b0c8f7"
/>
2025-10-24 09:30:38 -05:00
RachelElysia
b91d13416e
Fleet UI: Icon + status message refactored as a component (#34442) 2025-10-24 09:38:59 -04:00
RachelElysia
69494cc0d1
Fleet UI: Remove purple count and 2 links (#34462) 2025-10-17 15:56:13 -05:00
RachelElysia
bc837a7bd3
Fleet UI: Undo filter same row as header name (#34457) 2025-10-17 12:46:46 -05:00
Scott Gress
81f589d661
Update add script UI (#34349)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #32632

# Details

This PR updates the Script Library page in the following ways:
* When no scripts are uploaded for a team, it shows the "Add script" UI
with a button that opens a new "Add Script" modal
* When scripts are uploaded, the "Add script" button is instead added to
the header of the scripts list, and clicking it opens that modal

# 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
working on this

- [X] QA'd all new/changed functionality manually
- [X] Test empty state: go to controls/scripts/library for a team with
no scripts. Clicking "upload" button in empty state should open the add
script modal.
- [X] In the modal, select a .ps1 script. Should not see additional
text.
- [X] Close modal without uploading. Re-open. File field should be
cleared & upload button visible again.
- [X] Select a .sh script. Should see additional text about macOS and
Linux.
  - [X] Add script. Make sure script saves and modal closes.
- [X] Once script has been added, make sure empty state is gone and "Add
script" button is at the top of the list.
- [X] Go to /controls/os-settings/custom-settings for a team with no
profiles uploaded. Make sure empty state text styles match the empty
state for script uploads.
- [X] Open modal to add profile. Make sure upload text styles match the
script upload modal.
- [X] Enable GitOps mode. Go to controls/scripts/library for a team with
scripts added. Make sure new "Add script" button is disabled w/ standard
tooltip in GitOps mode.

Scripts empty state:

<img width="697" height="352" alt="image"
src="https://github.com/user-attachments/assets/32f0f246-bddb-4bb7-bc39-48d9978de9fa"
/>

Scripts uploader:

<img width="745" height="590" alt="image"
src="https://github.com/user-attachments/assets/f82414e2-9318-4543-b5ca-41e759662587"
/>

Scripts uploader with .sh

<img width="750" height="539" alt="image"
src="https://github.com/user-attachments/assets/0b989067-921a-4d18-93ed-09aac90fc9cb"
/>

Scripts table:

<img width="686" height="256" alt="image"
src="https://github.com/user-attachments/assets/848f1b56-6e9e-48d4-9a03-6fdf5427301e"
/>

Profiles empty state:

<img width="700" height="377" alt="image"
src="https://github.com/user-attachments/assets/8f92bcd9-2215-41f6-a540-4774f7e9542b"
/>

Profiles uploader:

<img width="707" height="682" alt="image"
src="https://github.com/user-attachments/assets/eef216af-3447-48e7-882a-e42e888e1c17"
/>
2025-10-17 10:49:59 -05:00
RachelElysia
1ef91fe4e3
Feature: Script only package e2e followup (#34271)
Co-authored-by: Carlo DiCelico <carlo@fleetdm.com>
2025-10-17 10:54:00 -04:00
Luke Heath
f6c4e890f3
Set content width to 100% on manage hosts and query reports pages (#34333) 2025-10-16 09:09:30 -05:00
Luke Heath
ae6c16103c
Consistently implement semibold, standardize header implementations (#34336) 2025-10-16 09:08:22 -05:00
Juan Fernandez
32f2ddaa63
Show warning when viewing settings without auth (#34309)
**Related issue:** Resolves #32229

Show flash warning when viewing settings from a team where auth is not
granted.
2025-10-15 20:01:22 -04:00
Luke Heath
0d2589ff84
Hide overflow in text cell so ellipsis appears (#34320) 2025-10-15 18:01:23 -05:00
jacobshandling
94d801f9e1
3 Unreleased bug fixes (#34218)
# 3 unreleased bug fixes:

## Resolves #34123 
Footer when paginated:
<img width="1519" height="1123" alt="Screenshot 2025-10-14 at 1 23
00 PM"
src="https://github.com/user-attachments/assets/d69d27b4-44e4-4458-92be-e0dfaeab527f"
/>

No footer when only one page:
<img width="1523" height="1007" alt="Screenshot 2025-10-14 at 1 20
45 PM"
src="https://github.com/user-attachments/assets/2d8266bb-c872-4888-98b1-3af7147fd27f"
/>


## Resolves #34169 
Name + description are now truncated:
<img width="1732" height="710" alt="Screenshot 2025-10-14 at 11 11
32 AM"
src="https://github.com/user-attachments/assets/02a60892-e678-413e-a7d4-5c6d39980cd2"
/>


## Resolves #34170 
Labels page no longer re-renders unnecessarily

- [x] QA'd all new/changed functionality manually
- [x] Confirmed that the fix is not expected to adversely impact load
test results
2025-10-15 15:03:54 -07:00
RachelElysia
17245ab0ac
Fleet UI: Payload-free software installs (#33979) 2025-10-15 09:41:43 -04:00
RachelElysia
f6489356fc
Fleet UI: Fix some unreleased bugs for 4.75 (#34098) 2025-10-14 10:53:32 -04:00
Gabriel Hernandez
0d62636c75
allow file protocol in org contact url in UI (#34078)
**Related issue:** Fixes #32902

This allows file protocol urls when setting a support URL via the UI.

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
- [x] QA'd all new/changed functionality manually
2025-10-13 12:18:07 +01:00
RachelElysia
f21e9f67b2
Fleet UI: Remove install tooltip and add timestamp to InstallDetails modal (#33991) 2025-10-08 13:30:58 -04:00
RachelElysia
b7068c2be9
Fleet UI: Update generateResultCountText to handle "certificates" (#33952) 2025-10-07 17:24:05 -04:00
RachelElysia
6edc78d8ec
Fleet UI: Resurface post-install script output (#33765) 2025-10-07 11:02:39 -04:00
Scott Gress
12ab93d9e0
Update "Setting up your device" page for MacOS Setup Experience (#33770)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #33173

# Details

This PR updates the "Setting up your device" page which appears in Linux
and Windows (and as of https://github.com/fleetdm/fleet/issues/30117,
MacOS) setup experiences. Front-end updates:

* Lots of renaming of things that were software-specific to now more
generically refer to "setup step"
* Removed the "My Device" heading
* Moved the info button inside the table header
* Added status of setup script run to the table
* Updated the empty state to not refer specifically to software
* Added optional `setup_only` query param to the `/device` page which,
if set, will always show the "setting up your device" page even if all
setup is complete. Normally as soon as setup finishes, the front-end
redirects to the regular My Device page. In the case of MacOS setup
experience, we don't want this to happen as we expect to either 1) keep
the setup experience up indefinitely if we're blocking device setup on
software install failure, or 2) close the setup dialog on successful
completion. This query param is also handy for testing.
* Added new "Configuration complete" state to be shown when all setup
steps are finished (successfully or not). This is only applicable on
MacOS, since other platforms will redirect to the My Device page when
finished.

This PR also includes one small backend change to the
`/device/{token}/setup_experience/status` API endpoint, to have it
return a `scripts` array alongside the existing `software` array. This
endpoint is not documented publicly.

# 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

- [X] Added/updated automated tests
Updated existing DeviceUserPage tests that check the SettingUpYourDevice
content, and added new tests for the new scripts content and the new
query param.

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

<img width="1028" height="867" alt="Screenshot 2025-10-02 at 7 20 28 PM"
src="https://github.com/user-attachments/assets/7adab2c2-dac1-4463-96fc-13094da2c379"
/>

(note that as of now we'd only have at most one script, showing multiple
here to demonstrate the different states)

<img width="1031" height="524" alt="Screenshot 2025-10-02 at 7 22 01 PM"
src="https://github.com/user-attachments/assets/bedaa840-d7ef-4b6f-8daf-6ac3b447594f"
/>

<img width="1222" height="760" alt="image"
src="https://github.com/user-attachments/assets/42cf82d5-53e0-4c4d-b60e-9ac2cc86af68"
/>

---------

Co-authored-by: Ian Littman <iansltx@gmail.com>
2025-10-06 16:45:53 +01:00
RachelElysia
3dae9c1d44
Fleet UI: Fix header unstyled button (#33724) 2025-10-02 09:35:34 -04:00
RachelElysia
147afd4e5b
Fleet UI: Green progress bar (#33725) 2025-10-02 09:34:50 -04:00
RachelElysia
9cdf51333c
Fleet UI: UX Cleanups to match new patterns (#33730) 2025-10-02 09:34:25 -04:00
RachelElysia
4f6c8800d2
Fleet UI: Fix <dl> tag adverse effect, view all host adverse effect (#33715) 2025-10-01 15:38:45 -04:00
RachelElysia
34a3504c6e
Fleet UI: Animate arrows for host actions dd and reveal buttons (#33660) 2025-09-30 23:01:26 -04:00
RachelElysia
cd9a7be95b
Fleet UI: Followup row hover unreleased fix, comment cleans (#33658) 2025-09-30 22:59:45 -04:00
Luke Heath
25e14ef90d
Add gray default avatar icon and update padding (#33598) 2025-09-30 12:52:06 -05:00
RachelElysia
676fcabe40
Fleet UI: Fix link, info banner spacing, certificates modal padding (#33637) 2025-09-30 13:44:39 -04:00
RachelElysia
4be5f35822
Fleet UI: Update labels page styling (#33628) 2025-09-30 13:43:54 -04:00
RachelElysia
8c7b309450
Fleet UI: Change org logo to light background on product and My Device Page (#33639) 2025-09-30 13:30:55 -04:00
RachelElysia
f283db01b4
Fleet UI: Fix wobble links in truncated text cell links (#33631) 2025-09-30 13:30:44 -04:00
Zach Wasserman
8271c5cea7
Remove console.log in frontend ActionsDropdown (#33613) 2025-09-29 20:50:17 -05:00
RachelElysia
efc64389b1
Fleet UI [Feature]: UI reskin (#33558) 2025-09-29 12:10:41 -05:00
Scott Gress
62799c3ad4
Fix path for Controls top nav link (#33556)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #33222

# Details

This PR fixes an issue where clicking "Controls" in the top nav doesn't
go to the expected page when the current page is a Controls tab like
"Scripts". The expected page is the default "Controls" page, i.e. the
first tab (currently the "OS Settings" tab).

# 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
I made a pass at this but it requires either the router or mocking the
`<Link>/<ContextLink>` components which seems like overkill for this.

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

![33222](https://github.com/user-attachments/assets/e3af7a65-f216-45ee-b75c-40b090608942)
2025-09-29 15:04:31 +01:00
jacobshandling
f9e53aa9a8
Prevent full-page reloads when clicking some currently selected navbar links (#33500)
## For #31752



https://github.com/user-attachments/assets/3eaff439-b2be-4849-a1ae-b21fe8d67b97


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

---------

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2025-09-26 08:51:04 -07:00
Scott Gress
744a723247
Fix ace editor cursor issues on chromeos (#33478)
<!-- Add the related story/sub-task/bug number, like Resolves #123, or
remove if NA -->
**Related issue:** Resolves #30691

# Details

This PR fixes an issue where the cursor in the SQL editor is positioned
incorrectly on ChromeOS and Windows.

Also fixed an incorrect style declaration that was preventing keywords
from being bolded.

Before:
<img width="364" height="103" alt="image"
src="https://github.com/user-attachments/assets/19d9632b-b57b-4a0f-b019-99a7c145da8d"
/>

After:
<img width="363" height="108" alt="image"
src="https://github.com/user-attachments/assets/cbe9aefe-1920-41e5-9212-eb0f8cb51e4b"
/>


# 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

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

Tested on Chrome, Firefox, Safari and Microsoft Edge (where appropriate)
on MacOS, Linux and Windows.

Note that the specified padding does not render on ChromeOS or Windows
(it doesn't in production right now either).
2025-09-25 12:21:49 -05:00
Lucas Manuel Rodriguez
6cf3593ba7
Capitalize "rolling" only OS version column on add support for Manjaro Linux (#33315)
For #32858.

- Capitalize Rolling only on OSs table.
- Manjaro seems to be the most popular version of Arch Linux.
2025-09-24 16:39:36 -03:00
jacobshandling
5893b8186b
UI: Maintain header titles, remove "select all," "clear selection" options and selected item count from Select software table (#33301)
## For #33277 

<img width="1046" height="821" alt="Screenshot 2025-09-22 at 4 26 20 PM"
src="https://github.com/user-attachments/assets/d2e20d88-9795-42c3-91de-d3e7f98b2b6e"
/>


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

---------

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2025-09-23 09:55:18 -07:00