import React, {useContext, useState} from "react"; import { Button, Descriptions, Flex, Popconfirm, Space, Tooltip, Typography } from "antd"; import { ExclamationCircleOutlined } from "@ant-design/icons"; import * as lib from "@clusterio/lib"; import PluginExtra from "./PluginExtra"; import LogConsole, { SelectMaxLogLevel } from "./LogConsole"; import { MetricCpuRatio, MetricCpuUsed, MetricMemoryRatio, MetricMemoryUsed, MetricDiskUsed, MetricDiskRatio, } from "./system_metrics"; import { useAccount } from "../model/account"; import { useSystems } from "../model/system"; import ControlContext from "./ControlContext"; import ControllerConfigTree from "./ControllerConfigTree"; import PageHeader from "./PageHeader"; import PageLayout from "./PageLayout"; import { notifyErrorHandler } from "../util/notify"; import webUiPackage from "../../package.json"; import { hasNpmButtonPermission, NpmButton } from "./NpmButton"; const { Title } = Typography; export default function ControllerPage() { let account = useAccount(); const control = useContext(ControlContext); const [systems] = useSystems(); const system = systems.get("controller"); const [maxLevel, setMaxLevel] = useState("info"); return { account.hasPermission("core.controller.stop") && Stopping the controller will leave the cluster inoperable until someone with access to the system it runs on manually starts it again.
Are you sure you want to stop the controller? } placement="bottomRight" okText="Stop" okButtonProps={{ danger: true }} onConfirm={() => { control.send( new lib.ControllerStopRequest() ).catch(notifyErrorHandler("Error stopping controller")); }} >
} { account.hasPermission("core.controller.restart") && } { hasNpmButtonPermission(true) && } } /> {webUiPackage.version} {system?.node} {system?.kernel} {system?.machine} {system?.hostname} {system?.cpuModel} {account.hasPermission("core.log.follow") && <> Console } {account.hasPermission("core.controller.get_config") && }
; };