UNPKG

@openshift-assisted/ui-lib

Version:

React component library for the Assisted Installer UI

90 lines 6.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const React = tslib_1.__importStar(require("react")); const react_core_1 = require("@patternfly/react-core"); const tableUtils_1 = require("../Agent/tableUtils"); const HostsTable_1 = tslib_1.__importStar(require("../../../common/components/hosts/HostsTable")); const tableUtils_2 = require("../../../common/components/hosts/tableUtils"); const common_1 = require("../../../common"); const MassApproveAgentModal_1 = tslib_1.__importDefault(require("../modals/MassApproveAgentModal")); const MassApproveAction_1 = tslib_1.__importDefault(require("../modals/MassApproveAction")); const usePagination_1 = require("../../../common/components/hosts/usePagination"); const use_translation_wrapper_1 = require("../../../common/hooks/use-translation-wrapper"); const AgentsSelectionTable_1 = require("../Agent/AgentsSelectionTable"); const HostsTableDetailContext_1 = require("../../../common/components/hosts/HostsTableDetailContext"); const agentStatus_1 = require("../helpers/agentStatus"); const helpers_1 = require("../helpers"); const ClusterDeploymentHostDiscoveryTable = ({ agents, bareMetalHosts, infraEnv, onApprove, onChangeHostname, onChangeBMHHostname, onEditRole, onSetInstallationDiskId, onEditHost, onEditBMH, onDeleteHost, width, }) => { const [isDiscoveryHintModalOpen, setDiscoveryHintModalOpen] = React.useState(false); const [isMassChangeHostOpen, setMassChangeHostOpen] = React.useState(false); const [isMassApproveOpen, setMassApproveOpen] = React.useState(false); const [selectedHostIDs, setSelectedHostIDs] = React.useState([]); const { t } = (0, use_translation_wrapper_1.useTranslation)(); const agentStatuses = (0, agentStatus_1.agentStatus)(t); const bmhStatuses = (0, agentStatus_1.bmhStatus)(t); const onSelect = (host, isSelected) => { if (isSelected) { setSelectedHostIDs([...selectedHostIDs, host.id]); } else { setSelectedHostIDs(selectedHostIDs.filter((sa) => sa !== host.id)); } }; const [hosts, hostActions, actionResolver] = (0, tableUtils_1.useAgentsTable)({ agents, bmhs: bareMetalHosts, infraEnv, }, { onEditHost, onEditRole, onEditBMH, onDeleteHost, onSetInstallationDiskId }); const addAll = width && width > 700; const content = React.useMemo(() => [ (0, tableUtils_2.hostnameColumn)(t, hostActions.onEditHost), ...(addAll ? [(0, tableUtils_1.discoveryTypeColumn)(agents, bareMetalHosts, t)] : []), (0, tableUtils_1.agentStatusColumn)({ agents, agentStatuses, bareMetalHosts, bmhStatuses, onEditHostname: onEditHost, onApprove, wizardStepId: 'hosts-discovery', t, }), (0, tableUtils_2.roleColumn)(t, hostActions.canEditRole, hostActions.onEditRole), ...(addAll ? [(0, tableUtils_2.discoveredAtColumn)(t), (0, tableUtils_2.cpuCoresColumn)(t), (0, tableUtils_2.memoryColumn)(t), (0, tableUtils_2.disksColumn)(t)] : []), ], [ t, hostActions.onEditHost, hostActions.canEditRole, hostActions.onEditRole, addAll, agents, bareMetalHosts, agentStatuses, bmhStatuses, onEditHost, onApprove, ]); const selectedAgents = agents.filter((a) => { var _a; return selectedHostIDs.includes(((_a = a.metadata) === null || _a === void 0 ? void 0 : _a.uid) || ''); }); const massActions = [ React.createElement(common_1.ChangeHostnameAction, { key: "hostname", onChangeHostname: () => setMassChangeHostOpen(!isMassChangeHostOpen) }), React.createElement(MassApproveAction_1.default, { key: "approve", onApprove: () => setMassApproveOpen(!isMassApproveOpen), selectedAgents: selectedAgents }), ]; const paginationProps = (0, usePagination_1.usePagination)(hosts.length); const itemIDs = hosts.map((h) => h.id); return (React.createElement(React.Fragment, null, React.createElement(react_core_1.Stack, { hasGutter: true }, React.createElement(react_core_1.StackItem, null, React.createElement(common_1.TableToolbar, Object.assign({ selectedIDs: selectedHostIDs, itemIDs: itemIDs, setSelectedIDs: setSelectedHostIDs, actions: massActions }, paginationProps))), React.createElement(react_core_1.StackItem, null, React.createElement(HostsTableDetailContext_1.HostsTableDetailContextProvider, { canEditDisks: hostActions.canEditDisks, onDiskRole: hostActions.onDiskRole }, React.createElement(HostsTable_1.default, Object.assign({ hosts: hosts, content: content, actionResolver: actionResolver, selectedIDs: selectedHostIDs, setSelectedIDs: setSelectedHostIDs, onSelect: onSelect, ExpandComponent: hostActions.onDiskRole ? AgentsSelectionTable_1.ExpandComponent : HostsTable_1.DefaultExpandComponent }, paginationProps), React.createElement(HostsTable_1.HostsTableEmptyState, { setDiscoveryHintModalOpen: setDiscoveryHintModalOpen }))))), isDiscoveryHintModalOpen && (React.createElement(common_1.DiscoveryTroubleshootingModal, { isOpen: isDiscoveryHintModalOpen, setDiscoveryHintModalOpen: setDiscoveryHintModalOpen })), isMassChangeHostOpen && (React.createElement(common_1.MassChangeHostnameModal, { isOpen: isMassChangeHostOpen, hosts: hosts, selectedHostIDs: selectedHostIDs, onChangeHostname: (0, helpers_1.onAgentChangeHostname)(agents, bareMetalHosts, onChangeHostname, onChangeBMHHostname), onClose: () => setMassChangeHostOpen(false), canChangeHostname: (0, tableUtils_1.canChangeHostname)(agents, agentStatuses, bareMetalHosts, t) })), isMassApproveOpen && (React.createElement(MassApproveAgentModal_1.default, { isOpen: isMassApproveOpen, agents: selectedAgents, onApprove: onApprove, onClose: () => setMassApproveOpen(false) })))); }; exports.default = ClusterDeploymentHostDiscoveryTable; //# sourceMappingURL=ClusterDeploymentHostDiscoveryTable.js.map