feat(ui): polish DB public access, backups, and nav

Gate public TCP proxy until a port is set, show loading while saving
access, and open proxy logs in process-dialog. Compact backup
execution actions, add Postgres general section anchors, and tint
resource Actions icons with warning color.
This commit is contained in:
Andras Bacsai
2026-08-07 17:14:43 +02:00
parent 7d5c9fdbe1
commit 9c0908f0fc
35 changed files with 413 additions and 143 deletions
+39
View File
@@ -39,3 +39,42 @@ test('process dialog body styles support a full-height log surface', function ()
->toContain('.process-dialog-body')
->toContain('min-height: min(70dvh, 28rem)');
});
test('runtime log terminal fills the available dialog width', function () {
$view = file_get_contents(resource_path('views/livewire/project/shared/get-logs.blade.php'));
expect($view)->toContain("<div @class(['w-full min-w-0', 'runtime-log-shell' => \$collapsible])>");
});
test('process and log viewers use centered dialogs', function () {
$paths = [
resource_path('views/livewire/project/service/index.blade.php'),
resource_path('views/livewire/project/database/keydb/general.blade.php'),
resource_path('views/livewire/project/database/redis/general.blade.php'),
resource_path('views/livewire/project/database/postgresql/general.blade.php'),
resource_path('views/livewire/project/database/clickhouse/general.blade.php'),
resource_path('views/livewire/project/database/mongodb/general.blade.php'),
resource_path('views/livewire/project/database/dragonfly/general.blade.php'),
resource_path('views/livewire/project/database/mariadb/general.blade.php'),
resource_path('views/livewire/project/database/mysql/general.blade.php'),
resource_path('views/livewire/server/security/patches.blade.php'),
resource_path('views/livewire/server/cloudflare-tunnel.blade.php'),
];
foreach ($paths as $path) {
expect(file_get_contents($path))
->toContain('<x-process-dialog')
->not->toContain('<x-slide-over');
}
expect(file_get_contents(resource_path('views/livewire/server/show.blade.php')))
->not->toContain('<x-slide-over');
});
test('process dialog can start open for an in-progress operation', function () {
$component = file_get_contents(resource_path('views/components/process-dialog.blade.php'));
expect($component)
->toContain("'open' => false")
->toContain('processDialogOpen: @js($open)');
});