import { useRef, useState } from "react"; import { useMutation, useQueryClient } from "@tanstack/react-query"; import { Button } from "@launchpad/ui"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faSun, faMoon } from "@fortawesome/free-solid-svg-icons"; import { useBackendHealth } from "../../hooks/useBackendHealth.js"; import { useTheme } from "../../hooks/useTheme.js"; import { useSettings } from "../../hooks/useSettings.js"; import { AdminPageHeader } from "./AdminPageHeader.js"; function InfoRow({ label, value }: { label: string; value: string }) { return (
{hint}
Exportiert Geräte und Dienste in einer Datei. Import legt ausschließlich neue Einträge an – bereits vorhandene Geräte (Abgleich über IP/Hostname) und Dienste (Abgleich über Gerät + Port) werden übersprungen, nie überschrieben oder verdoppelt.
{result.devicesImported} Gerät(e) + {result.servicesImported} Dienst(e) importiert,{" "} {result.devicesSkipped + result.servicesSkipped} übersprungen (bereits vorhanden) {result.errors.length > 0 ? `, ${result.errors.length} Fehler: ${result.errors.join(" | ")}` : "."}
) : null}
Eine Zeile pro Eintrag, mit einer Spalte{" "}
type ={" "}
device oder{" "}
service. Am
einfachsten: erst exportieren, die Datei als Vorlage nehmen.
Geräte-Zeilen brauchen:{" "}
hostname,{" "}
ip (Pflicht),
optional mac,{" "}
manufacturer,{" "}
model.
Dienst-Zeilen brauchen:{" "}
displayName,{" "}
hostname,{" "}
port,{" "}
url (Pflicht),
plus deviceHostname{" "}
und deviceIp, um
sie einem Gerät zuzuordnen (wird bei Bedarf automatisch angelegt). Optional:{" "}
category,{" "}
alias (mit{" "}
; getrennt),{" "}
favorite,{" "}
visible,{" "}
https (jeweils{" "}
true/
false),{" "}
order (Zahl).
Löscht alle Geräte und alle zugehörigen Dienste unwiderruflich. Kategorien und Logs bleiben erhalten.
{message ? ({message}
) : null}Prüft in regelmäßigem Abstand per Ping, ob ein Gerät erreichbar ist, und aktualisiert nur dessen Online-Punkt. Legt nie neue Dienste an und schlägt nie Namen/Kategorien vor – das bleibt weiterhin ausschließlich manuellen Scans vorbehalten. Standardmäßig aus.
Root-CA-Zertifikat herunterladen und auf deinen Geräten als vertrauenswürdig einstufen, um die Browser-Warnung dauerhaft loszuwerden (einmal pro Gerät).
Backend nicht erreichbar.
) : health ? (Lade …
)}