mirror of
https://github.com/fleetdm/fleet
synced 2026-05-24 09:28:54 +00:00
[released bugs] Fleet FE: Bulk host transfer and delete respects all UI page filters (#17263)
This commit is contained in:
parent
30a36b0b3a
commit
dfcca55b80
3 changed files with 139 additions and 18 deletions
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
},
|
||||
});
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in a new issue