From f9a1bc6c9b466e6f980ba7810a50bf22408df24c Mon Sep 17 00:00:00 2001 From: Matthew Penner Date: Fri, 4 Dec 2020 09:48:47 -0700 Subject: [PATCH] Show installing status instead of offline when a server is installing --- .../Servers/Network/NewAllocationRequest.php | 3 --- .../components/server/ServerDetailsBlock.tsx | 22 ++++++++++++++++--- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/app/Http/Requests/Api/Client/Servers/Network/NewAllocationRequest.php b/app/Http/Requests/Api/Client/Servers/Network/NewAllocationRequest.php index 7628afaaf..4a29378dd 100644 --- a/app/Http/Requests/Api/Client/Servers/Network/NewAllocationRequest.php +++ b/app/Http/Requests/Api/Client/Servers/Network/NewAllocationRequest.php @@ -2,8 +2,6 @@ namespace Pterodactyl\Http\Requests\Api\Client\Servers\Network; -use Illuminate\Support\Collection; -use Pterodactyl\Models\Allocation; use Pterodactyl\Models\Permission; use Pterodactyl\Http\Requests\Api\Client\ClientApiRequest; @@ -16,5 +14,4 @@ class NewAllocationRequest extends ClientApiRequest { return Permission::ACTION_ALLOCATION_CREATE; } - } diff --git a/resources/scripts/components/server/ServerDetailsBlock.tsx b/resources/scripts/components/server/ServerDetailsBlock.tsx index 321c01943..0d87089c1 100644 --- a/resources/scripts/components/server/ServerDetailsBlock.tsx +++ b/resources/scripts/components/server/ServerDetailsBlock.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useState } from 'react'; -import tw from 'twin.macro'; +import tw, { TwStyle } from 'twin.macro'; import { faCircle, faEthernet, faHdd, faMemory, faMicrochip, faServer } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { bytesToHuman, megabytesToHuman } from '@/helpers'; @@ -13,6 +13,21 @@ interface Stats { disk: number; } +function statusToColor (status: string|null, installing: boolean): TwStyle { + if (installing) { + status = ''; + } + + switch (status) { + case 'offline': + return tw`text-red-500`; + case 'running': + return tw`text-green-500`; + default: + return tw`text-yellow-500`; + } +} + const ServerDetailsBlock = () => { const [ stats, setStats ] = useState({ memory: 0, cpu: 0, disk: 0 }); @@ -49,6 +64,7 @@ const ServerDetailsBlock = () => { }, [ instance, connected ]); const name = ServerContext.useStoreState(state => state.server.data!.name); + const isInstalling = ServerContext.useStoreState(state => state.server.data!.isInstalling); const limits = ServerContext.useStoreState(state => state.server.data!.limits); const primaryAllocation = ServerContext.useStoreState(state => state.server.data!.allocations.filter(alloc => alloc.isDefault).map( allocation => (allocation.alias || allocation.ip) + ':' + allocation.port @@ -65,10 +81,10 @@ const ServerDetailsBlock = () => { fixedWidth css={[ tw`mr-1`, - status === 'offline' ? tw`text-red-500` : (status === 'running' ? tw`text-green-500` : tw`text-yellow-500`), + statusToColor(status, isInstalling), ]} /> -  {!status ? 'Connecting...' : status} +  {!status ? 'Connecting...' : (isInstalling ? 'Installing' : status)}