diff --git a/changes/48177-rename-create-buttons-to-add b/changes/48177-rename-create-buttons-to-add new file mode 100644 index 0000000000..714ab865f4 --- /dev/null +++ b/changes/48177-rename-create-buttons-to-add @@ -0,0 +1 @@ +- Renamed "Create" buttons and links to "Add" across the Fleet UI for consistency. diff --git a/frontend/components/CommandPalette/groups/commands.ts b/frontend/components/CommandPalette/groups/commands.ts index 5f6840f34e..e1cf1a5c32 100644 --- a/frontend/components/CommandPalette/groups/commands.ts +++ b/frontend/components/CommandPalette/groups/commands.ts @@ -34,14 +34,14 @@ const buildCommandsItems = ( } = derived; return [ - // Create new pack — companion to the "Packs" page in pages.ts. Shares + // Add new pack — companion to the "Packs" page in pages.ts. Shares // the same search-regex condition. Kept here so the Commands group // stays self-contained. ...(/packs|create new pack|add new pack/.test(search.toLowerCase()) ? [ { id: "new-pack", - label: "Create new pack", + label: "Add new pack", group: "Commands" as const, path: paths.NEW_PACK, keywords: ["packs", "add new pack", "create new pack"], @@ -470,14 +470,14 @@ const buildCommandsItems = ( "create user", ], }, - // Create fleet — Premium-only, hidden in Primo Mode, and + // Add fleet — Premium-only, hidden in Primo Mode, and // hidden in GitOps Mode (ManageFleetsPage disables the // primary action in all three states). ...(isPremiumTier && !isPrimoMode && !isGitOpsMode ? [ { id: "create-fleet", - label: "Create fleet", + label: "Add fleet", group: "Commands" as const, path: `${paths.ADMIN_FLEETS}?create_fleet=1`, keywords: [ diff --git a/frontend/components/CommandPalette/groups/derivations.ts b/frontend/components/CommandPalette/groups/derivations.ts index 0c4cd8e22e..7e0d5a898e 100644 --- a/frontend/components/CommandPalette/groups/derivations.ts +++ b/frontend/components/CommandPalette/groups/derivations.ts @@ -42,7 +42,7 @@ export const deriveContext = (ctx: ICommandPaletteContext): IDerivedContext => { const isAbmConfigured = config?.mdm?.apple_bm_enabled_and_configured ?? false; // GitOps mode disables write actions in the UI; mirrors the predicate - // ManageFleetsPage uses to disable its Create fleet button. + // ManageFleetsPage uses to disable its Add fleet button. const isGitOpsMode = !!( config?.gitops?.gitops_mode_enabled && config?.gitops?.repository_url ); diff --git a/frontend/components/CommandPalette/groups/pages.ts b/frontend/components/CommandPalette/groups/pages.ts index 2f736479d4..0e5aa25a2b 100644 --- a/frontend/components/CommandPalette/groups/pages.ts +++ b/frontend/components/CommandPalette/groups/pages.ts @@ -159,7 +159,7 @@ const buildPagesItems = ( }, // Packs page — only visible when searching for "packs" or similar. - // The companion "Create new pack" item lives in commands.ts. + // The companion "Add new pack" item lives in commands.ts. ...(/packs|create new pack|add new pack/.test(search.toLowerCase()) ? [ { diff --git a/frontend/components/CommandPalette/helpers.tests.ts b/frontend/components/CommandPalette/helpers.tests.ts index 0369e379fa..862a413046 100644 --- a/frontend/components/CommandPalette/helpers.tests.ts +++ b/frontend/components/CommandPalette/helpers.tests.ts @@ -591,7 +591,7 @@ describe("CommandPalette helpers", () => { expect(items.map((i) => i.id)).toContain("manage-report-automations"); }); - it("shows Create fleet only for admins", () => { + it("shows Add fleet only for admins", () => { const adminItems = buildPaletteItems(BASE_CONTEXT); expect(adminItems.map((i) => i.id)).toContain("create-fleet"); diff --git a/frontend/pages/admin/ManageFleetsPage/ManageFleetsPage.tsx b/frontend/pages/admin/ManageFleetsPage/ManageFleetsPage.tsx index 2353af7e75..1a12849327 100644 --- a/frontend/pages/admin/ManageFleetsPage/ManageFleetsPage.tsx +++ b/frontend/pages/admin/ManageFleetsPage/ManageFleetsPage.tsx @@ -64,7 +64,7 @@ const ManageFleetsPage = ({ const [isUpdatingFleets, setIsUpdatingFleets] = useState(false); const [showCreateFleetModal, setShowCreateFleetModal] = useState(false); - // Mirror the gate used by the in-page "Create fleet" button: + // Mirror the gate used by the in-page "Add fleet" button: // Primo mode and GitOps mode both disable creation. const isCreateFleetDisabled = !!config?.partnerships?.enable_primo || @@ -344,7 +344,7 @@ const ManageFleetsPage = ({ defaultSortDirection="asc" actionButton={{ name: "create fleet", - buttonText: "Create fleet", + buttonText: "Add fleet", variant: "default", onClick: toggleCreateFleetModal, hideButton: false, @@ -358,7 +358,7 @@ const ManageFleetsPage = ({ onClick={toggleCreateFleetModal} className={`${noFleetsClass}__create-button`} > - Create fleet + Add fleet ); const primaryButton = disabledPrimaryActionTooltip ? ( @@ -377,7 +377,7 @@ const ManageFleetsPage = ({ return ( ); diff --git a/frontend/pages/admin/ManageFleetsPage/TeamDetailsWrapper/UsersPage/UsersPage.tsx b/frontend/pages/admin/ManageFleetsPage/TeamDetailsWrapper/UsersPage/UsersPage.tsx index 0a82079cd4..992feaf336 100644 --- a/frontend/pages/admin/ManageFleetsPage/TeamDetailsWrapper/UsersPage/UsersPage.tsx +++ b/frontend/pages/admin/ManageFleetsPage/TeamDetailsWrapper/UsersPage/UsersPage.tsx @@ -396,8 +396,8 @@ const UsersPage = ({ location, router }: ITeamSubnavProps): JSX.Element => { defaultSortHeader="name" defaultSortDirection="asc" actionButton={{ - name: isGlobalAdmin ? "add user" : "create user", - buttonText: isGlobalAdmin ? "Add users" : "Create user", + name: "add user", + buttonText: isGlobalAdmin ? "Add users" : "Add user", variant: "default", onClick: isGlobalAdmin ? toggleAddUserModal : toggleCreateUserModal, hideButton: userIds.length === 0 && searchString === "", diff --git a/frontend/pages/admin/ManageFleetsPage/TeamDetailsWrapper/UsersPage/components/AddUsersModal/AddUsersModal.tsx b/frontend/pages/admin/ManageFleetsPage/TeamDetailsWrapper/UsersPage/components/AddUsersModal/AddUsersModal.tsx index 56ca8afbaf..62f8485dc2 100644 --- a/frontend/pages/admin/ManageFleetsPage/TeamDetailsWrapper/UsersPage/components/AddUsersModal/AddUsersModal.tsx +++ b/frontend/pages/admin/ManageFleetsPage/TeamDetailsWrapper/UsersPage/components/AddUsersModal/AddUsersModal.tsx @@ -63,7 +63,7 @@ const AddUsersModal = ({

User not here? 

diff --git a/frontend/pages/admin/ManageFleetsPage/TeamDetailsWrapper/UsersPage/components/EmptyUsersTable.tsx b/frontend/pages/admin/ManageFleetsPage/TeamDetailsWrapper/UsersPage/components/EmptyUsersTable.tsx index e1ee074b03..17f3d41824 100644 --- a/frontend/pages/admin/ManageFleetsPage/TeamDetailsWrapper/UsersPage/components/EmptyUsersTable.tsx +++ b/frontend/pages/admin/ManageFleetsPage/TeamDetailsWrapper/UsersPage/components/EmptyUsersTable.tsx @@ -53,7 +53,7 @@ const CreateUserButton = ({ onClick={toggleCreateMemberModal} disabled={disabled} > - Create user + Add user ); }; diff --git a/frontend/pages/admin/ManageFleetsPage/components/CreateFleetModal/CreateFleetModal.tsx b/frontend/pages/admin/ManageFleetsPage/components/CreateFleetModal/CreateFleetModal.tsx index 9d180fa2ad..87aa1225f5 100644 --- a/frontend/pages/admin/ManageFleetsPage/components/CreateFleetModal/CreateFleetModal.tsx +++ b/frontend/pages/admin/ManageFleetsPage/components/CreateFleetModal/CreateFleetModal.tsx @@ -50,7 +50,7 @@ const CreateFleetModal = ({ ); return ( - +
Account
{ ).toBeInTheDocument(); }); - it("shows Create a fleet link when user is global admin", () => { + it("shows Add a fleet link when user is global admin", () => { setup({ isGlobalAdmin: true }); - expect(screen.getByText(/Create a fleet/i)).toBeInTheDocument(); + expect(screen.getByText(/Add a fleet/i)).toBeInTheDocument(); }); - it("does not show Create a fleet link when not global admin", () => { + it("does not show Add a fleet link when not global admin", () => { setup({ isGlobalAdmin: false }); - expect(screen.queryByText(/Create a fleet/i)).not.toBeInTheDocument(); + expect(screen.queryByText(/Add a fleet/i)).not.toBeInTheDocument(); }); it("disables Transfer button until a team is selected", () => { diff --git a/frontend/pages/hosts/components/TransferHostModal/TransferHostModal.tsx b/frontend/pages/hosts/components/TransferHostModal/TransferHostModal.tsx index 8eec9669f7..8d82753f27 100644 --- a/frontend/pages/hosts/components/TransferHostModal/TransferHostModal.tsx +++ b/frontend/pages/hosts/components/TransferHostModal/TransferHostModal.tsx @@ -111,7 +111,7 @@ const TransferHostModal = ({

) : null} diff --git a/frontend/pages/hosts/details/HostDetailsPage/modals/SelectReportModal/SelectReportModal.tests.tsx b/frontend/pages/hosts/details/HostDetailsPage/modals/SelectReportModal/SelectReportModal.tests.tsx index c386ac1185..f9e1a76ad9 100644 --- a/frontend/pages/hosts/details/HostDetailsPage/modals/SelectReportModal/SelectReportModal.tests.tsx +++ b/frontend/pages/hosts/details/HostDetailsPage/modals/SelectReportModal/SelectReportModal.tests.tsx @@ -28,7 +28,7 @@ const baseProps = { }; describe("SelectReportModal", () => { - it("renders empty state with Create a report link when user can create", async () => { + it("renders empty state with Add a report link when user can create", async () => { mockServer.use(createReportsHandler([])); const render = createCustomRenderer({ withBackendMock: true, @@ -43,11 +43,11 @@ describe("SelectReportModal", () => { render(); expect(await screen.findByText("No saved reports")).toBeInTheDocument(); - expect(screen.getByText("Create a report")).toBeInTheDocument(); + expect(screen.getByText("Add a report")).toBeInTheDocument(); expect(screen.getByText(/to run\./)).toBeInTheDocument(); }); - it("renders empty state without Create a report link for observer-only users", async () => { + it("renders empty state without Add a report link for observer-only users", async () => { mockServer.use(createReportsHandler([])); const render = createCustomRenderer({ withBackendMock: true, @@ -65,7 +65,7 @@ describe("SelectReportModal", () => { expect( screen.getByText("No reports are available to run.") ).toBeInTheDocument(); - expect(screen.queryByText("Create a report")).not.toBeInTheDocument(); + expect(screen.queryByText("Add a report")).not.toBeInTheDocument(); }); it("renders report list when reports exist", async () => { diff --git a/frontend/pages/hosts/details/HostDetailsPage/modals/SelectReportModal/SelectReportModal.tsx b/frontend/pages/hosts/details/HostDetailsPage/modals/SelectReportModal/SelectReportModal.tsx index a762435676..70ded6ad43 100644 --- a/frontend/pages/hosts/details/HostDetailsPage/modals/SelectReportModal/SelectReportModal.tsx +++ b/frontend/pages/hosts/details/HostDetailsPage/modals/SelectReportModal/SelectReportModal.tsx @@ -173,7 +173,7 @@ const SelectReportModal = ({ canCreateReport ? ( <> {" "} to run. diff --git a/frontend/pages/packs/ManagePacksPage/ManagePacksPage.tsx b/frontend/pages/packs/ManagePacksPage/ManagePacksPage.tsx index 945e510aaa..a28015eb77 100644 --- a/frontend/pages/packs/ManagePacksPage/ManagePacksPage.tsx +++ b/frontend/pages/packs/ManagePacksPage/ManagePacksPage.tsx @@ -169,7 +169,7 @@ const ManagePacksPage = ({ router }: IManagePacksPageProps): JSX.Element => { className={`${baseClass}__create-button`} onClick={onCreatePackClick} > - Create new pack + Add new pack )} diff --git a/frontend/pages/packs/ManagePacksPage/components/PacksTable/PacksTable.tsx b/frontend/pages/packs/ManagePacksPage/components/PacksTable/PacksTable.tsx index 24f6daef45..2d6ce5258c 100644 --- a/frontend/pages/packs/ManagePacksPage/components/PacksTable/PacksTable.tsx +++ b/frontend/pages/packs/ManagePacksPage/components/PacksTable/PacksTable.tsx @@ -68,7 +68,7 @@ const PacksTable = ({ className={`${baseClass}__create-button`} onClick={onCreatePackClick} > - Create new pack + Add new pack ), };