18 Julio Commit
18 Julio Commit
app/Http/Controllers/Admin/UserController.php
... ... @@ -7,25 +7,40 @@ use App\Models\Client;
7 7 use App\Models\IdentificationType;
8 8 use App\Models\Plan;
9 9 use App\User;
10 + use Carbon\Carbon;
10 11 use Illuminate\Http\Request;
11 12
12 13 class UserController extends Controller
13 14 {
14 - public function index()
15 + public function index(Request $request)
15 16 {
16 - $users = User::paginate(10);
17 + $nameFilter = $request->get('name');
18 + if ($nameFilter) {
19 + $users = User::where('first_name', 'like', "%{$nameFilter}%")
20 + ->orWhere('last_name', 'like', "%{$nameFilter}%")
21 + ->paginate(10);
22 + } else {
23 + $users = User::paginate(10);
24 + }
17 25 return view('admin.users.index', compact('users'));
18 26 }
19 27
28 + public function show(Request $request, User $user)
29 + {
30 + return view('admin.users.show', compact('user'));
31 + }
32 +
20 33 public function edit(Request $request, User $user)
21 34 {
22 35 $plans = Plan::orderBy('name')->get();
23 36 $clients = Client::orderBy('name')->get();
37 + $identificationTypes = IdentificationType::all();
24 38
25 39 return view('admin.users.edit', compact(
26 40 'user',
27 41 'plans',
28 - 'clients'
42 + 'clients',
43 + 'identificationTypes'
29 44 ));
30 45 }
31 46
... ... @@ -39,21 +54,30 @@ class UserController extends Controller
39 54 public function store(Request $request)
40 55 {
41 56 $request->validate([
42 - 'name' => 'required',
57 + 'first_name' => 'required',
58 + 'last_name' => 'required',
43 59 'email' => 'required|email|unique:users',
44 - 'password' => 'required|confirmed|min:4',
https://gitlab.com/guille.agudelo/apptalento/-/commit/03e0d2f5668f54d3ba470eecf828aee16dddc0b0 1/9
1/8/2020 Agrega buscar a modulo usuarios, actualiza campos usuarios (03e0d2f5) · Commits · Guillermo Agudelo / apptalento · GitLab
app/User.php
https://gitlab.com/guille.agudelo/apptalento/-/commit/03e0d2f5668f54d3ba470eecf828aee16dddc0b0 2/9
1/8/2020 Agrega buscar a modulo usuarios, actualiza campos usuarios (03e0d2f5) · Commits · Guillermo Agudelo / apptalento · GitLab
resources/views/admin/users/create.blade.php
... ... @@ -2,15 +2,13 @@
2 2 @section('content')
3 3 <div class="container" id="users">
4 4
5 - <p>Los campos marcados con asterisco (*) son obligatorios</p>
5 + <p class="ml-3">Los campos marcados con asterisco (*) son obligatorios</p>
6 6
7 - <form action="{{route('admin.users.store')}}"
8 - method="post"
9 - class="mx-4 p-3 border rounded">
7 + <form action="{{route('admin.users.store')}}" method="post" class="mx-4 p-3">
10 8 @csrf
11 9
12 10 <h2>Información básica</h2>
13 - <div class="row">
11 + <div class="row mb-4 p-3 border rounded">
14 12 <div class="col-lg-6">
15 13 <div class="form-group">
16 14 <label for="">Nombres *</label>
... ... @@ -35,80 +33,129 @@
35 33 <select id="" name="identification_type_id" class="form-control">
36 34 <option value=""></option>
37 35 @foreach($identificationTypes as $type)
38 - <option value="{{$type->id}}">
39 - {{$type->name}} - {{$type->description}}
36 + <option value="{{$type->id}}"
37 + @if(old('identification_type_id') == $type->id) selected @endif)>
38 + {{$type->name}} - {{$type->description}}
40 39 </option>
41 40 @endforeach
42 41 </select>
43 - @error('last_name')
44 - <span class="text-danger">{{$message}}</span>
42 + @error('identification_type_id')
43 + <span class="text-danger">{{$message}}</span>
45 44 @enderror
46 45 </div>
47 46
48 47 <div class="form-group">
49 48 <label for="">Número de Identificación</label>
50 - <input type="text" class="form-control" name="identification" value="
{{old('identification', '')}}">
49 + <input type="text"
50 + class="form-control"
51 + name="identification"
52 + value="{{old('identification', '')}}">
51 53 @error('identification')
52 - <span class="text-danger">{{$message}}</span>
54 + <span class="text-danger">{{$message}}</span>
53 55 @enderror
54 56 </div>
55 57 </div>
56 58 </div>
57 59
58 - <div class="form-group">
59 - <label for="">Email</label>
https://gitlab.com/guille.agudelo/apptalento/-/commit/03e0d2f5668f54d3ba470eecf828aee16dddc0b0 3/9
1/8/2020 Agrega buscar a modulo usuarios, actualiza campos usuarios (03e0d2f5) · Commits · Guillermo Agudelo / apptalento · GitLab
https://gitlab.com/guille.agudelo/apptalento/-/commit/03e0d2f5668f54d3ba470eecf828aee16dddc0b0 4/9
1/8/2020 Agrega buscar a modulo usuarios, actualiza campos usuarios (03e0d2f5) · Commits · Guillermo Agudelo / apptalento · GitLab
101 + </label>
102 + </div>
103 + <div class="form-check">
104 + <input class="form-check-input"
105 + type="radio"
106 + name="sex"
107 + id="sex-f"
108 + value="F"
109 + @if(old('sex') == 'F') checked @endif>
110 + <label class="form-check-label" for="sex-f">
111 + Femenino
112 + </label>
113 + </div>
114 + </div>
115 + </div>
94 116 </div>
95 117
96 - <div class="form-group">
97 - <label for="">Cliente <small>(Institución Educativa/Cuenta Personal)</small></label>
98 - <select id="client_id"
99 - class="form-control selectpicker"
100 - name="client_id"
101 - data-live-search="true"
102 - data-live-search-normalize="true"
103 - data-style=""
104 - data-style-base="form-control"
105 - data-none-selected-text="">
106 - @forelse($clients as $client)
107 - <option value="{{$client->id}}">{{$client->name}}</option>
108 - @empty
109 - <option value="">No hay clientes para mostrar</option>
110 - @endforelse
111 - </select>
118 +
119 + <h2>Información del sistema</h2>
120 + <div class="row mb-4 p-3 border rounded">
121 + <div class="col-lg-6">
122 + <div class="form-group">
123 + <label for="">Tipo *</label>
124 + <select id="type"
125 + class="form-control"
126 + name="type"
127 + value="{{old('type', '')}}"
128 + required>
129 + @foreach(UserTypes::getConstants() as $type)
130 + @continue($type == UserTypes::SUPERADMIN)
131 + <option value="{{$type}}">@sentence($type)</option>
132 + @endforeach
133 + </select>
134 + @error('type')
135 + <span class="text-danger">{{$message}}</span>
136 + @enderror
137 + </div>
138 + </div>
139 +
140 + <div class="col-lg-6">
141 + <div class="form-group">
142 + <label for="">Cliente * <small>(Institución Educativa/Cuenta Personal)</small>
</label>
143 + <select id="client_id"
144 + class="form-control selectpicker"
145 + name="client_id"
146 + data-live-search="true"
147 + data-live-search-normalize="true"
148 + data-style=""
149 + data-style-base="form-control"
150 + data-none-selected-text="">
151 + @forelse($clients as $client)
152 + <option value="{{$client->id}}">{{$client->name}}</option>
153 + @empty
154 + <option value="">No hay clientes para mostrar</option>
155 + @endforelse
156 + </select>
157 + </div>
158 + </div>
https://gitlab.com/guille.agudelo/apptalento/-/commit/03e0d2f5668f54d3ba470eecf828aee16dddc0b0 5/9
1/8/2020 Agrega buscar a modulo usuarios, actualiza campos usuarios (03e0d2f5) · Commits · Guillermo Agudelo / apptalento · GitLab
resources/views/admin/users/edit.blade.php
resources/views/admin/users/index.blade.php
... ... @@ -3,6 +3,9 @@
3 3 <div class="container" id="users">
4 4
5 5 <x-table>
6 + <x-slot name="headerLeft">
7 + <x-search action="{{route('admin.users.index')}}" :name="'name'">Buscar usuario</x-search>
8 + </x-slot>
6 9 <x-slot name="headerRight">
7 10 <a class="btn btn-primary" href="{{route('admin.users.create')}}">
8 11 <i class="fa fa-plus"></i> Agregar Nuevo Usuario
... ... @@ -13,7 +16,6 @@
13 16 <tr>
14 17 <th>Id</th>
15 18 <th><i class="fa fa-signature"></i> Nombre</th>
16 - <th><i class="fa fa-envelope"></i> Email</th>
17 19 <th><i class="fa fa-project-diagram"></i> Tipo</th>
18 20 <th><i class="fa fa-school"></i> Institución Educativa/Personal</th>
19 21 <th><i class="fa fa-calendar"></i> Plan</th>
... ... @@ -21,15 +23,19 @@
21 23 </tr>
22 24 </thead>
23 25 <tbody class="list">
24 - @foreach($users as $user)
26 + @forelse($users as $user)
25 27 <tr>
26 28 <td>{{$user->id}}</td>
27 29 <td>{{$user->name}} </td>
28 - <td>{{$user->email}}</td>
29 30 <td>@sentence($user->type)</td>
30 31 <td>{{$user->client->name}}</td>
31 32 <td>{{$user->client->plan->name}}</td>
32 33 <td class="text-right">
34 + <a href="{{route('admin.users.show', $user)}}"
35 + class="btn btn-sm btn-outline-dark py-1 px-2 mr-1"
36 + title="Ver Detalles">
37 + <i class="fa fa-eye"></i>
38 + </a>
33 39 <a href="{{route('admin.users.edit', $user)}}"
34 40 class="btn btn-sm btn-outline-info py-1 px-2 mr-1"
35 41 title="Editar">
... ... @@ -49,7 +55,11 @@
49 55 </form>
50 56 </td>
51 57 </tr>
52 - @endforeach
58 + @empty
59 + <tr>
60 + <td colspan="4">No se encontraron usuarios para mostrar</td>
61 + </tr>
62 + @endforelse
53 63 </tbody>
54 64 </table>
55 65 <x-slot name="pagination">
https://gitlab.com/guille.agudelo/apptalento/-/commit/03e0d2f5668f54d3ba470eecf828aee16dddc0b0 6/9
1/8/2020 Agrega buscar a modulo usuarios, actualiza campos usuarios (03e0d2f5) · Commits · Guillermo Agudelo / apptalento · GitLab
resources/views/admin/users/show.blade.php 0 → 100644
1 + @extends('layouts.app', ['title' => 'Detalles de Usuario: '.$user->name])
2 + @section('content')
3 + <div class="container mx-4" id="users">
4 +
5 + <h2>Información básica</h2>
6 + <div class="row mb-4 p-3 border rounded">
7 + <div class="col-lg-6">
8 + <div class="form-group">
9 + <label for="">Nombres</label>
10 + <h3>{{$user->first_name}}</h3>
11 + </div>
12 +
13 + <div class="form-group">
14 + <label for="">Apellidos</label>
15 + <h3>{{$user->last_name}}</h3>
16 + </div>
17 + </div>
18 +
19 + <div class="col-lg-6">
20 + <div class="form-group">
21 + <label for="">Tipo de Identificación</label>
22 + <h3>{{@$user->identificationType->name ?? '-'}}</h3>
23 + </div>
24 +
25 + <div class="form-group">
26 + <label for="">Número de Identificación</label>
27 + <h3>{{$user->identification ?? '-'}}</h3>
28 + </div>
29 + </div>
30 + </div>
31 +
32 +
33 + <h2>Información complementaria</h2>
34 + <div class="row mb-4 p-3 border rounded">
35 + <div class="col-lg-6">
36 + <div class="form-group">
37 + <label for="">Email</label>
38 + <h3>{{$user->email}}</h3>
39 + </div>
40 +
41 + <div class="form-group">
42 + <label for="">Teléfono</label>
43 + <h3>{{$user->phone ?? '-'}}</h3>
44 + </div>
45 + </div>
46 +
47 + <div class="col-lg-6">
48 + <div class="form-group">
49 + <label for="">Fecha de nacimiento</label>
50 + <h3>{{$user->birthday ?? '-'}}</h3>
51 + </div>
52 +
53 + <div class="form-group">
54 + <label for="">Sexo</label>
55 + <h3>{{$user->sex ?? '-'}}</h3>
56 + </div>
57 + </div>
58 + </div>
59 +
60 +
61 + <h2>Información del sistema</h2>
62 + <div class="row mb-4 p-3 border rounded">
63 + <div class="col-lg-6">
64 + <div class="form-group">
65 + <label for="">Tipo</label>
66 + <h3>{{$user->type}}</h3>
67 + </div>
https://gitlab.com/guille.agudelo/apptalento/-/commit/03e0d2f5668f54d3ba470eecf828aee16dddc0b0 7/9
1/8/2020 Agrega buscar a modulo usuarios, actualiza campos usuarios (03e0d2f5) · Commits · Guillermo Agudelo / apptalento · GitLab
68 +
69 + <div class="form-group">
70 + <label for="">Estado</label><br>
71 + @if($user->active)
72 + <span class="badge badge-lg badge-success">Activo</span>
73 + @else
74 + <span class="badge badge-lg badge-danger">Inactivo</span>
75 + @endif
76 + </div>
77 + </div>
78 +
79 + <div class="col-lg-6">
80 + <div class="form-group">
81 + <label for="">Cliente <small>(Institución Educativa/Cuenta Personal)</small>
</label>
82 + <h3>{{$user->client->name}}</h3>
83 + </div>
84 + </div>
85 + </div>
86 +
87 +
88 + <div class="my-4">
89 + <a href="{{route('admin.users.index')}}" class="btn btn-secondary">
90 + <i class="fa fa-arrow-left"></i> Volver
91 + </a>
92 + <a href="{{route('admin.users.edit', $user)}}" class="btn btn-info" type="submit">
93 + <i class="fa fa-edit"></i> Editar este usuario
94 + </a>
95 + </div>
96 +
97 +
98 + </div>
99 + @endsection
100 + @push('js')
101 + <script>
102 + $('#client_id').selectpicker('val', @json(old('client_id', $user->client_id)));
103 + </script>
104 + @endpush
resources/views/components/search.blade.php 0 → 100644
resources/views/components/table.blade.php
https://gitlab.com/guille.agudelo/apptalento/-/commit/03e0d2f5668f54d3ba470eecf828aee16dddc0b0 8/9
1/8/2020 Agrega buscar a modulo usuarios, actualiza campos usuarios (03e0d2f5) · Commits · Guillermo Agudelo / apptalento · GitLab
8 - </h3>
9 -
10 - <div>
8 + </div>
9 + <!-- <div class="col"></div> -->
10 + <div class="col-md-6 text-center text-md-right">
11 11 {{$headerRight??''}}
12 12 </div>
13 13 </div>
... ...
resources/views/layouts/_includes/css.blade.php
resources/views/layouts/app.blade.php
https://gitlab.com/guille.agudelo/apptalento/-/commit/03e0d2f5668f54d3ba470eecf828aee16dddc0b0 9/9