admin(ui): fix descriptions overflowing vertically

This commit is contained in:
Matthew Penner 2021-01-10 11:34:14 -07:00
parent 1800800308
commit 52b2463281
28 changed files with 107 additions and 85 deletions

View file

@ -7,13 +7,15 @@ export default () => {
return (
<AdminContentBlock title={'API Keys'}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>API Keys</h2>
<p css={tw`text-base text-neutral-400`}>Control access credentials for managing this Panel via the API.</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>Control access credentials for managing this Panel via the API.</p>
</div>
<div css={tw`flex ml-auto pl-4`}>
<NewApiKeyButton />
</div>
</div>
</AdminContentBlock>
);
};

View file

@ -165,7 +165,7 @@ export default () => {
}
</Formik>
<Button type={'button'} size={'large'} css={tw`h-10 ml-auto px-4 py-0`} onClick={() => setVisible(true)}>
<Button type={'button'} size={'large'} css={tw`h-10 px-4 py-0 whitespace-nowrap`} onClick={() => setVisible(true)}>
New API Key
</Button>
</>

View file

@ -197,9 +197,9 @@ const DatabaseEditContainer = () => {
return (
<AdminContentBlock title={'Database - ' + database.name}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>{database.name}</h2>
<p css={tw`text-base text-neutral-400`}>{database.getAddress()}</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>{database.getAddress()}</p>
</div>
</div>

View file

@ -63,17 +63,19 @@ const DatabasesContainer = () => {
return (
<AdminContentBlock title={'Databases'}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>Database Hosts</h2>
<p css={tw`text-base text-neutral-400`}>Database hosts that servers can have databases created on.</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>Database hosts that servers can have databases created on.</p>
</div>
<NavLink to={`${match.url}/new`} css={tw`ml-auto`}>
<Button type={'button'} size={'large'} css={tw`h-10 px-4 py-0`}>
<div css={tw`flex ml-auto pl-4`}>
<NavLink to={`${match.url}/new`}>
<Button type={'button'} size={'large'} css={tw`h-10 px-4 py-0 whitespace-nowrap`}>
New Database Host
</Button>
</NavLink>
</div>
</div>
<FlashMessageRender byKey={'databases'} css={tw`mb-4`}/>

View file

@ -4,11 +4,11 @@ import AdminContentBlock from '@/components/admin/AdminContentBlock';
export default () => {
return (
<AdminContentBlock>
<AdminContentBlock title={'New Database'}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>Create Database Host</h2>
<p css={tw`text-base text-neutral-400`}>Add a new database host to the panel.</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>Add a new database host to the panel.</p>
</div>
</div>
</AdminContentBlock>

View file

@ -157,7 +157,7 @@ const LocationEditContainer = () => {
return (
<AdminContentBlock title={'Location - ' + location.short}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>{location.short}</h2>
{
(location.long || '').length < 1 ?
@ -165,7 +165,7 @@ const LocationEditContainer = () => {
<span css={tw`italic`}>No long name</span>
</p>
:
<p css={tw`text-base text-neutral-400`}>{location.long}</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>{location.long}</p>
}
</div>
</div>

View file

@ -63,13 +63,15 @@ const LocationsContainer = () => {
return (
<AdminContentBlock title={'Locations'}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>Locations</h2>
<p css={tw`text-base text-neutral-400`}>All locations that nodes can be assigned to for easier categorization.</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>All locations that nodes can be assigned to for easier categorization.</p>
</div>
<div css={tw`flex ml-auto pl-4`}>
<NewLocationButton/>
</div>
</div>
<FlashMessageRender byKey={'locations'} css={tw`mb-4`}/>

View file

@ -103,7 +103,7 @@ export default () => {
}
</Formik>
<Button type={'button'} size={'large'} css={tw`h-10 ml-auto px-4 py-0`} onClick={() => setVisible(true)}>
<Button type={'button'} size={'large'} css={tw`h-10 px-4 py-0 whitespace-nowrap`} onClick={() => setVisible(true)}>
New Location
</Button>
</>

View file

@ -187,7 +187,7 @@ const MountEditContainer = () => {
return (
<AdminContentBlock title={'Mount - ' + mount.name}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>{mount.name}</h2>
{
(mount.description || '').length < 1 ?
@ -195,7 +195,7 @@ const MountEditContainer = () => {
<span css={tw`italic`}>No description</span>
</p>
:
<p css={tw`text-base text-neutral-400`}>{mount.description}</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>{mount.description}</p>
}
</div>
</div>

View file

@ -63,15 +63,17 @@ const MountsContainer = () => {
return (
<AdminContentBlock title={'Mounts'}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>Mounts</h2>
<p css={tw`text-base text-neutral-400`}>Configure and manage additional mount points for servers.</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>Configure and manage additional mount points for servers.</p>
</div>
<Button type={'button'} size={'large'} css={tw`h-10 ml-auto px-4 py-0`}>
<div css={tw`flex ml-auto pl-4`}>
<Button type={'button'} size={'large'} css={tw`h-10 px-4 py-0 whitespace-nowrap`}>
New Mount
</Button>
</div>
</div>
<FlashMessageRender byKey={'mounts'} css={tw`mb-4`}/>

View file

@ -262,7 +262,7 @@ const NestEditContainer = () => {
return (
<AdminContentBlock title={'Nests - ' + nest.name}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>{nest.name}</h2>
{
(nest.description || '').length < 1 ?
@ -270,7 +270,7 @@ const NestEditContainer = () => {
<span css={tw`italic`}>No description</span>
</p>
:
<p css={tw`text-base text-neutral-400`}>{nest.description}</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>{nest.description}</p>
}
</div>
</div>

View file

@ -63,13 +63,15 @@ const NestsContainer = () => {
return (
<AdminContentBlock title={'Nests'}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>Nests</h2>
<p css={tw`text-base text-neutral-400`}>All nests currently available on this system.</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>All nests currently available on this system.</p>
</div>
<div css={tw`flex ml-auto pl-4`}>
<NewNestButton/>
</div>
</div>
<FlashMessageRender byKey={'nests'} css={tw`mb-4`}/>

View file

@ -103,7 +103,7 @@ export default () => {
}
</Formik>
<Button type={'button'} size={'large'} css={tw`h-10 ml-auto px-4 py-0`} onClick={() => setVisible(true)}>
<Button type={'button'} size={'large'} css={tw`h-10 px-4 py-0 whitespace-nowrap`} onClick={() => setVisible(true)}>
New Nest
</Button>
</>

View file

@ -57,7 +57,7 @@ const EggEditContainer = () => {
return (
<AdminContentBlock title={'Egg - ' + egg.name}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>{egg.name}</h2>
{
(egg.description || '').length < 1 ?
@ -65,7 +65,7 @@ const EggEditContainer = () => {
<span css={tw`italic`}>No description</span>
</p>
:
<p css={tw`text-base text-neutral-400`}>{egg.description}</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>{egg.description}</p>
}
</div>
</div>

View file

@ -4,11 +4,11 @@ import AdminContentBlock from '@/components/admin/AdminContentBlock';
export default () => {
return (
<AdminContentBlock>
<AdminContentBlock title={'New Node'}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>Create Node</h2>
<p css={tw`text-base text-neutral-400`}>Add a new node to the panel.</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>Add a new node to the panel.</p>
</div>
</div>
</AdminContentBlock>

View file

@ -58,9 +58,9 @@ const NodeEditContainer = () => {
return (
<AdminContentBlock title={'Node - ' + node.name}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>{node.name}</h2>
<p css={tw`text-base text-neutral-400`}>{node.uuid}</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>{node.uuid}</p>
</div>
</div>

View file

@ -64,17 +64,19 @@ const NodesContainer = () => {
return (
<AdminContentBlock title={'Nodes'}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>Nodes</h2>
<p css={tw`text-base text-neutral-400`}>All nodes available on the system.</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>All nodes available on the system.</p>
</div>
<NavLink to={`${match.url}/new`} css={tw`ml-auto`}>
<Button type={'button'} size={'large'} css={tw`h-10 px-4 py-0`}>
<div css={tw`flex ml-auto pl-4`}>
<NavLink to={`${match.url}/new`}>
<Button type={'button'} size={'large'} css={tw`h-10 px-4 py-0 whitespace-nowrap`}>
New Node
</Button>
</NavLink>
</div>
</div>
<FlashMessageRender byKey={'nodes'} css={tw`mb-4`}/>

View file

@ -33,9 +33,11 @@ export default () => {
return (
<AdminContentBlock title={'Overview'}>
<div css={tw`flex flex-col mb-8`}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>Overview</h2>
<p css={tw`text-base text-neutral-400`}>A quick glance at your system.</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>A quick glance at your system.</p>
</div>
</div>
<FlashMessageRender byKey={'overview'} css={tw`mb-4`}/>

View file

@ -102,7 +102,7 @@ export default () => {
}
</Formik>
<Button type={'button'} size={'large'} css={tw`h-10 ml-auto px-4 py-0`} onClick={() => setVisible(true)}>
<Button type={'button'} size={'large'} css={tw`h-10 px-4 py-0 whitespace-nowrap`} onClick={() => setVisible(true)}>
New Role
</Button>
</>

View file

@ -58,7 +58,7 @@ const RoleEditContainer = () => {
return (
<AdminContentBlock title={'Role - ' + role.name}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>{role.name}</h2>
{
(role.description || '').length < 1 ?
@ -66,7 +66,7 @@ const RoleEditContainer = () => {
<span css={tw`italic`}>No description</span>
</p>
:
<p css={tw`text-base text-neutral-400`}>{role.description}</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>{role.description}</p>
}
</div>
</div>

View file

@ -64,13 +64,15 @@ export default () => {
return (
<AdminContentBlock title={'Roles'}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>Roles</h2>
<p css={tw`text-base text-neutral-400`}>Soon&trade;</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>Soon&trade;</p>
</div>
<div css={tw`flex ml-auto pl-4`}>
<NewRoleButton/>
</div>
</div>
<FlashMessageRender byKey={'roles'} css={tw`mb-4`}/>

View file

@ -4,11 +4,11 @@ import AdminContentBlock from '@/components/admin/AdminContentBlock';
export default () => {
return (
<AdminContentBlock>
<AdminContentBlock title={'New Server'}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>Create Server</h2>
<p css={tw`text-base text-neutral-400`}>Add a new server to the panel.</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>Add a new server to the panel.</p>
</div>
</div>
</AdminContentBlock>

View file

@ -58,7 +58,7 @@ const ServerEditContainer = () => {
return (
<AdminContentBlock title={'Server - ' + server.name}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>{server.name}</h2>
{
(server.description || '').length < 1 ?
@ -66,7 +66,7 @@ const ServerEditContainer = () => {
<span css={tw`italic`}>No description</span>
</p>
:
<p css={tw`text-base text-neutral-400`}>{server.description}</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>{server.description}</p>
}
</div>
</div>

View file

@ -63,17 +63,19 @@ const UsersContainer = () => {
return (
<AdminContentBlock title={'Servers'}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>Servers</h2>
<p css={tw`text-base text-neutral-400`}>All servers available on the system.</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>All servers available on the system.</p>
</div>
<NavLink to={`${match.url}/new`} css={tw`ml-auto`}>
<Button type={'button'} size={'large'} css={tw`h-10 px-4 py-0`}>
<div css={tw`flex ml-auto pl-4`}>
<NavLink to={`${match.url}/new`}>
<Button type={'button'} size={'large'} css={tw`h-10 px-4 py-0 whitespace-nowrap`}>
New Server
</Button>
</NavLink>
</div>
</div>
<FlashMessageRender byKey={'servers'} css={tw`mb-4`}/>

View file

@ -5,9 +5,11 @@ import AdminContentBlock from '@/components/admin/AdminContentBlock';
export default () => {
return (
<AdminContentBlock title={'Settings'}>
<div>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>Settings</h2>
<p css={tw`text-base text-neutral-400`}>Configure and manage settings for Pterodactyl.</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>Configure and manage settings for Pterodactyl.</p>
</div>
</div>
</AdminContentBlock>
);

View file

@ -4,11 +4,11 @@ import AdminContentBlock from '@/components/admin/AdminContentBlock';
export default () => {
return (
<AdminContentBlock>
<AdminContentBlock title={'New User'}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>Create User</h2>
<p css={tw`text-base text-neutral-400`}>Add a new user to the panel.</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>Add a new user to the panel.</p>
</div>
</div>
</AdminContentBlock>

View file

@ -58,9 +58,9 @@ const UserEditContainer = () => {
return (
<AdminContentBlock title={'User - ' + user.id}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>{user.firstName} {user.lastName}</h2>
<p css={tw`text-base text-neutral-400`}>{user.email}</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>{user.email}</p>
</div>
</div>

View file

@ -63,17 +63,19 @@ const UsersContainer = () => {
return (
<AdminContentBlock title={'Users'}>
<div css={tw`w-full flex flex-row items-center mb-8`}>
<div css={tw`flex flex-col`}>
<div css={tw`flex flex-col flex-shrink`} style={{ minWidth: '0' }}>
<h2 css={tw`text-2xl text-neutral-50 font-header font-medium`}>Users</h2>
<p css={tw`text-base text-neutral-400`}>All registered users on the system.</p>
<p css={tw`text-base text-neutral-400 whitespace-nowrap overflow-ellipsis overflow-hidden`}>All registered users on the system.</p>
</div>
<NavLink to={`${match.url}/new`} css={tw`ml-auto`}>
<Button type={'button'} size={'large'} css={tw`h-10 px-4 py-0`}>
<div css={tw`flex ml-auto pl-4`}>
<NavLink to={`${match.url}/new`}>
<Button type={'button'} size={'large'} css={tw`h-10 px-4 py-0 whitespace-nowrap`}>
New User
</Button>
</NavLink>
</div>
</div>
<FlashMessageRender byKey={'users'} css={tw`mb-4`}/>