From ee9950f2b2b8cd637cb1edfe885d4c7962616e13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20D=C3=ADaz=20Gonz=C3=A1lez?= Date: Tue, 24 Mar 2026 14:39:37 +0000 Subject: [PATCH 1/2] feat(web): allow log downloads from the finished installation page By replacing the `minimal` Page variant with a layout that includes the InstallerOptionsMenu in the end slot, giving users access to config and log downloads from the installation finished screen. --- .../core/InstallationFinished.test.tsx | 19 +++++++++++++++++++ .../components/core/InstallationFinished.tsx | 3 ++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/web/src/components/core/InstallationFinished.test.tsx b/web/src/components/core/InstallationFinished.test.tsx index 09d58bb41e..ff597647d3 100644 --- a/web/src/components/core/InstallationFinished.test.tsx +++ b/web/src/components/core/InstallationFinished.test.tsx @@ -102,6 +102,25 @@ describe("InstallationFinished", () => { screen.getByRole("button", { name: /Reboot/i }); }); + it("shows the installer options menu", async () => { + installerRender(); + screen.getByRole("button", { name: /More installer options/i }); + }); + + it("includes an option for downloading the logs", async () => { + const { user } = installerRender(); + await user.click(screen.getByRole("button", { name: /More installer options/i })); + const menuitem = screen.getByRole("menuitem", { name: /Download logs/i }); + expect(menuitem).toHaveAttribute("download"); + }); + + it("includes an option for downloading the config", async () => { + const { user } = installerRender(); + await user.click(screen.getByRole("button", { name: /More installer options/i })); + const menuitem = screen.getByRole("menuitem", { name: /Download config/i }); + expect(menuitem).toHaveAttribute("download"); + }); + describe("when running storage config in raw mode", () => { beforeEach(() => { mockUseExtendedConfigFn.mockReturnValue(mockStorageConfig("raw", null)); diff --git a/web/src/components/core/InstallationFinished.tsx b/web/src/components/core/InstallationFinished.tsx index 95e28ca8fd..3bc297f344 100644 --- a/web/src/components/core/InstallationFinished.tsx +++ b/web/src/components/core/InstallationFinished.tsx @@ -32,6 +32,7 @@ import { } from "@patternfly/react-core"; import Page from "~/components/core/Page"; import RebootButton from "~/components/core/RebootButton"; +import InstallerOptionsMenu from "~/components/core/InstallerOptionsMenu"; import SplitInfoLayout from "~/components/layout/SplitInfoLayout"; import { useExtendedConfig } from "~/hooks/model/config"; import { _ } from "~/i18n"; @@ -92,7 +93,7 @@ function InstallationFinished() { const mountTpmAlert = usingTpm(storageConfig); return ( - + }> Date: Tue, 24 Mar 2026 14:45:46 +0000 Subject: [PATCH 2/2] doc(web): update changes file --- web/package/agama-web-ui.changes | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/web/package/agama-web-ui.changes b/web/package/agama-web-ui.changes index 6d1eac996f..7750e63e15 100644 --- a/web/package/agama-web-ui.changes +++ b/web/package/agama-web-ui.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Mar 24 14:45:14 UTC 2026 - David Diaz + +- Allow downloading logs and config from the installation finished + page (gh#agama-project/agama#3329). + ------------------------------------------------------------------- Thu Mar 19 16:35:10 UTC 2026 - David Diaz