feat(resources): add responsive mobile navigation menus

Unify application, database, and service headings with mobile-friendly
resource menus, route-aware configuration tabs, and confirmation triggers for
advanced actions. Standardize restart warnings with status badges and cover the
responsive menu and badge rendering behavior with feature tests.
This commit is contained in:
Andras Bacsai
2026-06-05 14:57:57 +02:00
parent 51583069f4
commit a9d9bfdbe3
15 changed files with 1238 additions and 414 deletions
@@ -87,6 +87,35 @@ it('renders responsive checkbox classes on the application configuration page',
$response->assertSuccessful();
$response->assertSee('Use a Build Server?');
$response->assertSee('application-mobile-section');
$response->assertSee('Application menu');
$response->assertSee('<optgroup label="Application">', false);
$response->assertSee('<optgroup label="Configuration">', false);
$response->assertSee('<optgroup label="Links">', false);
$response->assertSee('<optgroup label="Actions">', false);
$response->assertSee('value="navigate|application|', false);
$response->assertSee('value="navigate|configuration|', false);
$response->assertSee('window.Livewire?.navigate ? window.Livewire.navigate(url) : window.location.href = url', false);
$response->assertSee('value="action:force-deploy"', false);
$response->assertSee('application-mobile-stop-trigger');
$response->assertSee('application-mobile-deploy-trigger');
$response->assertSee('application-mobile-restart-trigger');
$response->assertSee('application-mobile-force-deploy-trigger');
$response->assertSee('Confirm Application Deployment?');
$response->assertSee('Confirm Application Restart?');
$response->assertSee('Confirm Application Force Deployment?');
$response->assertSee('sub-menu-wrapper hidden md:flex', false);
$response->assertSee('scrollbar hidden min-h-10', false);
$response->assertSee(route('project.application.deployment.index', [
'project_uuid' => $this->project->uuid,
'environment_uuid' => $this->environment->uuid,
'application_uuid' => $this->application->uuid,
]));
$response->assertSee(route('project.application.environment-variables', [
'project_uuid' => $this->project->uuid,
'environment_uuid' => $this->environment->uuid,
'application_uuid' => $this->application->uuid,
]));
$response->assertSee('form-control flex max-w-full flex-row items-center gap-4 py-1 pr-2', false);
$response->assertSee('label flex w-full max-w-full min-w-0 items-center gap-4 px-0', false);
$response->assertSee('flex min-w-0 grow gap-2 break-words', false);