Luca Parisio 1 rok temu
rodzic
commit
185fdeaf60

+ 62 - 0
app/Http/Livewire/Profile.php

@@ -0,0 +1,62 @@
+<?php
+
+namespace App\Http\Livewire;
+
+use Livewire\Component;
+
+class Profile extends Component
+{
+    public $name, $email, $password, $newPassword, $update = false;
+
+    protected $rules = [
+        'name' => 'required',
+        'email' => 'required',
+        'password' => 'required'
+    ];
+
+    protected $messages = [
+        'name.required' => 'Il nome è obbligatorio',
+        'email.required' => 'La mail è obbligatoria',
+        'password.required' => 'La password è obbligatoria',
+    ];
+
+    public function resetFields(){
+        $this->name = '';
+        $this->email = '';
+        $this->password = '';
+        $this->newPassword = '';
+    }
+
+    public function render()
+    {
+        $this->name = \Auth::user()->name;
+        $this->email = \Auth::user()->email;
+        return view('livewire.profile');
+    }
+
+    public function edit()
+    {
+        $this->resetFields();
+        $this->update = true;
+    }
+
+    public function save()
+    {
+        $this->validate();
+        try {
+            $user = \Auth::user();
+            $user->name = $this->name;
+            $user->email = $this->email;
+            if ($this->password != '')
+            {
+                $user->password = bcrypt($this->password);
+            }
+            $user->save();
+            session()->flash('success','Dato creato');
+            $this->resetFields();
+            $this->update = false;
+        } catch (\Exception $ex) {
+            session()->flash('error','Errore (' . $ex->getMessage() . ')');
+        }
+    }
+}

+ 3 - 3
resources/views/layouts/app.blade.php

@@ -366,9 +366,9 @@
 <!-- notifiche -->
 <div class="user--profile_menu d-none">
     <ul class="user--boxlist">
-        <!--<li class="user--boxlist_item">
+        <li class="user--boxlist_item">
             <a href="/profile">Profilo</a>
-        </li>-->
+        </li>
         <li class="user--boxlist_item">
             <a href="/logout">Logout</a>
         </li>
@@ -405,7 +405,7 @@
         $(document).ready(function() {
             $(document).on("click",`[data-bs-trigger='hover focus']`,function() {
                 $(".bs-popover-auto").css('display','none')
-                $(this).popover('hide');                
+                $(this).popover('hide');
             });
         });
         function newexportaction(e, dt, button, config) {

+ 54 - 0
resources/views/livewire/profile.blade.php

@@ -0,0 +1,54 @@
+<div class="col card--ui" id="card--dashboard">
+
+        <header id="title--section" style="display:none !important"  class="d-flex align-items-center justify-content-between">
+            <div class="title--section_name d-flex align-items-center justify-content-between">
+                <i class="ico--ui title_section utenti me-2"></i>
+                <h2 class="primary">Profilo</h2>
+            </div>
+        </header>
+
+        <div class="container">
+
+            @if (session()->has('error'))
+                <div class="alert alert-danger" role="alert">
+                    {{ session()->get('error') }}
+                </div>
+            @endif
+
+            <div class="row">
+                <div class="col">
+
+                    <form action="">
+
+                        <div class="row mb-3">
+                            <div class="col">
+                                <div class="form--item">
+                                    <label for="inputName" class="form-label">Nome</label>
+                                    @if($update)
+                                        <input class="form-control js-keyupTitle @error('name') is-invalid @enderror" type="text" id="name" placeholder="Nome" wire:model="name">
+                                        @error('name')
+                                            <div class="invalid-feedback">{{ $message }}</div>
+                                        @enderror
+                                    @else
+                                        {{$name}}
+                                    @endif
+                                </div>
+                            </div>
+                        </div>
+
+                        <!-- // inline input field -->
+
+                        <div class="form--item">
+                            @if($update)
+                                <button type="submit" class="btn--ui" wire:click.prevent="update()">Salva</button>
+                            @else
+                                <button type="submit" class="btn--ui" wire:click.prevent="edit()">Modifica</button>
+                            @endif
+                            <button type="button" class="btn--ui lightGrey" wire:click="cancel()">Annulla</button>
+                        </div>
+
+                    </form>
+                </div>
+            </div>
+        </div>
+</div>

+ 1 - 1
routes/web.php

@@ -72,7 +72,7 @@ Route::group(['middleware' => 'auth'],function(){
     Route::get('/out', \App\Http\Livewire\RecordOUT::class);
     Route::get('/records_in_out', \App\Http\Livewire\RecordINOUT::class);
     Route::get('/users', \App\Http\Livewire\User::class);
-
+    Route::get('/profile', \App\Http\Livewire\Profile::class);
 });
 
     Route::get('/receipt/{id}', function($id){