Skip to content

Commit 6d909a4

Browse files
Add admin area link to view config
1 parent 964a143 commit 6d909a4

File tree

3 files changed

+11
-0
lines changed

3 files changed

+11
-0
lines changed

app/Transformers/Api/Client/ServerTransformer.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ public function transform(Server $server): array
4646
return [
4747
'server_owner' => $this->getKey()->user_id === $server->owner_id,
4848
'identifier' => $server->uuidShort,
49+
'internal_id' => $server->id,
4950
'uuid' => $server->uuid,
5051
'name' => $server->name,
5152
'node' => $server->node->name,

resources/scripts/api/server/getServer.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export interface Allocation {
1313

1414
export interface Server {
1515
id: string;
16+
internalId: number;
1617
uuid: string;
1718
name: string;
1819
node: string;
@@ -43,6 +44,7 @@ export interface Server {
4344

4445
export const rawDataToServerObject = ({ attributes: data }: FractalResponseData): Server => ({
4546
id: data.identifier,
47+
internalId: data.internal_id,
4648
uuid: data.uuid,
4749
name: data.name,
4850
node: data.node,

resources/scripts/routers/ServerRouter.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ import InstallListener from '@/components/server/InstallListener';
2929
import StartupContainer from '@/components/server/startup/StartupContainer';
3030
import requireServerPermission from '@/hoc/requireServerPermission';
3131
import ErrorBoundary from '@/components/elements/ErrorBoundary';
32+
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
33+
import { faExternalLinkAlt } from '@fortawesome/free-solid-svg-icons';
3234

3335
const ServerRouter = ({ match, location }: RouteComponentProps<{ id: string }>) => {
3436
const rootAdmin = useStoreState(state => state.user.data!.rootAdmin);
@@ -40,6 +42,7 @@ const ServerRouter = ({ match, location }: RouteComponentProps<{ id: string }>)
4042
const isInstalling = ServerContext.useStoreState(state => state.server.data?.isInstalling);
4143
const getServer = ServerContext.useStoreActions(actions => actions.server.getServer);
4244
const clearServerState = ServerContext.useStoreActions(actions => actions.clearServerState);
45+
const serverId = ServerContext.useStoreState(state => state.server.data?.internalId);
4346

4447
useEffect(() => () => {
4548
clearServerState();
@@ -109,6 +112,11 @@ const ServerRouter = ({ match, location }: RouteComponentProps<{ id: string }>)
109112
<Can action={[ 'settings.*', 'file.sftp' ]} matchAny>
110113
<NavLink to={`${match.url}/settings`}>Settings</NavLink>
111114
</Can>
115+
{rootAdmin &&
116+
<a href={'/admin/servers/view/' + serverId} rel="noreferrer" target={'_blank'}>
117+
<FontAwesomeIcon icon={faExternalLinkAlt}/>
118+
</a>
119+
}
112120
</div>
113121
</SubNavigation>
114122
</CSSTransition>

0 commit comments

Comments
 (0)