feat: improve manager recovery and expose server pid in dashboard
This commit is contained in:
@@ -19,7 +19,7 @@ export interface Wrapper {
|
||||
|
||||
export interface Server {
|
||||
id: string; name: string; status: string; wrapperId: string; port: number;
|
||||
queryPort: number; players: number; maxPlayers: number; created: number;
|
||||
pid?: number; queryPort: number; players: number; maxPlayers: number; created: number;
|
||||
startedAt?: number; emptySince?: number; alive?: boolean; started?: number;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,8 +5,27 @@ import { PageState } from "../components/PageState";
|
||||
import { StatusBadge } from "../components/StatusBadge";
|
||||
|
||||
const date = (value?: number) => value ? new Date(value).toLocaleString("de-DE") : "–";
|
||||
|
||||
export function ServerDetail() {
|
||||
const { id = "" } = useParams(); const [item, setItem] = useState<Server>(); const [error, setError] = useState<Error>();
|
||||
useEffect(() => { api.server(id).then(setItem).catch(setError); }, [id]); if (!item) return <PageState error={error} />;
|
||||
return <><section className="title"><div><p><Link to="/servers">← Server</Link></p><h1>{item.name}</h1><StatusBadge status={item.status} /></div></section><section className="details"><div><small>ID</small><span>{item.id}</span></div><div><small>Wrapper</small><span>{item.wrapperId}</span></div><div><small>Spieler / Kapazität</small><span>{item.players} / {item.maxPlayers}</span></div><div><small>Port / Query Port</small><span>{item.port} / {item.queryPort}</span></div><div><small>Erstellt</small><span>{date(item.created)}</span></div><div><small>Gestartet</small><span>{date(item.startedAt)}</span></div><div><small>Leer seit</small><span>{date(item.emptySince)}</span></div></section></>;
|
||||
const { id = "" } = useParams();
|
||||
const [item, setItem] = useState<Server>();
|
||||
const [error, setError] = useState<Error>();
|
||||
|
||||
useEffect(() => { api.server(id).then(setItem).catch(setError); }, [id]);
|
||||
|
||||
if (!item) return <PageState error={error} />;
|
||||
|
||||
return <>
|
||||
<section className="title"><div><p><Link to="/servers">← Server</Link></p><h1>{item.name}</h1><StatusBadge status={item.status} /></div></section>
|
||||
<section className="details">
|
||||
<div><small>ID</small><span>{item.id}</span></div>
|
||||
<div><small>Wrapper</small><span>{item.wrapperId}</span></div>
|
||||
<div><small>PID</small><span>{item.pid ?? "–"}</span></div>
|
||||
<div><small>Spieler / Kapazität</small><span>{item.players} / {item.maxPlayers}</span></div>
|
||||
<div><small>Port / Query Port</small><span>{item.port} / {item.queryPort}</span></div>
|
||||
<div><small>Erstellt</small><span>{date(item.created)}</span></div>
|
||||
<div><small>Gestartet</small><span>{date(item.startedAt)}</span></div>
|
||||
<div><small>Leer seit</small><span>{date(item.emptySince)}</span></div>
|
||||
</section>
|
||||
</>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user