[released bugs] Fleet FE: Bulk host transfer and delete respects all UI page filters (#17263)

This commit is contained in:
RachelElysia 2024-03-06 13:29:14 -05:00 committed by GitHub
parent 30a36b0b3a
commit dfcca55b80
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 139 additions and 18 deletions

View file

@ -13,7 +13,6 @@ export const MANAGE_HOSTS_PAGE_FILTER_KEYS = [
"status",
"mdm_id",
"mdm_enrollment_status",
"os_id",
"os_name",
"os_version",
"munki_issue_id",

View file

@ -1034,21 +1034,33 @@ const ManageHostsPage = ({
setIsUpdatingHosts(true);
const teamId = typeof transferTeam.id === "number" ? transferTeam.id : null;
const currentTeam = teamIdForApi;
let action = hostsAPI.transferToTeam(teamId, selectedHostIds);
if (isAllMatchingHostsSelected) {
const labelId = selectedLabel?.id;
action = hostsAPI.transferToTeamByFilter({
teamId,
query: searchQuery,
status,
labelId,
currentTeam,
});
}
const action = isAllMatchingHostsSelected
? hostsAPI.transferToTeamByFilter({
teamId,
query: searchQuery,
status,
labelId: selectedLabel?.id,
currentTeam: teamIdForApi,
policyId,
policyResponse,
softwareId,
softwareTitleId,
softwareVersionId,
osName,
osVersionId,
osVersion,
macSettingsStatus,
bootstrapPackageStatus,
mdmId,
mdmEnrollmentStatus,
munkiIssueId,
lowDiskSpaceHosts,
osSettings: osSettingsStatus,
diskEncryptionStatus,
vulnerability,
})
: hostsAPI.transferToTeam(teamId, selectedHostIds);
try {
await action;
@ -1075,7 +1087,6 @@ const ManageHostsPage = ({
setIsUpdatingHosts(true);
const teamId = isAnyTeamSelected ? currentTeamId ?? null : null;
const labelId = selectedLabel?.id;
try {
await (isAllMatchingHostsSelected
@ -1083,7 +1094,25 @@ const ManageHostsPage = ({
teamId,
query: searchQuery,
status,
labelId,
labelId: selectedLabel?.id,
currentTeam: teamIdForApi,
policyId,
policyResponse,
softwareId,
softwareTitleId,
softwareVersionId,
osName,
osVersionId,
osVersion,
macSettingsStatus,
bootstrapPackageStatus,
mdmId,
mdmEnrollmentStatus,
munkiIssueId,
lowDiskSpaceHosts,
osSettings: osSettingsStatus,
diskEncryptionStatus,
vulnerability,
})
: hostsAPI.destroyBulk(selectedHostIds));

View file

@ -15,8 +15,10 @@ import {
BootstrapPackageStatus,
IMdmSolution,
MdmProfileStatus,
MdmEnrollmentStatus,
} from "interfaces/mdm";
import { IMunkiIssuesAggregate } from "interfaces/macadmins";
import { PolicyResponse } from "utilities/constants";
export interface ISortOption {
key: string;
@ -117,6 +119,23 @@ export interface IActionByFilter {
status: string;
labelId?: number;
currentTeam?: number | null;
policyId?: number | null;
policyResponse?: PolicyResponse;
softwareId?: number | null;
softwareTitleId?: number | null;
softwareVersionId?: number | null;
osName?: string;
osVersion?: string;
osVersionId?: number | null;
macSettingsStatus?: MacSettingsStatusQueryParam;
bootstrapPackageStatus?: BootstrapPackageStatus;
mdmId?: number | null;
mdmEnrollmentStatus?: MdmEnrollmentStatus;
munkiIssueId?: number | null;
lowDiskSpaceHosts?: number | null;
osSettings?: MdmProfileStatus;
diskEncryptionStatus?: DiskEncryptionStatus;
vulnerability?: string;
}
export type ILoadHostDetailsExtension = "device_mapping" | "macadmins";
@ -173,7 +192,30 @@ export default {
return sendRequest("POST", HOSTS_DELETE, { ids: hostIds });
},
destroyByFilter: ({ teamId, query, status, labelId }: IActionByFilter) => {
destroyByFilter: ({
teamId,
query,
status,
labelId,
currentTeam,
policyId,
policyResponse,
softwareId,
softwareTitleId,
softwareVersionId,
osName,
osVersion,
osVersionId,
macSettingsStatus,
bootstrapPackageStatus,
mdmId,
mdmEnrollmentStatus,
munkiIssueId,
lowDiskSpaceHosts,
osSettings,
diskEncryptionStatus,
vulnerability,
}: IActionByFilter) => {
const { HOSTS_DELETE } = endpoints;
return sendRequest("POST", HOSTS_DELETE, {
filters: {
@ -181,6 +223,23 @@ export default {
status,
label_id: labelId,
team_id: teamId,
policy_id: policyId,
policy_response: policyResponse,
software_id: softwareId,
software_title_id: softwareTitleId,
software_version_id: softwareVersionId,
os_name: osName,
os_version: osVersion,
os_version_id: osVersionId,
macos_settings: macSettingsStatus,
bootstrap_package: bootstrapPackageStatus,
mdm_id: mdmId,
mdm_enrollment_status: mdmEnrollmentStatus,
munki_issue_id: munkiIssueId,
low_disk_space_host: lowDiskSpaceHosts,
os_settings: osSettings,
os_settings_disk_encryption: diskEncryptionStatus,
vulnerability,
},
});
},
@ -361,6 +420,23 @@ export default {
status,
labelId,
currentTeam,
policyId,
policyResponse,
softwareId,
softwareTitleId,
softwareVersionId,
osName,
osVersion,
osVersionId,
macSettingsStatus,
bootstrapPackageStatus,
mdmId,
mdmEnrollmentStatus,
munkiIssueId,
lowDiskSpaceHosts,
osSettings,
diskEncryptionStatus,
vulnerability,
}: IActionByFilter) => {
const { HOSTS_TRANSFER_BY_FILTER } = endpoints;
return sendRequest("POST", HOSTS_TRANSFER_BY_FILTER, {
@ -370,6 +446,23 @@ export default {
status,
label_id: labelId,
team_id: currentTeam,
policy_id: policyId,
policy_response: policyResponse,
software_id: softwareId,
software_title_id: softwareTitleId,
software_version_id: softwareVersionId,
os_name: osName,
os_version: osVersion,
os_version_id: osVersionId,
macos_settings: macSettingsStatus,
bootstrap_package: bootstrapPackageStatus,
mdm_id: mdmId,
mdm_enrollment_status: mdmEnrollmentStatus,
munki_issue_id: munkiIssueId,
low_disk_space_host: lowDiskSpaceHosts,
os_settings: osSettings,
os_settings_disk_encryption: diskEncryptionStatus,
vulnerability,
},
});
},