mirror of
https://github.com/tiennm99/coolify.git
synced 2026-09-09 04:17:14 +00:00
feat(ui): unify team, security, and notification settings layouts
Extract shared settings-layout components and a dedicated team danger-zone page. Enable modal editing for security resources, polish OAuth/API-token controls, and align notification and service configuration UI with the new navigation patterns.
This commit is contained in:
@@ -4,40 +4,48 @@
|
||||
* Settings title sits above the workspace; sidebar is below it. Title shell and
|
||||
* workspace share max-w-[1180px] so their left edges align.
|
||||
*/
|
||||
test('settings navbar and workspace share the same max width shell', function () {
|
||||
$navbar = file_get_contents(resource_path('views/components/settings/navbar.blade.php'));
|
||||
test('instance settings pages use one shared sidebar workspace', function () {
|
||||
$layout = file_get_contents(resource_path('views/components/settings/layout.blade.php'));
|
||||
|
||||
expect($navbar)
|
||||
expect($layout)
|
||||
->toContain('max-w-[1180px]')
|
||||
->toContain("title' => 'Settings'")
|
||||
->toContain(':titleOnDesktop="false"');
|
||||
->toContain('application-settings-navigation')
|
||||
->toContain("'Configuration' =>")
|
||||
->toContain("'Instance' =>");
|
||||
|
||||
$pages = [
|
||||
resource_path('views/livewire/settings/index.blade.php'),
|
||||
resource_path('views/livewire/settings/advanced.blade.php'),
|
||||
resource_path('views/livewire/settings/updates.blade.php'),
|
||||
resource_path('views/livewire/settings-oauth.blade.php'),
|
||||
resource_path('views/livewire/settings-backup.blade.php'),
|
||||
resource_path('views/livewire/settings-email.blade.php'),
|
||||
resource_path('views/livewire/settings/scheduled-jobs.blade.php'),
|
||||
];
|
||||
|
||||
foreach ($pages as $path) {
|
||||
$blade = file_get_contents($path);
|
||||
|
||||
expect($blade)
|
||||
->toContain('<x-settings.navbar')
|
||||
->toContain('max-w-[1180px]')
|
||||
->toContain('xl:grid-cols-[210px_minmax(0,1fr)]')
|
||||
->toContain('<x-settings.layout>')
|
||||
->not->toContain('<x-settings.navbar')
|
||||
->not->toContain('x-settings.page-header');
|
||||
}
|
||||
|
||||
$oauth = file_get_contents(resource_path('views/livewire/settings-oauth.blade.php'));
|
||||
expect($oauth)
|
||||
->toContain('<x-slot:submenu>')
|
||||
->toContain('aria-label="OAuth providers"')
|
||||
->toContain('window.scrollToSettingsSection?.')
|
||||
->toContain('history.replaceState')
|
||||
->not->toContain('xl:grid-cols-[210px_minmax(0,1fr)]');
|
||||
});
|
||||
|
||||
test('dashboard navbar hides family titles at lg by default', function () {
|
||||
$dashboardNavbar = file_get_contents(resource_path('views/components/dashboard/navbar.blade.php'));
|
||||
$settingsNavbar = file_get_contents(resource_path('views/components/settings/navbar.blade.php'));
|
||||
|
||||
expect($dashboardNavbar)
|
||||
->toContain("'titleOnDesktop' => false")
|
||||
->toContain("'lg:hidden' => ! \$titleOnDesktop");
|
||||
->toContain("'lg:hidden' => \$mobileTitleOnly || (! \$titleOnDesktop && \$showNav)");
|
||||
|
||||
expect($settingsNavbar)
|
||||
->toContain(':titleOnDesktop="false"');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user