From 43938526a56b4a69a75a5189f93b875c7c7c96c1 Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Sat, 3 Jun 2023 01:34:48 +0200 Subject: [PATCH] Integrated the new server context into the ConfigurationArea.jsx --- .../ConfigurationArea/ConfigurationArea.jsx | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/client/src/pages/tools/linux/InstallSoftware/components/ConfigurationArea/ConfigurationArea.jsx b/client/src/pages/tools/linux/InstallSoftware/components/ConfigurationArea/ConfigurationArea.jsx index 99989b9..b440e1d 100644 --- a/client/src/pages/tools/linux/InstallSoftware/components/ConfigurationArea/ConfigurationArea.jsx +++ b/client/src/pages/tools/linux/InstallSoftware/components/ConfigurationArea/ConfigurationArea.jsx @@ -1,11 +1,12 @@ import "./styles.sass"; import ConfigurationRow from "@/pages/tools/linux/InstallSoftware/components/ConfigurationRow"; import Button from "@/common/components/Button"; -import {faDownload} from "@fortawesome/free-solid-svg-icons"; +import {faDownload, faServer} from "@fortawesome/free-solid-svg-icons"; import {useContext, useEffect, useState} from "react"; import {createConnection} from "@/common/utils/SocketUtil.js"; import LogArea from "@/pages/tools/linux/InstallSoftware/components/ConfigurationArea/components/LogArea"; -import {ToastNotificationContext} from "@/common/contexts/ToastNotification/index.js"; +import {ToastNotificationContext} from "@/common/contexts/ToastNotification"; +import {ServerContext} from "@/common/contexts/Server"; export const ConfigurationArea = ({current}) => { const updateToast = useContext(ToastNotificationContext); @@ -16,10 +17,17 @@ export const ConfigurationArea = ({current}) => { return {name: configuration.id, value: useState(configuration.value)} }); + const servers = useContext(ServerContext)[0]; + const [selectedServer, setSelectedServer] = useState(servers[0]?.id); const [steps, setSteps] = useState([]); const [completedSteps, setCompletedSteps] = useState([]); const [failedStep, setFailedStep] = useState(null); + useEffect(() => { + if (servers.length > 0 && servers.find((server) => server.id === selectedServer) === undefined) + setSelectedServer(servers[0].id); + }, [servers]) + const disconnect = () => { connection.disconnect(); setConnection(createConnection("app")); @@ -32,6 +40,13 @@ export const ConfigurationArea = ({current}) => { }, []); const update = () => { + const server = servers.find((server) => server.id === selectedServer); + + if (!server) { + updateToast("Füge erst einen Server hinzu", "red"); + return; + } + let data = {}; states.forEach((state) => { data[state.name] = state.value[0]; @@ -45,8 +60,8 @@ export const ConfigurationArea = ({current}) => { connection.on("connect", async () => { connection.emit("login", { - host: prompt("Host", "localhost"), - password: prompt("Password", "password") + host: server.hostname, username: server.username, password: server.password, + privateKey: server.privateKey }); connection.on("login", (event) => { @@ -89,6 +104,10 @@ export const ConfigurationArea = ({current}) => { setValue={states.find((s) => s.name === configuration.id)?.value[1]}/> })} + {servers.length !== 0 && { + return {value: server.id, text: server.hostname} + })} value={selectedServer} setValue={setSelectedServer} />} +