diff --git a/frontend/__mocks__/softwareMock.ts b/frontend/__mocks__/softwareMock.ts index 1255296eb2..19b1e5af8c 100644 --- a/frontend/__mocks__/softwareMock.ts +++ b/frontend/__mocks__/softwareMock.ts @@ -201,6 +201,7 @@ export const createMockSoftwareVersionResponse = ( const DEFAULT_SOFTWARE_PACKAGE_MOCK: ISoftwarePackage = { name: "TestPackage-1.2.3.pkg", + title_id: 2, version: "1.2.3", uploaded_at: "2020-01-01T00:00:00.000Z", install_script: "sudo installer -pkg /temp/FalconSensor-6.44.pkg -target /", @@ -220,7 +221,8 @@ const DEFAULT_SOFTWARE_PACKAGE_MOCK: ISoftwarePackage = { automatic_install_policies: [], last_install: null, last_uninstall: null, - package_url: "", + url: "https://fakeurl.testpackageurlforfalconapp.fake/test/package", + hash_sha256: "abcd1234", labels_include_any: null, labels_exclude_any: null, }; diff --git a/frontend/interfaces/software.ts b/frontend/interfaces/software.ts index 8ac5899d0a..c1a5d89dd8 100644 --- a/frontend/interfaces/software.ts +++ b/frontend/interfaces/software.ts @@ -84,9 +84,10 @@ export interface ISoftwareAppStoreAppStatus { export interface ISoftwarePackage { name: string; + title_id: number; last_install: string | null; last_uninstall: string | null; - package_url: string; + url: string; version: string; uploaded_at: string; install_script: string; diff --git a/frontend/pages/SoftwarePage/SoftwareAddPage/SoftwareAppStoreVpp/SoftwareAppStoreVpp.tsx b/frontend/pages/SoftwarePage/SoftwareAddPage/SoftwareAppStoreVpp/SoftwareAppStoreVpp.tsx index 13d32fc551..100b68d326 100644 --- a/frontend/pages/SoftwarePage/SoftwareAddPage/SoftwareAppStoreVpp/SoftwareAppStoreVpp.tsx +++ b/frontend/pages/SoftwarePage/SoftwareAddPage/SoftwareAppStoreVpp/SoftwareAppStoreVpp.tsx @@ -167,7 +167,10 @@ const SoftwareAppStoreVpp = ({ setIsLoading(true); try { - await mdmAppleAPI.addVppApp(currentTeamId, formData); + const { + software_title_id: softwareVppTitleId, + } = await mdmAppleAPI.addVppApp(currentTeamId, formData); + renderFlash( "success", <> @@ -176,7 +179,12 @@ const SoftwareAppStoreVpp = ({ { persistOnPageChange: true } ); - goBackToSoftwareTitles(true); + router.push( + getPathWithQueryParams( + PATHS.SOFTWARE_TITLE_DETAILS(softwareVppTitleId.toString()), + { team_id: currentTeamId } + ) + ); } catch (e) { renderFlash("error", getErrorMessage(e)); } diff --git a/frontend/pages/SoftwarePage/SoftwareAddPage/SoftwareCustomPackage/SoftwareCustomPackage.tsx b/frontend/pages/SoftwarePage/SoftwareAddPage/SoftwareCustomPackage/SoftwareCustomPackage.tsx index 3057c99fb0..bc7a7c1faf 100644 --- a/frontend/pages/SoftwarePage/SoftwareAddPage/SoftwareCustomPackage/SoftwareCustomPackage.tsx +++ b/frontend/pages/SoftwarePage/SoftwareAddPage/SoftwareCustomPackage/SoftwareCustomPackage.tsx @@ -119,7 +119,9 @@ const SoftwareCustomPackage = ({ // Note: This TODO is copied to onSaveSoftwareChanges in EditSoftwareModal // TODO: confirm we are deleting the second sentence (not modifying it) for non-self-service installers try { - await softwareAPI.addSoftwarePackage({ + const { + software_package: { title_id: softwarePackageTitleId }, + } = await softwareAPI.addSoftwarePackage({ data: formData, teamId: currentTeamId, onUploadProgress: (progressEvent) => { @@ -130,24 +132,14 @@ const SoftwareCustomPackage = ({ }, }); - const newQueryParams: QueryParams = { team_id: currentTeamId }; - if (formData.selfService) { - newQueryParams.self_service = true; - } else { - newQueryParams.available_for_install = true; - } + const newQueryParams: QueryParams = { + team_id: currentTeamId, + }; router.push( - getPathWithQueryParams(PATHS.SOFTWARE_TITLES, newQueryParams) - ); - - renderFlash( - "success", - <> - {formData.software?.name} successfully added. - {formData.selfService - ? " The end user can install from Fleet Desktop." - : ""} - + getPathWithQueryParams( + PATHS.SOFTWARE_TITLE_DETAILS(softwarePackageTitleId.toString()), + newQueryParams + ) ); } catch (e) { renderFlash("error", getErrorMessage(e)); diff --git a/frontend/pages/SoftwarePage/SoftwareAddPage/SoftwareFleetMaintained/FleetMaintainedAppDetailsPage/FleetMaintainedAppDetailsPage.tsx b/frontend/pages/SoftwarePage/SoftwareAddPage/SoftwareFleetMaintained/FleetMaintainedAppDetailsPage/FleetMaintainedAppDetailsPage.tsx index d8c0d4bc03..893a6c29e9 100644 --- a/frontend/pages/SoftwarePage/SoftwareAddPage/SoftwareFleetMaintained/FleetMaintainedAppDetailsPage/FleetMaintainedAppDetailsPage.tsx +++ b/frontend/pages/SoftwarePage/SoftwareAddPage/SoftwareFleetMaintained/FleetMaintainedAppDetailsPage/FleetMaintainedAppDetailsPage.tsx @@ -126,6 +126,7 @@ const FleetMaintainedAppDetailsPage = ({ const handlePageError = useErrorHandler(); const { isPremiumTier } = useContext(AppContext); + const { selectedOsqueryTable, setSelectedOsqueryTable } = useContext( QueryContext ); @@ -198,22 +199,21 @@ const FleetMaintainedAppDetailsPage = ({ setShowAddFleetAppSoftwareModal(true); - let titleId: number | undefined; try { - const res = await softwareAPI.addFleetMaintainedApp( - parseInt(teamId, 10), - { - ...formData, - appId, - } - ); - titleId = res.software_title_id; + const { + software_title_id: softwareFmaTitleId, + } = await softwareAPI.addFleetMaintainedApp(parseInt(teamId, 10), { + ...formData, + appId, + }); router.push( - getPathWithQueryParams(PATHS.SOFTWARE_TITLES, { - team_id: teamId, - available_for_install: true, - }) + getPathWithQueryParams( + PATHS.SOFTWARE_TITLE_DETAILS(softwareFmaTitleId.toString()), + { + team_id: teamId, + } + ) ); renderFlash( diff --git a/frontend/pages/SoftwarePage/SoftwareTitleDetailsPage/helpers.tests.ts b/frontend/pages/SoftwarePage/SoftwareTitleDetailsPage/helpers.tests.ts index 95245bb98d..35f3596d4e 100644 --- a/frontend/pages/SoftwarePage/SoftwareTitleDetailsPage/helpers.tests.ts +++ b/frontend/pages/SoftwarePage/SoftwareTitleDetailsPage/helpers.tests.ts @@ -12,6 +12,7 @@ describe("SoftwareTitleDetailsPage helpers", () => { labels_include_any: null, labels_exclude_any: null, name: "TestPackage.pkg", + title_id: 2, version: "1.0.0", self_service: true, uploaded_at: "2021-01-01T00:00:00Z", @@ -28,7 +29,7 @@ describe("SoftwareTitleDetailsPage helpers", () => { automatic_install_policies: [], last_install: null, last_uninstall: null, - package_url: "", + url: "", }, app_store_app: null, source: "apps",