diff --git a/CHANGELOG.md b/CHANGELOG.md index 2adcdcc5a02..e2c62766280 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,17 @@ This file is a running track of new features and fixes to each version of the pa This project follows [Semantic Versioning](http://semver.org) guidelines. +## v3.6.0-beta + +### Fixed + +- IPv6 addresses wouldn't display in client area settings +- Confusing "account password" placeholder when creating a server in the admin area + +### Added + +- Ability to view IP addresses of a server on the dashboard in the client area + ## v3.5.1-beta ### Added diff --git a/resources/scripts/components/admin/servers/CreateServerModal.tsx b/resources/scripts/components/admin/servers/CreateServerModal.tsx index 8f3207c7432..dbd14e56a5f 100644 --- a/resources/scripts/components/admin/servers/CreateServerModal.tsx +++ b/resources/scripts/components/admin/servers/CreateServerModal.tsx @@ -173,7 +173,6 @@ const CreateServerModal = ({ nodeId, userId, open, onClose }: Props) => { { + const server = ServerContext.useStoreState(state => state.server.data!) + + const addresses = useMemo( + () => [...server.limits.addresses.ipv4, ...server.limits.addresses.ipv6], + [server.limits.addresses] + ) + + return ( + +
Network
+
+
+
IP Addresses
+ {addresses.length === 0 ? ( +
There are no addresses associated with this server.
+ ) : ( + + {addresses.map(ip => ( + +
+

Address

+

+ {ip.address}/{ip.cidr} +

+
+
+

Gateway

+

{ip.gateway}

+
+
+

Mac Address

+

{ip.macAddress || 'None'}

+
+
+ ))} +
+ )} +
+
+
+ ) +} + +export default ServerNetworkBlock diff --git a/resources/scripts/components/servers/overview/ServerOverviewContainer.tsx b/resources/scripts/components/servers/overview/ServerOverviewContainer.tsx index 09c6129d242..aa6c3e6748c 100644 --- a/resources/scripts/components/servers/overview/ServerOverviewContainer.tsx +++ b/resources/scripts/components/servers/overview/ServerOverviewContainer.tsx @@ -1,5 +1,6 @@ import ServerAdminBlock from '@/components/servers/overview/ServerAdminBlock' import ServerDetailsBlock from '@/components/servers/overview/ServerDetailsBlock' +import ServerNetworkBlock from '@/components/servers/overview/ServerNetworkBlock' import ServerPowerBlock from '@/components/servers/overview/ServerPowerBlock' import ServerTerminalBlock from '@/components/servers/overview/ServerTerminalBlock' import ServerContentBlock from '@/components/servers/ServerContentBlock' @@ -13,6 +14,7 @@ const ServerOverviewContainer = () => {
+ {rootAdmin && }
diff --git a/resources/scripts/components/servers/settings/HardwareContainer.tsx b/resources/scripts/components/servers/settings/HardwareContainer.tsx index 599f620b9d6..928c9c3f121 100644 --- a/resources/scripts/components/servers/settings/HardwareContainer.tsx +++ b/resources/scripts/components/servers/settings/HardwareContainer.tsx @@ -9,24 +9,10 @@ import { bytesToString } from '@/util/helpers' import useFlash from '@/util/useFlash' import useNotify from '@/util/useNotify' import { useFormik } from 'formik' -import { useEffect, useMemo, useState } from 'react' -import useSWR from 'swr' import * as yup from 'yup' -import { DndContext, DragEndEvent } from '@dnd-kit/core' -import { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable' -import SortableItem, { ChildrenPropsWithHandle } from '@/components/elements/dnd/SortableItem' -//@ts-ignore -import DragVerticalIcon from '@/assets/images/icons/drag-vertical.svg' - -import { restrictToVerticalAxis, restrictToWindowEdges } from '@dnd-kit/modifiers' -import MessageBox from '@/components/elements/MessageBox' -import { PlusIcon, XMarkIcon } from '@heroicons/react/20/solid' -import FlashMessageRender from '@/components/elements/FlashMessageRenderer' -import updateBootOrder from '@/api/server/settings/updateBootOrder' -import { Disk } from '@/api/server/useServerDetails' -import { Badge } from '@mantine/core' import MediaContainer from '@/components/servers/settings/MediaContainer' import BootOrderContainer from '@/components/servers/settings/BootOrderContainer' +import { useMemo } from 'react' const HardwareContainer = () => { const server = ServerContext.useStoreState(state => state.server.data!) @@ -52,6 +38,11 @@ const HardwareContainer = () => { }, }) + const addresses = useMemo(() => [ + ...server.limits.addresses.ipv4, + ...server.limits.addresses.ipv6, + ], [server.limits.addresses]) + return ( <> @@ -88,12 +79,11 @@ const HardwareContainer = () => {
IP Addresses
- {server.limits.addresses.ipv4.length === 0 && - server.limits.addresses.ipv6.length === 0 ? ( + {addresses.length === 0 ? (
There are no addresses associated with this server.
) : ( - {server.limits.addresses.ipv4.map(ip => ( + {addresses.map(ip => (

Address