Export hosts to CSV with selected columns (#5841)

This commit is contained in:
Luke Heath 2022-05-23 22:46:40 -05:00 committed by GitHub
parent 44eb7c1b3f
commit b1028465e1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 29 additions and 4 deletions

View file

@ -0,0 +1 @@
* Export hosts to csv with selected columns only.

View file

@ -1280,6 +1280,27 @@ const ManageHostsPage = ({
) => {
evt.preventDefault();
const hiddenColumnsStorage = localStorage.getItem("hostHiddenColumns");
let currentHiddenColumns;
let visibleColumns;
if (hiddenColumnsStorage) {
currentHiddenColumns = JSON.parse(hiddenColumnsStorage);
}
if (config && currentUser) {
const tableColumns = generateVisibleTableColumns(
currentHiddenColumns,
config,
currentUser,
currentTeam
);
const columnAccessors = tableColumns
.map((column) => (column.accessor ? column.accessor : ""))
.filter((element) => element);
visibleColumns = columnAccessors.join(",");
}
let options = {
selectedLabels: selectedFilters,
globalFilter: searchQuery,
@ -1288,6 +1309,7 @@ const ManageHostsPage = ({
policyId,
policyResponse,
softwareId,
visibleColumns,
};
options = {
@ -1500,9 +1522,6 @@ const ManageHostsPage = ({
currentTeam
);
const columnAccessors = tableColumns.map((column) => column.accessor);
columnAccessors.shift();
return (
<TableContainer
columns={tableColumns}

View file

@ -20,6 +20,7 @@ export interface ILoadHostsOptions {
softwareId?: number;
device_mapping?: boolean;
columns?: string;
visibleColumns?: string;
}
export type ILoadHostDetailsExtension = "device_mapping" | "macadmins";
@ -61,7 +62,7 @@ export default {
const policyId = options?.policyId || null;
const policyResponse = options?.policyResponse || null;
const softwareId = options?.softwareId || null;
const columns = options?.columns || null;
const visibleColumns = options?.visibleColumns || null;
let orderKeyParam = "";
let orderDirection = "";
@ -113,6 +114,10 @@ export default {
path += `&software_id=${softwareId}`;
}
if (visibleColumns) {
path += `&columns=${visibleColumns}`;
}
path += "&format=csv";
return sendRequest("GET", path);