From 2fc288566ced267c3966d4ead0cd10b4872d6af0 Mon Sep 17 00:00:00 2001 From: Maicol Battistini Date: Mon, 7 Mar 2022 12:11:29 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20=E2=9C=A8=20Riorganizzazione=20delle=20?= =?UTF-8?q?views=20Blade=20in=20componenti?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Middleware/HandleInertiaRequests.php | 6 ++- app/Providers/AppServiceProvider.php | 9 ++-- resources/views/app.blade.php | 42 ++----------------- resources/views/components/drawer.blade.php | 35 ++++------------ .../views/components/drawer/entries.blade.php | 26 ++++++++++++ resources/views/components/footer.blade.php | 13 ++++++ .../views/components/top-app-bar.blade.php | 20 +++++++++ .../top-app-bar/actions.blade.php} | 6 --- .../top-app-bar/menus.blade.php} | 0 resources/views/external.blade.php | 17 +++----- .../{head.blade.php => base.blade.php} | 28 +++++++++++++ resources/views/layouts/footer.blade.php | 13 ------ routes/web.php | 15 +++---- 13 files changed, 124 insertions(+), 106 deletions(-) create mode 100644 resources/views/components/drawer/entries.blade.php create mode 100644 resources/views/components/footer.blade.php create mode 100644 resources/views/components/top-app-bar.blade.php rename resources/views/{layouts/top-app-bar.blade.php => components/top-app-bar/actions.blade.php} (71%) rename resources/views/{layouts/top-app-bar-menus.blade.php => components/top-app-bar/menus.blade.php} (100%) rename resources/views/layouts/{head.blade.php => base.blade.php} (56%) delete mode 100644 resources/views/layouts/footer.blade.php diff --git a/app/Http/Middleware/HandleInertiaRequests.php b/app/Http/Middleware/HandleInertiaRequests.php index 521ad033b..d98151f38 100644 --- a/app/Http/Middleware/HandleInertiaRequests.php +++ b/app/Http/Middleware/HandleInertiaRequests.php @@ -3,6 +3,7 @@ namespace App\Http\Middleware; use Illuminate\Http\Request; +use Illuminate\Support\Arr; use Inertia\Middleware; class HandleInertiaRequests extends Middleware @@ -30,7 +31,10 @@ class HandleInertiaRequests extends Middleware final public function rootView(Request $request): string { - if (in_array($request->route()?->uri(), ['setup', 'login', 'setup/admin'], true)) { + /** @var array{external?: bool}|null $route_props */ + $route_props = $request->route('props'); + + if (Arr::get($route_props, 'external', false)) { return 'external'; } diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index e289d0ce4..1e10a43d4 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -2,6 +2,7 @@ namespace App\Providers; +use App\Http\Controllers\Controller; use Exception; use Illuminate\Support\ServiceProvider; use Nette\Utils\Json; @@ -19,11 +20,13 @@ class AppServiceProvider extends ServiceProvider * Bootstrap any application services. * @throws Exception */ - public function boot(): void + public function boot(Controller $controller): void { cache()->rememberForever( - 'translations_'.app()->getLocale(), - fn () => Json::decode(file_get_contents(resource_path('lang/'.app()->getLocale().'.json'))) + 'translations_' . app()->getLocale(), + fn() => Json::decode(file_get_contents(resource_path('lang/' . app()->getLocale() . '.json'))) ); + + view()->share('modules', $controller->getModules(request())); } } diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php index 7b290c280..8ad3d8a8f 100644 --- a/resources/views/app.blade.php +++ b/resources/views/app.blade.php @@ -1,39 +1,5 @@ - - -@include('layouts.head') - -@php - $modules = app(\App\Http\Controllers\Controller::class) - ->getModules(request()); -@endphp - - @include('layouts.top-app-bar') - - -
-
- @inertia -
-
-
-
- - -
-
+@extends('layouts.base') -@include('layouts.top-app-bar-menus') - -@include('layouts.footer') - - - +@section('contents') + +@endsection diff --git a/resources/views/components/drawer.blade.php b/resources/views/components/drawer.blade.php index 0e3f9ba48..9c6e70a58 100644 --- a/resources/views/components/drawer.blade.php +++ b/resources/views/components/drawer.blade.php @@ -1,26 +1,9 @@ - - @php - assert($modules instanceof \Illuminate\Support\Collection); - $entries = $modules->pluck('config.drawer_entries') - ->collapse() - ->prepend([ - 'icon' => 'view-dashboard-outline', - 'text' => __('Dashboard') - ], 'dashboard'); - @endphp - @foreach($entries as $route => $details) - @switch($route) - @case('hr') -
  • - @break - @default - - routeIs($route)) activated @endif> - - {{$details['text']}} - - - @endswitch - @endforeach -
    + + + +
    +
    + @inertia +
    +
    +
    diff --git a/resources/views/components/drawer/entries.blade.php b/resources/views/components/drawer/entries.blade.php new file mode 100644 index 000000000..d438e8aaf --- /dev/null +++ b/resources/views/components/drawer/entries.blade.php @@ -0,0 +1,26 @@ + + @php + assert($modules instanceof \Illuminate\Support\Collection); + $entries = $modules->pluck('config.drawer_entries') + ->collapse() + ->prepend([ + 'icon' => 'view-dashboard-outline', + 'text' => __('Dashboard') + ], 'dashboard'); + @endphp + @foreach($entries as $route => $details) + @switch($route) + @case('hr') +
  • + @break + @default + + routeIs($route)) activated @endif> + + {{$details['text']}} + + + @endswitch + @endforeach +
    diff --git a/resources/views/components/footer.blade.php b/resources/views/components/footer.blade.php new file mode 100644 index 000000000..9de0e7249 --- /dev/null +++ b/resources/views/components/footer.blade.php @@ -0,0 +1,13 @@ + diff --git a/resources/views/components/top-app-bar.blade.php b/resources/views/components/top-app-bar.blade.php new file mode 100644 index 000000000..2183185e7 --- /dev/null +++ b/resources/views/components/top-app-bar.blade.php @@ -0,0 +1,20 @@ + + + + + +
    + @lang('OpenSTAManager') + @lang('OpenSTAManager') +
    + + + + + + + + +
    + + diff --git a/resources/views/layouts/top-app-bar.blade.php b/resources/views/components/top-app-bar/actions.blade.php similarity index 71% rename from resources/views/layouts/top-app-bar.blade.php rename to resources/views/components/top-app-bar/actions.blade.php index 5cdb6c00e..56204012f 100644 --- a/resources/views/layouts/top-app-bar.blade.php +++ b/resources/views/components/top-app-bar/actions.blade.php @@ -1,9 +1,3 @@ - -
    - @lang('OpenSTAManager') - @lang('OpenSTAManager') -
    - diff --git a/resources/views/layouts/top-app-bar-menus.blade.php b/resources/views/components/top-app-bar/menus.blade.php similarity index 100% rename from resources/views/layouts/top-app-bar-menus.blade.php rename to resources/views/components/top-app-bar/menus.blade.php diff --git a/resources/views/external.blade.php b/resources/views/external.blade.php index 5e74e1b6b..75e2da7fd 100644 --- a/resources/views/external.blade.php +++ b/resources/views/external.blade.php @@ -1,12 +1,5 @@ - - - @include('layouts.head') - - @php - $modules = app(\App\Http\Controllers\Controller::class) - ->getModules(request()); - @endphp - @inertia - @include('layouts.footer') - - +@extends('layouts.base') + +@section('contents') + @inertia +@endsection diff --git a/resources/views/layouts/head.blade.php b/resources/views/layouts/base.blade.php similarity index 56% rename from resources/views/layouts/head.blade.php rename to resources/views/layouts/base.blade.php index 00ac97cb3..8783d4b71 100644 --- a/resources/views/layouts/head.blade.php +++ b/resources/views/layouts/base.blade.php @@ -1,3 +1,5 @@ + + @@ -19,3 +21,29 @@ @tag('styles') @tag('_material') + + +@php + /** @var $modules */ + assert($modules instanceof Illuminate\Support\Collection); + + /** @var string $translations */ + $translations = cache('translations_' . app()->getLocale()); +@endphp + +@yield('contents') + + + +@routes +@tag('app') + + diff --git a/resources/views/layouts/footer.blade.php b/resources/views/layouts/footer.blade.php deleted file mode 100644 index f607bf8a8..000000000 --- a/resources/views/layouts/footer.blade.php +++ /dev/null @@ -1,13 +0,0 @@ -@php - /** @var string $translations */ - $translations = cache('translations_' . app()->getLocale()); - - /** @var \Illuminate\Support\Collection $modules */ -@endphp - - -@routes -@tag('app') diff --git a/routes/web.php b/routes/web.php index 9b272e4c9..76cb6ea17 100644 --- a/routes/web.php +++ b/routes/web.php @@ -26,7 +26,7 @@ Route::get('/', static fn () => redirect()->route('auth.login')) Route::name('auth.') ->middleware('guest') ->group(static function () { - Route::inertia('login', 'LoginPage') + Route::inertia('login', 'LoginPage', ['external' => true]) ->name('login'); Route::post('login', [AuthController::class, 'login']) @@ -44,7 +44,7 @@ Route::name('password.') Route::post('forgot', [PasswordController::class, 'forgotPassword']) ->name('forgot'); - Route::inertia('reset', 'ResetPasswordPage') + Route::inertia('reset', 'ResetPasswordPage', ['external' => true]) ->name('reset'); Route::post('reset', [PasswordController::class, 'resetPassword']) @@ -53,15 +53,16 @@ Route::name('password.') Route::name('setup.')->middleware(CheckConfigurationMiddleware::class)->group(static function () { Route::inertia('setup', 'SetupPage', [ - 'languages' => cache()->rememberForever('app.languages', fn () => array_map( - static fn ($file) => basename($file, '.json'), - glob(resource_path('lang').'/*.json', GLOB_NOSORT) + 'languages' => cache()->rememberForever('app.languages', fn() => array_map( + static fn($file) => basename($file, '.json'), + glob(resource_path('lang') . '/*.json', GLOB_NOSORT) )), - 'license' => cache()->rememberForever('app.license', fn () => file_get_contents(base_path('LICENSE'))), + 'license' => cache()->rememberForever('app.license', fn() => file_get_contents(base_path('LICENSE'))), + 'external' => true, ]) ->name('index'); - Route::inertia('setup/admin', 'AdminSetupPage') + Route::inertia('setup/admin', 'AdminSetupPage', ['external' => true]) ->name('admin'); Route::options('setup/test', [SetupController::class, 'testDatabase'])