refactor(ui): improve styling and consistency in environment variable warning and docker cleanup components

This commit is contained in:
Andras Bacsai 2025-09-25 11:45:03 +02:00
parent 6cd3bc0461
commit 47b060e291
3 changed files with 45 additions and 53 deletions

View File

@ -31,7 +31,7 @@
}
}" x-if="showWarning">
<x-callout type="warning" title="Caution">
<div class="text-sm text-yellow-700 dark:text-yellow-300" x-text="warningMessage"></div>
<div class="text-sm text-yellow-700 dark:text-yellow-300" x-text="recommendation"></div>
<div class="text-sm" x-text="warningMessage"></div>
<div class="text-sm" x-text="recommendation"></div>
</x-callout>
</template>

View File

@ -41,11 +41,11 @@
helper="The Docker cleanup tasks will run when the disk usage exceeds this threshold." />
@endif
</div>
<div class="w-96">
<div class="w-full sm:w-96">
<x-forms.checkbox canGate="update" :canResource="$server"
helper="Enabling Force Docker Cleanup or manually triggering a cleanup will perform the following actions:
<ul class='list-disc pl-4 mt-2'>
<li>Removes stopped containers managed by Coolify (as containers are none persistent, no data will be lost).</li>
<li>Removes stopped containers managed by Coolify (as containers are non-persistent, no data will be lost).</li>
<li>Deletes unused images.</li>
<li>Clears build cache.</li>
<li>Removes old versions of the Coolify helper image.</li>
@ -63,7 +63,7 @@
<x-callout type="warning" title="Caution">
<p>These options can cause permanent data loss and functional issues. Only enable if you fully understand the consequences</p>
</x-callout>
<div class="w-96">
<div class="w-full sm:w-96">
<x-forms.checkbox canGate="update" :canResource="$server" instantSave id="deleteUnusedVolumes"
label="Delete Unused Volumes"
helper="This option will remove all unused Docker volumes during cleanup.<br><br><strong>Warning: Data from stopped containers will be lost!</strong><br><br>Consequences include:<br>

View File

@ -1,63 +1,55 @@
<?php
namespace Tests\Feature;
use App\Models\Team;
use App\Models\TeamInvitation;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class TeamInvitationEmailNormalizationTest extends TestCase
{
use RefreshDatabase;
uses(RefreshDatabase::class);
public function test_team_invitation_normalizes_email_to_lowercase()
{
// Create a team
$team = Team::factory()->create();
test('team invitation normalizes email to lowercase', function () {
// Create a team
$team = Team::factory()->create();
// Create invitation with mixed case email
$invitation = TeamInvitation::create([
'team_id' => $team->id,
'uuid' => 'test-uuid-123',
'email' => 'Test@Example.com', // Mixed case
'role' => 'member',
'link' => 'https://example.com/invite/test-uuid-123',
'via' => 'link'
]);
// Create invitation with mixed case email
$invitation = TeamInvitation::create([
'team_id' => $team->id,
'uuid' => 'test-uuid-123',
'email' => 'Test@Example.com', // Mixed case
'role' => 'member',
'link' => 'https://example.com/invite/test-uuid-123',
'via' => 'link',
]);
// Verify email was normalized to lowercase
$this->assertEquals('test@example.com', $invitation->email);
}
// Verify email was normalized to lowercase
expect($invitation->email)->toBe('test@example.com');
});
public function test_team_invitation_works_with_existing_user_email()
{
// Create a team
$team = Team::factory()->create();
test('team invitation works with existing user email', function () {
// Create a team
$team = Team::factory()->create();
// Create a user with lowercase email
$user = User::factory()->create([
'email' => 'test@example.com',
'name' => 'Test User'
]);
// Create a user with lowercase email
$user = User::factory()->create([
'email' => 'test@example.com',
'name' => 'Test User',
]);
// Create invitation with mixed case email
$invitation = TeamInvitation::create([
'team_id' => $team->id,
'uuid' => 'test-uuid-123',
'email' => 'Test@Example.com', // Mixed case
'role' => 'member',
'link' => 'https://example.com/invite/test-uuid-123',
'via' => 'link'
]);
// Create invitation with mixed case email
$invitation = TeamInvitation::create([
'team_id' => $team->id,
'uuid' => 'test-uuid-123',
'email' => 'Test@Example.com', // Mixed case
'role' => 'member',
'link' => 'https://example.com/invite/test-uuid-123',
'via' => 'link',
]);
// Verify the invitation email matches the user email (both normalized)
$this->assertEquals($user->email, $invitation->email);
// Verify the invitation email matches the user email (both normalized)
expect($invitation->email)->toBe($user->email);
// Verify user lookup works
$foundUser = User::whereEmail($invitation->email)->first();
$this->assertNotNull($foundUser);
$this->assertEquals($user->id, $foundUser->id);
}
}
// Verify user lookup works
$foundUser = User::whereEmail($invitation->email)->first();
expect($foundUser)->not->toBeNull();
expect($foundUser->id)->toBe($user->id);
});