Commit 6266594f authored by alissonalbuquerque's avatar alissonalbuquerque
Browse files

fix(cursos): add correções em CRUD de cursos

parent 997e6dfe
...@@ -17,15 +17,10 @@ class CursoController extends Controller ...@@ -17,15 +17,10 @@ class CursoController extends Controller
*/ */
public function index() public function index()
{ {
$campusWithCursos = []; $cursos = Curso::orderBy('campus_id')->orderBy('name')->get();
$allCampus = Campus::all();
foreach($allCampus as $campus){
$campus->cursos = Curso::where('campus_id', '=', $campus->id)->get();
array_push($campusWithCursos, $campus);
}
return view('curso.index', [ return view('curso.index', [
'campusWithCursos' => $campusWithCursos, 'cursos' => $cursos,
'menu' => Menu::CURSOS 'menu' => Menu::CURSOS
]); ]);
} }
...@@ -62,18 +57,7 @@ class CursoController extends Controller ...@@ -62,18 +57,7 @@ class CursoController extends Controller
$model->fill($request->all()); $model->fill($request->all());
$model->save(); $model->save();
return redirect()->route('curso_index')->with('success', 'Salvo com sucesso!'); return redirect()->route('curso_index')->with('success', 'Curso salvo com sucesso!');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
} }
/** /**
...@@ -110,7 +94,7 @@ class CursoController extends Controller ...@@ -110,7 +94,7 @@ class CursoController extends Controller
$model->fill($request->all()); $model->fill($request->all());
$model->save(); $model->save();
return redirect()->route('curso_index')->with('success', 'Atualizado com sucesso!'); return redirect()->route('curso_index')->with('success', 'Curso atualizado com sucesso!');
} }
/** /**
...@@ -120,11 +104,11 @@ class CursoController extends Controller ...@@ -120,11 +104,11 @@ class CursoController extends Controller
* @param string $id * @param string $id
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function destroy($id) public function delete($id)
{ {
$model = Curso::find($id); $model = Curso::find($id);
$model->delete(); $model->delete();
return redirect()->route('curso_index')->with('success', 'Excluído com sucesso!'); return redirect()->route('curso_index')->with('success', 'Curso excluído com sucesso!');
} }
/** /**
......
...@@ -41,14 +41,19 @@ class Curso extends Model ...@@ -41,14 +41,19 @@ class Curso extends Model
{ {
$rules = [ $rules = [
'name' => ['min:8', 'max:255'], 'name' => ['required', 'min:8', 'max:255'],
'campus_id' => ['required'] 'campus_id' => ['required', 'integer']
]; ];
$messages = [ $messages = [
'min' => "O campo não tem o mínimo de caracteres permitido", //name
'max' => "O campo atingiu o máximo de caracteres permitido", 'name.required' => 'O campo "Nome do Campus" é obrigatório.',
'required' => "O campo precisa ser preenchido", 'name.min' => 'O campo "Nome do Campus" deve ter no minímo 8 (oito) caracteres.',
'name.max' => 'O campo "Nome do Campus" deve ter no máximo 255 (duzentos e cinquenta e cinco) caracteres.',
//campus_id
'campus_id.required' => 'O campo "Campus" é obrigatório.',
'campus_id.integer' => 'O campo "Campus" deve ser um inteiro.',
]; ];
try { try {
......
...@@ -34,21 +34,21 @@ ...@@ -34,21 +34,21 @@
</div> </div>
</div> </div>
[<div class='mb-3 col-sm-6'>] <div class='mb-3 col-sm-6'>
[ <div class="form-group">] <div class="form-group">
[ <label for="unidade_id">Unidade</label>] <label for="unidade_id">Unidade</label>
[ <select class="form-select" name="unidade_id" id="unidade_id">] <select class="form-select" name="unidade_id" id="unidade_id">
[ <option value="" disabled selected hidden> Selecione... </option>] <option value="" disabled selected hidden> Selecione... </option>
[ @foreach ($unidades as $unidade)] @foreach ($unidades as $unidade)
[ <option value="{{ $unidade->id }}" {{ old('unidade_id') == $unidade->id ? 'selected' : '' }}>] <option value="{{ $unidade->id }}" {{ old('unidade_id') == $unidade->id ? 'selected' : '' }}>
[ {{ $unidade->name }} </option>] {{ $unidade->name }} </option>
[ @endforeach] @endforeach
[ </select>] </select>
[ @error('unidade_id')] @error('unidade_id')
[ <span class="text-danger"> {{ $message }} </span>] <span class="text-danger"> {{ $message }} </span>
[ @enderror] @enderror
[ </div>] </div>
[</div>] </div>
<div class='mt-1 text-end'> <div class='mt-1 text-end'>
@include('components.buttons.btn-cancel', [ @include('components.buttons.btn-cancel', [
......
@extends('layouts.main') @extends('layouts.main')
@section('title', 'Campus') @section('title', 'Cursos')
@section('header') @section('header')
@include('layouts.header', [ @include('layouts.header', [
'user' => Auth::user(), 'user' => Auth::user(),
...@@ -8,16 +8,15 @@ ...@@ -8,16 +8,15 @@
@endsection @endsection
@section('nav') @section('nav')
@include('layouts.navigation', [ @include('layouts.navigation', [
'index_menu' => $index_menu, 'menu' => $menu,
]) ])
@endsection @endsection
@section('body') @section('body')
<div class="content mx-auto"> <div class="mb-3">
<h1 class="titulo pt-4 pb-4 mb-3 border-bottom">CADASTRO CURSO</h1> <h3 class="h4"> Cadastrar Curso </h3>
<p class="pb-4 mb-3 text-center text-muted align-items-center"> </div>
Insira os dados correspondentes nos campos exibidos abaixo
</p> <div>
<!-- Formulario -->
<form action="{{ route('curso_store') }}" method="post"> <form action="{{ route('curso_store') }}" method="post">
@csrf @csrf
@method('POST') @method('POST')
...@@ -68,3 +67,19 @@ ...@@ -68,3 +67,19 @@
</form> </form>
</div> </div>
@endsection @endsection
@section('scripts')
<script type="text/javascript">
$('#campus_id').select2(
{
placeholder: 'Campus...',
allowClear: true,
ajax: {
url: '{{ route("campus_search") }}',
dataType: 'json'
}
});
</script>
@endsection
\ No newline at end of file
...@@ -41,28 +41,26 @@ ...@@ -41,28 +41,26 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@foreach ($campusWithCursos as $campusWithCurso) @foreach ($cursos as $curso)
@foreach ($campusWithCurso->cursos as $curso) <tr>
<tr> <td>{{ $curso->name }}</td>
<td>{{ $curso->name }}</td> <td>{{ $curso->campus }}</td>
<td>{{ $curso->campus }}</td> <td>
<td> <div class="btn-group" role="group">
<div class="btn-group" role="group"> <div class="me-1">
<div class="me-1"> @include('components.buttons.btn-edit', [
@include('components.buttons.btn-edit', [ 'route' => route('curso_edit', ['id' => $curso->id]),
'route' => route('curso_edit', ['id' => $curso->id]), ])
])
</div>
<div class="me-1">
@include('components.buttons.btn-delete', [
'id' => $curso->id,
'route' => route('curso_delete', ['id' => $curso->id]),
])
</div>
</div> </div>
</td> <div class="me-1">
</tr> @include('components.buttons.btn-delete', [
@endforeach 'id' => $curso->id,
'route' => route('curso_delete', ['id' => $curso->id]),
])
</div>
</div>
</td>
</tr>
@endforeach @endforeach
</tbody> </tbody>
</table> </table>
......
@extends('layouts.main') @extends('layouts.main')
@section('title', 'Campus') @section('title', 'Cursos')
@section('header') @section('header')
@include('layouts.header', [ @include('layouts.header', [
'user' => Auth::user(), 'user' => Auth::user(),
...@@ -8,17 +8,15 @@ ...@@ -8,17 +8,15 @@
@endsection @endsection
@section('nav') @section('nav')
@include('layouts.navigation', [ @include('layouts.navigation', [
'index_menu' => $index_menu, 'menu' => $menu,
]) ])
@endsection @endsection
@section('body') @section('body')
<div class="content mx-auto"> <div class="mb-3">
<h1 class="titulo pt-4 pb-4 mb-3 border-bottom">CADASTRO CURSO</h1> <h3 class="h4"> Atualizar Curso </h3>
<p class="pb-4 mb-3 text-center text-muted align-items-center"> </div>
Insira os dados correspondentes nos campos exibidos abaixo
</p>
<!-- Formulario --> <div>
<form action="{{ route('curso_update', $curso->id ) }}" method="post"> <form action="{{ route('curso_update', $curso->id ) }}" method="post">
@csrf @csrf
@method('POST') @method('POST')
...@@ -72,3 +70,19 @@ ...@@ -72,3 +70,19 @@
</form> </form>
</div> </div>
@endsection @endsection
@section('scripts')
<script type="text/javascript">
$('#campus_id').select2(
{
placeholder: 'Unidade...',
allowClear: true,
ajax: {
url: '{{ route("campus_search") }}',
dataType: 'json'
}
});
</script>
@endsection
\ No newline at end of file
...@@ -9,6 +9,6 @@ Route::prefix('/curso')->group(function () { ...@@ -9,6 +9,6 @@ Route::prefix('/curso')->group(function () {
Route::post('/store', [CursoController::class, 'store'])->name('curso_store'); Route::post('/store', [CursoController::class, 'store'])->name('curso_store');
Route::get('/edit/{id}', [CursoController::class, 'edit'])->name('curso_edit'); Route::get('/edit/{id}', [CursoController::class, 'edit'])->name('curso_edit');
Route::post('/update/{id}', [CursoController::class, 'update'])->name('curso_update'); Route::post('/update/{id}', [CursoController::class, 'update'])->name('curso_update');
Route::delete('/delete/{id}', [CursoController::class, 'destroy'])->name('curso_delete'); Route::delete('/delete/{id}', [CursoController::class, 'delete'])->name('curso_delete');
Route::get('/search', [CursoController::class, 'actionSearch'])->name('curso_search'); Route::get('/search', [CursoController::class, 'actionSearch'])->name('curso_search');
}); });
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment