feat: Visualização de detalhes do cliente

feat: Visualização de detalhes do cliente
This commit is contained in:
lukidev 2025-11-25 16:02:06 -03:00 committed by GitHub
commit b716dadd4f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 17 additions and 32 deletions

View File

@ -23,6 +23,9 @@ public function login(Request $request)
]
);
$request->flashOnly(['email']);
$teste = $request->old('email');
if (!Auth::attempt($validated)) {
return redirect()->route('login', status: 302)->with('error', 'Credenciais inválidas');
}

View File

@ -41,6 +41,7 @@ public function editUser(UserService $userService)
$this->dispatch('notify', message: $this->userForm->name . ' atualizado com sucesso!');
} catch (\Exception $e) {
$this->dispatch('notify', message: 'Falha na edição: ' . $e->getMessage(), type: 'error');
// $this->addError('general', $e->getMessage());
}
}
public function render()

View File

@ -8,8 +8,6 @@
class UserForm extends Form
{
public string $name = '';
public string $email = '';
public string $password = '';
@ -28,7 +26,7 @@ public function editUser(User $user)
protected $rules = [
'name' => 'required|string|max:255',
'email' => 'email|unique:users,email',
'email' => 'required|email',
'password' => 'string|min:8',
'password_confirm' => 'string|same:password',
'permissions' => 'required|string|in:user,admin'
@ -37,7 +35,6 @@ public function editUser(User $user)
protected $messages = [
'name' => 'Nome precisa ser informado.',
'email' => 'O email precisa ser informado.',
'email.unique' => 'O email informado já foi cadastrado anteriormente.',
'password' => 'A senha precisa ter 8 ou mais caracteres.',
'password_confirm' => 'As senhas não coincidem.',
'permissions' => 'Escolha o nível de autorização do usuário.'

View File

@ -17,7 +17,7 @@ public function run(): void
User::factory()->create([
'name' => 'admin',
'permissions' => ['admin'],
'email' => 'inglinesystemsadmin@inglinesystems.com.br',
'email' => 'suporte@inglinesystems.com.br',
'password' => Hash::make('*Ingline.Sys#9420%SECURITY#')
]);
}

View File

@ -3,12 +3,12 @@
@section('content')
<livewire:admin.user.create-user />
<livewire:admin.client.edit-client />
<livewire:admin.user.edit-user />
<livewire:admin.client.add-client />
<livewire:admin.user.delete-user>
<livewire:admin.show-users />
<livewire:admin.client.delete-client />
<x-are-you-sure />
<livewire:show-client />
<livewire:admin.client.edit-client />
<livewire:admin.user.edit-user />
@endsection

View File

@ -21,26 +21,26 @@
<div>
<label for="name" class="form-label">Nome</label>
<input type="text" wire:model.defer="userForm.name" id="name" class="form-input">
@error('name') <span class="error-text">{{ $message }}</span> @enderror
@error('userForm.name') <span class="error-text">{{ $message }}</span> @enderror
</div>
<div>
<label for="email" class="form-label">Email</label>
<input type="email" wire:model.defer="userForm.email" id="email" class="form-input">
@error('email') <span class="error-text">{{ $message }}</span> @enderror
@error('userForm.email') <span class="error-text">{{ $message }}</span> @enderror
</div>
<div>
<label for="password" class="form-label">Senha</label>
<input type="password" wire:model.defer="userForm.password" id="password" class="form-input">
@error('password') <span class="error-text">{{ $message }}</span> @enderror
@error('userForm.password') <span class="error-text">{{ $message }}</span> @enderror
</div>
<div>
<label for="password_confirm" class="form-label">Confirmar Senha</label>
<input type="password" wire:model="userForm.password_confirm" id="password_confirm"
class="form-input">
@error('password_confirm') <span class="error-text">{{ $message }}</span> @enderror
@error('userForm.password_confirm') <span class="error-text">{{ $message }}</span> @enderror
</div>
<div>
@ -97,7 +97,7 @@ class="absolute inset-y-0 left-0 flex items-center pl-3 text-blue-600">
</div>
</div>
@error('permissions') <span class="error-text">{{ $message }}</span> @enderror
@error('userForm.permissions') <span class="error-text">{{ $message }}</span> @enderror
</div>
<div class="form-footer">

View File

@ -2,42 +2,28 @@
@section('title', 'Nexus - Login')
@section('content')
<!--
1. Container principal que centraliza o card
(Usa a classe .container-form do seu novo CSS)
-->
<div class="container-form">
<!--
2. O Card de Login "Vidro Fosco"
(Usa a classe .form-class do seu novo CSS)
-->
<form action="{{ route('login-post') }}" class="form-class" method="POST">
@csrf
<!-- 3. A Logo (Usa .container-title) -->
<div class="container-title">
<!-- Coloque sua nova logo aqui! -->
<img src="{{ Vite::asset('resources/images/logo.png') }}" alt="Ingline Logo" class="h-10">
<!-- (Ajuste o src e o h-10 se necessário) -->
</div>
<div class="container-message">
</div>
<!-- 4. Título (Usa .form-title) -->
<h1 class="form-title">
Efetue seu login
</h1>
<!-- 5. Mensagens de Sessão -->
<x-session-messages />
<!-- 6. Grupo de Inputs (Usa .input-group, .form-label, .form-input-class) -->
<div class="input-group">
<label for="email" class="form-label">E-mail</label>
<input class="form-input-class" id="email" type="email" name="email" placeholder="seu@email.com" required>
<input class="form-input-class" id="email" type="email" name="email" value="{{ old('email') }}" placeholder="suporte@provedor.com" required>
</div>
<div class="input-group">
@ -45,12 +31,10 @@
<input class="form-input-class" id="password" type="password" name="password" placeholder="••••••••" required>
</div>
<!-- 7. Botão de Login (Usa .form-button-class) -->
<div class="mt-4">
<button class="form-button-class" type="submit">Login</button>
</div>
<!-- 8. Link de Senha (Usa .forget-password) -->
<div class="forget-password">
<a href="#">Esqueceu sua senha?</a>
</div>