diff --git a/resources/scripts/api/admin/nodes/getAllocations.ts b/resources/scripts/api/admin/nodes/getAllocations.ts
index 389fd49bd..e6f773dfe 100644
--- a/resources/scripts/api/admin/nodes/getAllocations.ts
+++ b/resources/scripts/api/admin/nodes/getAllocations.ts
@@ -12,19 +12,29 @@ export interface Allocation {
relations: {
server?: Server;
}
+
+ getDisplayText (): string;
}
export const rawDataToAllocation = ({ attributes }: FractalResponseData): Allocation => ({
id: attributes.id,
ip: attributes.ip,
port: attributes.port,
- alias: attributes.ip_alias || null,
+ alias: attributes.alias || null,
serverId: attributes.server_id,
assigned: attributes.assigned,
relations: {
server: attributes.relationships?.server?.object === 'server' ? rawDataToServer(attributes.relationships.server as FractalResponseData) : undefined,
},
+
+ // TODO: If IP is an IPv6, wrap IP in [].
+ getDisplayText (): string {
+ if (attributes.alias !== null) {
+ return `${attributes.ip}:${attributes.port} (${attributes.alias})`;
+ }
+ return `${attributes.ip}:${attributes.port}`;
+ },
});
export interface Filters {
diff --git a/resources/scripts/components/admin/servers/ServerSettingsContainer.tsx b/resources/scripts/components/admin/servers/ServerSettingsContainer.tsx
index bd138369e..6f2f70627 100644
--- a/resources/scripts/components/admin/servers/ServerSettingsContainer.tsx
+++ b/resources/scripts/components/admin/servers/ServerSettingsContainer.tsx
@@ -99,7 +99,7 @@ export function ServerAllocationsContainer ({ server }: { server: Server }) {
const loadOptions = async (inputValue: string, callback: (options: Option[]) => void) => {
const allocations = await getAllocations(server.nodeId, { ip: inputValue, server_id: '0' });
callback(allocations.map(a => {
- return { value: a.id.toString(), label: a.ip + ':' + a.port };
+ return { value: a.id.toString(), label: a.getDisplayText() };
}));
};
@@ -114,7 +114,7 @@ export function ServerAllocationsContainer ({ server }: { server: Server }) {
name={'allocationId'}
>
{server.relations?.allocations?.map(a => (
-
+
))}
@@ -133,7 +133,7 @@ export function ServerAllocationsContainer ({ server }: { server: Server }) {
name={'removeAllocations'}
label={'Remove Allocations'}
options={server.relations?.allocations?.map(a => {
- return { value: a.id.toString(), label: a.ip + ':' + a.port };
+ return { value: a.id.toString(), label: a.getDisplayText() };
}) || []}
isMulti
isSearchable