mirror of
https://github.com/fleetdm/fleet
synced 2026-04-30 09:57:37 +00:00
relates to #10935 This is the UI for all the flows around adding, removing, downloading, and viewing information about a bootstrap package for fleet mdm. This is pretty comprehensive but includes: ### Backend **Update `Get host/id`** to include bootstrap package name ```json { "macos_setup": { ... "bootstrap_package_name": "test.pkg" } } ``` ### Frontend **UI for ABM not being set up**:  **UIs for uploading, downloading, and deleting bootstrap package**:    **UIs for seeing bootstrap status aggregate data**  **UIs for filtering hosts by bootstrap status**  **UIs for seeing package status on host details and my device page**:   - [x] Changes file added for user-visible changes in `changes/` or `orbit/changes/`. See [Changes files](https://fleetdm.com/docs/contributing/committing-changes#changes-files) for more information. - [x] Manual QA for all new/changed functionality --------- Co-authored-by: Roberto Dip <dip.jesusr@gmail.com> Co-authored-by: gillespi314 <73313222+gillespi314@users.noreply.github.com> Co-authored-by: Martin Angers <martin.n.angers@gmail.com>
49 lines
1 KiB
TypeScript
49 lines
1 KiB
TypeScript
import React from "react";
|
|
import classnames from "classnames";
|
|
|
|
import Button from "components/buttons/Button";
|
|
import Icon from "components/Icon";
|
|
import { IconNames } from "components/icons";
|
|
|
|
const baseClass = "file-uploader";
|
|
|
|
interface IFileUploaderProps {
|
|
icon: IconNames;
|
|
message: string;
|
|
isLoading?: boolean;
|
|
accept?: string;
|
|
className?: string;
|
|
onFileUpload: (files: FileList | null) => void;
|
|
}
|
|
|
|
const FileUploader = ({
|
|
icon,
|
|
message,
|
|
isLoading = false,
|
|
accept,
|
|
className,
|
|
onFileUpload,
|
|
}: IFileUploaderProps) => {
|
|
const classes = classnames(baseClass, className);
|
|
|
|
return (
|
|
<div className={classes}>
|
|
<Icon name={icon} />
|
|
<p>{message}</p>
|
|
<Button variant="brand" isLoading={isLoading}>
|
|
<label htmlFor="upload-profile">Upload</label>
|
|
</Button>
|
|
<input
|
|
accept={accept}
|
|
id="upload-profile"
|
|
type="file"
|
|
onChange={(e) => {
|
|
onFileUpload(e.target.files);
|
|
e.target.value = "";
|
|
}}
|
|
/>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default FileUploader;
|