diff --git a/resources/scripts/components/admin/roles/RoleEditContainer.tsx b/resources/scripts/components/admin/roles/RoleEditContainer.tsx new file mode 100644 index 000000000..c541988b3 --- /dev/null +++ b/resources/scripts/components/admin/roles/RoleEditContainer.tsx @@ -0,0 +1,8 @@ +import React from 'react'; + +export default () => { + return ( + <> + + ); +}; diff --git a/resources/scripts/components/admin/roles/RolesContainer.tsx b/resources/scripts/components/admin/roles/RolesContainer.tsx index 5a2f4ab6b..8feac2365 100644 --- a/resources/scripts/components/admin/roles/RolesContainer.tsx +++ b/resources/scripts/components/admin/roles/RolesContainer.tsx @@ -5,12 +5,15 @@ import { httpErrorToHuman } from '@/api/http'; import NewRoleButton from '@/components/admin/roles/NewRoleButton'; import FlashMessageRender from '@/components/FlashMessageRender'; import useFlash from '@/plugins/useFlash'; +import { NavLink, useRouteMatch } from 'react-router-dom'; import tw from 'twin.macro'; import AdminContentBlock from '@/components/admin/AdminContentBlock'; import Spinner from '@/components/elements/Spinner'; import getRoles from '@/api/admin/roles/getRoles'; export default () => { + const match = useRouteMatch(); + const { addError, clearFlashes } = useFlash(); const [ loading, setLoading ] = useState(true); @@ -82,7 +85,11 @@ export default () => { roles.map(role => ( {role.id} - {role.name} + + + {role.name} + + {role.description} )) diff --git a/resources/scripts/routers/AdminRouter.tsx b/resources/scripts/routers/AdminRouter.tsx index 0319e855d..89049d890 100644 --- a/resources/scripts/routers/AdminRouter.tsx +++ b/resources/scripts/routers/AdminRouter.tsx @@ -1,22 +1,23 @@ import React, { useState } from 'react'; import { NavLink, Route, RouteComponentProps, Switch } from 'react-router-dom'; -import RolesContainer from '@/components/admin/roles/RolesContainer'; -import NotFound from '@/components/screens/NotFound'; -import SettingsContainer from '@/components/admin/settings/SettingsContainer'; -import OverviewContainer from '@/components/admin/overview/OverviewContainer'; +import { useStoreState } from 'easy-peasy'; import tw from 'twin.macro'; import styled from 'styled-components/macro'; -import { useStoreState } from 'easy-peasy'; import { ApplicationStore } from '@/state'; +import { AdminContext } from '@/state/admin'; +import NotFound from '@/components/screens/NotFound'; +import OverviewContainer from '@/components/admin/overview/OverviewContainer'; +import SettingsContainer from '@/components/admin/settings/SettingsContainer'; import ApiKeysContainer from '@/components/admin/api/ApiKeysContainer'; import DatabasesContainer from '@/components/admin/databases/DatabasesContainer'; import NodesContainer from '@/components/admin/nodes/NodesContainer'; import LocationsContainer from '@/components/admin/locations/LocationsContainer'; import ServersContainer from '@/components/admin/servers/ServersContainer'; import UsersContainer from '@/components/admin/users/UsersContainer'; +import RolesContainer from '@/components/admin/roles/RolesContainer'; +import RoleEditContainer from '@/components/admin/roles/RoleEditContainer'; import NestsContainer from '@/components/admin/nests/NestsContainer'; import MountsContainer from '@/components/admin/mounts/MountsContainer'; -import { AdminContext } from '@/state/admin'; const Sidebar = styled.div<{ collapsed?: boolean }>` ${tw`h-screen flex flex-col items-center flex-shrink-0 bg-neutral-900 overflow-x-hidden transition-all duration-250 ease-linear`}; @@ -168,18 +169,24 @@ const AdminRouter = ({ location, match }: RouteComponentProps) => { {/* */} - - + + - - - - - - + + + + + - - + + + + + diff --git a/routes/admin.php b/routes/admin.php index fd70d8184..e228d68d6 100644 --- a/routes/admin.php +++ b/routes/admin.php @@ -3,9 +3,8 @@ use Illuminate\Support\Facades\Route; Route::get('/', 'BaseController@index')->name('admin.index')->fallback(); -Route::get('/{react}', 'BaseController@index'); - -Route::get('/statistics', 'StatisticsController@index')->name('admin.statistics'); +Route::get('/{react}', 'BaseController@index') + ->where('react', '.+'); /* |-------------------------------------------------------------------------- @@ -16,9 +15,6 @@ Route::get('/statistics', 'StatisticsController@index')->name('admin.statistics' | */ Route::group(['prefix' => 'api'], function () { - //Route::get('/', 'ApiController@index')->name('admin.api.index'); - //Route::get('/new', 'ApiController@create')->name('admin.api.new'); - Route::post('/new', 'ApiController@store'); Route::delete('/revoke/{identifier}', 'ApiController@delete')->name('admin.api.delete'); @@ -33,9 +29,6 @@ Route::group(['prefix' => 'api'], function () { | */ Route::group(['prefix' => 'locations'], function () { - //Route::get('/', 'LocationController@index')->name('admin.locations'); - //Route::get('/view/{location}', 'LocationController@view')->name('admin.locations.view'); - Route::post('/', 'LocationController@create'); Route::patch('/view/{location}', 'LocationController@update'); }); @@ -49,9 +42,6 @@ Route::group(['prefix' => 'locations'], function () { | */ Route::group(['prefix' => 'databases'], function () { - //Route::get('/', 'DatabaseController@index')->name('admin.databases'); - //Route::get('/view/{host}', 'DatabaseController@view')->name('admin.databases.view'); - Route::post('/', 'DatabaseController@create'); Route::patch('/view/{host}', 'DatabaseController@update'); Route::delete('/view/{host}', 'DatabaseController@delete'); @@ -66,11 +56,6 @@ Route::group(['prefix' => 'databases'], function () { | */ Route::group(['prefix' => 'settings'], function () { - //Route::get('/', 'Settings\IndexController@index')->name('admin.settings'); - //Route::get('/mail', 'Settings\MailController@index')->name('admin.settings.mail'); - //Route::get('/mail/test', 'Settings\MailController@test')->name('admin.settings.mail.test'); - //Route::get('/advanced', 'Settings\AdvancedController@index')->name('admin.settings.advanced'); - Route::patch('/', 'Settings\IndexController@update'); Route::patch('/mail', 'Settings\MailController@update'); Route::patch('/advanced', 'Settings\AdvancedController@update'); @@ -85,11 +70,6 @@ Route::group(['prefix' => 'settings'], function () { | */ Route::group(['prefix' => 'users'], function () { - //Route::get('/', 'UserController@index')->name('admin.users'); - //Route::get('/accounts.json', 'UserController@json')->name('admin.users.json'); - //Route::get('/new', 'UserController@create')->name('admin.users.new'); - //Route::get('/view/{user}', 'UserController@view')->name('admin.users.view'); - Route::post('/new', 'UserController@store'); Route::patch('/view/{user}', 'UserController@update'); @@ -105,21 +85,6 @@ Route::group(['prefix' => 'users'], function () { | */ Route::group(['prefix' => 'servers'], function () { - //Route::get('/', 'Servers\ServerController@index')->name('admin.servers'); - //Route::get('/new', 'Servers\CreateServerController@index')->name('admin.servers.new'); - //Route::get('/view/{server}', 'Servers\ServerViewController@index')->name('admin.servers.view'); - - /*Route::group(['middleware' => [ServerInstalled::class]], function () { - Route::get('/view/{server}/details', 'Servers\ServerViewController@details')->name('admin.servers.view.details'); - Route::get('/view/{server}/build', 'Servers\ServerViewController@build')->name('admin.servers.view.build'); - Route::get('/view/{server}/startup', 'Servers\ServerViewController@startup')->name('admin.servers.view.startup'); - Route::get('/view/{server}/database', 'Servers\ServerViewController@database')->name('admin.servers.view.database'); - Route::get('/view/{server}/mounts', 'Servers\ServerViewController@mounts')->name('admin.servers.view.mounts'); - });*/ - - //Route::get('/view/{server}/manage', 'Servers\ServerViewController@manage')->name('admin.servers.view.manage'); - //Route::get('/view/{server}/delete', 'Servers\ServerViewController@delete')->name('admin.servers.view.delete'); - Route::post('/new', 'Servers\CreateServerController@store'); Route::post('/view/{server}/build', 'ServersController@updateBuild'); Route::post('/view/{server}/startup', 'ServersController@saveStartup'); @@ -147,16 +112,6 @@ Route::group(['prefix' => 'servers'], function () { | */ Route::group(['prefix' => 'nodes'], function () { - //Route::get('/', 'Nodes\NodeController@index')->name('admin.nodes'); - //Route::get('/new', 'NodesController@create')->name('admin.nodes.new'); - //Route::get('/view/{node}', 'Nodes\NodeViewController@index')->name('admin.nodes.view'); - //Route::get('/view/{node}/settings', 'Nodes\NodeViewController@settings')->name('admin.nodes.view.settings'); - //Route::get('/view/{node}/configuration', 'Nodes\NodeViewController@configuration')->name('admin.nodes.view.configuration'); - //Route::get('/view/{node}/allocation', 'Nodes\NodeViewController@allocations')->name('admin.nodes.view.allocation'); - //Route::get('/view/{node}/servers', 'Nodes\NodeViewController@servers')->name('admin.nodes.view.servers'); - //Route::get('/view/{node}/system-information', 'Nodes\SystemInformationController'); - //Route::get('/view/{node}/settings/token', 'NodeAutoDeployController')->name('admin.nodes.view.configuration.token'); - Route::post('/new', 'NodesController@store'); Route::post('/view/{node}/allocation', 'NodesController@createAllocation'); Route::post('/view/{node}/allocation/remove', 'NodesController@allocationRemoveBlock')->name('admin.nodes.view.allocation.removeBlock'); @@ -178,9 +133,6 @@ Route::group(['prefix' => 'nodes'], function () { | */ Route::group(['prefix' => 'mounts'], function () { - //Route::get('/', 'MountController@index')->name('admin.mounts'); - //Route::get('/view/{mount}', 'MountController@view')->name('admin.mounts.view'); - Route::post('/', 'MountController@create'); Route::post('/{mount}/eggs', 'MountController@addEggs')->name('admin.mounts.eggs'); Route::post('/{mount}/nodes', 'MountController@addNodes')->name('admin.mounts.nodes'); @@ -200,15 +152,6 @@ Route::group(['prefix' => 'mounts'], function () { | */ Route::group(['prefix' => 'nests'], function () { - //Route::get('/', 'Nests\NestController@index')->name('admin.nests'); - //Route::get('/new', 'Nests\NestController@create')->name('admin.nests.new'); - //Route::get('/view/{nest}', 'Nests\NestController@view')->name('admin.nests.view'); - //Route::get('/egg/new', 'Nests\EggController@create')->name('admin.nests.egg.new'); - //Route::get('/egg/{egg}', 'Nests\EggController@view')->name('admin.nests.egg.view'); - //Route::get('/egg/{egg}/export', 'Nests\EggShareController@export')->name('admin.nests.egg.export'); - //Route::get('/egg/{egg}/variables', 'Nests\EggVariableController@view')->name('admin.nests.egg.variables'); - //Route::get('/egg/{egg}/scripts', 'Nests\EggScriptController@index')->name('admin.nests.egg.scripts'); - Route::post('/new', 'Nests\NestController@store'); Route::post('/import', 'Nests\EggShareController@import')->name('admin.nests.egg.import'); Route::post('/egg/new', 'Nests\EggController@store'); diff --git a/routes/base.php b/routes/base.php index 3be62423e..c27b24fff 100644 --- a/routes/base.php +++ b/routes/base.php @@ -1,5 +1,6 @@ name('index')->fallback();