Commit c8ea0010 authored by Abraão Barbosa's avatar Abraão Barbosa
Browse files

Refatorqacao da tela de admin

parent 01596fa8
...@@ -6,6 +6,7 @@ use App\Models\Campus; ...@@ -6,6 +6,7 @@ use App\Models\Campus;
use App\Models\Unidade; use App\Models\Unidade;
use App\Queries\CampusQuery; use App\Queries\CampusQuery;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Models\Util\MenuItemsAdmin;
class CampusController extends Controller class CampusController extends Controller
{ {
...@@ -15,8 +16,8 @@ class CampusController extends Controller ...@@ -15,8 +16,8 @@ class CampusController extends Controller
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function index() public function index()
{ {
return view('campus.index'); return view('campus.index', ['index_menu' => MenuItemsAdmin::CAMPUS]);
} }
/** /**
...@@ -25,7 +26,7 @@ class CampusController extends Controller ...@@ -25,7 +26,7 @@ class CampusController extends Controller
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function create() public function create()
{ {
return view('campus.create', ['unidades' => Unidade::all()]); return view('campus.create', ['unidades' => Unidade::all()]);
} }
...@@ -36,7 +37,7 @@ class CampusController extends Controller ...@@ -36,7 +37,7 @@ class CampusController extends Controller
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function store(Request $request) public function store(Request $request)
{ {
$model = new Campus(); $model = new Campus();
$model->name = $request->name; $model->name = $request->name;
$model->unidade_id = $request->unidade_id; $model->unidade_id = $request->unidade_id;
...@@ -90,8 +91,7 @@ class CampusController extends Controller ...@@ -90,8 +91,7 @@ class CampusController extends Controller
public function findByUnidade(int $unidade_id) public function findByUnidade(int $unidade_id)
{ {
return CampusQuery::whereUnidadeId($unidade_id)->orderBy('name')->get(); return CampusQuery::whereUnidadeId($unidade_id)->orderBy('name')->get();
} }
} }
...@@ -2,7 +2,10 @@ ...@@ -2,7 +2,10 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Models\Campus;
use App\Models\Curso; use App\Models\Curso;
use App\Models\Unidade;
use App\Models\Util\MenuItemsAdmin;
use Illuminate\Http\Request; use Illuminate\Http\Request;
class CursoController extends Controller class CursoController extends Controller
...@@ -14,7 +17,17 @@ class CursoController extends Controller ...@@ -14,7 +17,17 @@ class CursoController extends Controller
*/ */
public function index() public function index()
{ {
return view('curso.index', ['cursos' => Curso::all()]); $campusWithCursos = [];
$allCampus = Campus::all();
foreach($allCampus as $campus){
$campus->cursos = Curso::where('campus_id', '=', $campus->id)->get();
array_push($campusWithCursos, $campus);
}
return view('curso.index', [
'campusWithCursos' => $campusWithCursos,
'index_menu' => MenuItemsAdmin::CURSOS
]);
} }
/** /**
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Models\Unidade; use App\Models\Unidade;
use App\Models\Util\MenuItemsAdmin;
use App\Queries\UnidadeQuery; use App\Queries\UnidadeQuery;
use Illuminate\Http\Request; use Illuminate\Http\Request;
...@@ -15,7 +16,10 @@ class UnidadeController extends Controller ...@@ -15,7 +16,10 @@ class UnidadeController extends Controller
*/ */
public function index() public function index()
{ {
return view('unidade.index', ['unidades' => Unidade::all()]); return view('unidade.index', [
'unidades' => Unidade::all(),
'index_menu' => MenuItemsAdmin::UNIDADES
]);
} }
/** /**
...@@ -37,7 +41,7 @@ class UnidadeController extends Controller ...@@ -37,7 +41,7 @@ class UnidadeController extends Controller
public function store(Request $request) public function store(Request $request)
{ {
// dd($request); // dd($request);
return redirect('/dashboard'); return redirect('/dashboard');
} }
...@@ -59,7 +63,7 @@ class UnidadeController extends Controller ...@@ -59,7 +63,7 @@ class UnidadeController extends Controller
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function edit($id) public function edit($id)
{ {
$model = Unidade::find($id); $model = Unidade::find($id);
return view('unidade.update', ['unidade' => $model]); return view('unidade.update', ['unidade' => $model]);
} }
...@@ -72,7 +76,7 @@ class UnidadeController extends Controller ...@@ -72,7 +76,7 @@ class UnidadeController extends Controller
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function update(Request $request, $id) public function update(Request $request, $id)
{ {
$model = Unidade::find($id); $model = Unidade::find($id);
$model->name = $request->name; $model->name = $request->name;
$model->save(); $model->save();
...@@ -91,7 +95,7 @@ class UnidadeController extends Controller ...@@ -91,7 +95,7 @@ class UnidadeController extends Controller
$model = Unidade::find($id); $model = Unidade::find($id);
$model->delete(); $model->delete();
return redirect('/unidade/index'); return redirect('/unidade/index');
} }
......
<?php
namespace App\Models\Util;
class MenuItemsAdmin
{
const HOME = 0;
const CAMPUS = 1;
const CURSOS = 2;
const UNIDADES = 3;
const DIRETORES = 4;
const CORDENADORES = 5;
}
<?php
namespace App\Models\Util;
class MenuItemsTeacher
{
const HOME = 0;
const PAD = 1;
}
@extends('layouts.main') @extends('layouts.main')
@section('title', 'Campus') @section('title', 'Campus')
@section('header')
@include('layouts.header', [
'user' => Auth::user(),
])
@endsection
@section('nav')
@include('layouts.navigation', [
'index_menu' => $index_menu,
])
@endsection
@section('body') @section('body')
<h1> Teste </h1>
@endsection @endsection
\ No newline at end of file
@props(['active']) @props(['active'])
@php @php
$classes = ($active ?? false) $classes = $active ?? false ? 'block pl-3 pr-4 py-2 border-l-4 border-indigo-400 text-base font-medium text-indigo-700 bg-indigo-50 focus:outline-none focus:text-indigo-800 focus:bg-indigo-100 focus:border-indigo-700 transition duration-150 ease-in-out' : 'btn btn-outline-secondary';
? 'block pl-3 pr-4 py-2 border-l-4 border-indigo-400 text-base font-medium text-indigo-700 bg-indigo-50 focus:outline-none focus:text-indigo-800 focus:bg-indigo-100 focus:border-indigo-700 transition duration-150 ease-in-out'
: 'btn btn-outline-secondary';
@endphp @endphp
<a {{ $attributes->merge(['class' => $classes]) }}> <a {{ $attributes->merge(['class' => $classes]) }}>
......
@extends('layouts.main')
@section('title', 'Cursos')
@section('header')
@include('layouts.header', [
'user' => Auth::user(),
])
@endsection
@section('nav')
@include('layouts.navigation', [
'index_menu' => $index_menu,
])
@endsection
@section('body')
@extends('layouts.main') <div class="accordion" id="accordionExample">
@foreach ($campusWithCursos as $campusWithCurso)
<div class="card" style="width: 50vw;">
<div class="card-header" id="heading{{ $campusWithCurso->id }}">
<h5 class="mb-0">
<button class="btn btn-link p-0" type="button" data-toggle="collapse" data-target="#collapse{{ $campusWithCurso->id }}"
aria-expanded="true" aria-controls="collapse{{ $campusWithCurso->id }}">
{{ $campusWithCurso->name }}
</button>
</h5>
</div>
@section('title', 'Curso') <div id="collapse{{ $campusWithCurso->id }}" class="collapse"
aria-labelledby="heading{{ $campusWithCurso->id }}" data-parent="#accordion{{ $campusWithCurso->id }}">
@section('body') <div class="card-body">
<table class="table table-dark"> <div class="accordion-body">
<thead> <table class="table">
<tr> <thead>
<th scope="col">#</th> <tr>
<th scope="col">Name</th> <th scope="col">#</th>
<th scope="col">Campus</th> <th scope="col">Name</th>
</tr> <th scope="col">Campus</th>
</thead> </tr>
<tbody> </thead>
@foreach($cursos as $curso) <tbody>
<tr> @foreach ($campusWithCurso->cursos as $curso)
<th scope="row">{{ $curso->id }}</th> <tr>
<td>{{ $curso->name }}</td> <th>{{ $curso->id }}</th>
<td>{{ $curso->campus }}</td> <td>{{ $curso->name }}</td>
</tr> <td>{{ $curso->campus }}</td>
@endforeach </tr>
</tbody> @endforeach
</table> </tbody>
</table>
</div>
</div>
</div>
</div>
@endforeach
</div>
@endsection @endsection
...@@ -11,10 +11,9 @@ ...@@ -11,10 +11,9 @@
<!-- Authentication --> <!-- Authentication -->
<form method="POST" action="{{ route('logout') }}"> <form method="POST" action="{{ route('logout') }}">
@csrf @csrf
<x-responsive-nav-link :href="route('logout')" onclick="event.preventDefault(); <x-responsive-nav-link :href="route('logout')" onclick="event.preventDefault();
this.closest('form').submit();"> this.closest('form').submit();">
{{ __('Log Out') }} Sair <i class="bi bi-box-arrow-right"></i>
</x-responsive-nav-link> </x-responsive-nav-link>
</form> </form>
</div> </div>
......
...@@ -45,8 +45,6 @@ ...@@ -45,8 +45,6 @@
</div> </div>
</div> </div>
<footer class="pt-3 my-3 text-center text-muted align-items-center border-top"> <footer class="pt-3 my-3 text-center text-muted align-items-center border-top">
Copyright &copy;2022. Universidade de Pernambuco - Todos os direitos reservados Copyright &copy;2022. Universidade de Pernambuco - Todos os direitos reservados
</footer> </footer>
...@@ -82,4 +80,5 @@ ...@@ -82,4 +80,5 @@
@section('scripts-jquery') @section('scripts-jquery')
@show @show
</body> </body>
</html> </html>
...@@ -24,9 +24,7 @@ ...@@ -24,9 +24,7 @@
<!-- SidebarMenu : Professor --> <!-- SidebarMenu : Professor -->
@if (Auth::user()->isTypeTeacher()) @if (Auth::user()->isTypeTeacher())
@include('layouts.user-navigation.navigation_teacher', [ @include('layouts.user-navigation.navigation_teacher')
'index_menu' => (!empty($index_menu) ? $index_menu : 0),
])
@endif @endif
<!-- SidebarMenu : Diretor --> <!-- SidebarMenu : Diretor -->
......
<!-- SidebarMenu : Vertical Options --> <!-- SidebarMenu : Vertical Options -->
<ul class="nav flex-column nav-pills" id="myTab" role="tablist" aria-orientation="vertical"> <ul class="nav flex-column nav-pills" id="myTab" role="tablist" aria-orientation="vertical">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true"> <a href="{{ route('dashboard') }}" class="nav-link {{ ((($index_menu ?? 0) == 0 ? 0: $index_menu ) == 0? "active": "") }}">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-house-fill" viewBox="0 0 16 16"> <i class="bi bi-house-fill"></i>
<path fill-rule="evenodd" d="m8 3.293 6 6V13.5a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 2 13.5V9.293l6-6zm5-.793V6l-2-2V2.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5z"/>
<path fill-rule="evenodd" d="M7.293 1.5a1 1 0 0 1 1.414 0l6.647 6.646a.5.5 0 0 1-.708.708L8 2.207 1.354 8.854a.5.5 0 1 1-.708-.708L7.293 1.5z"/>
</svg>
Home Home
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" id="campus-tab" data-toggle="tab" href="#campus" role="tab" aria-controls="campus" aria-selected="false"> <a href="{{ route('campus_index') }}" class="nav-link {{ ((($index_menu ?? 0) == 0 ? 0: $index_menu ) == 1? "active": "") }}">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-bank2" viewBox="0 0 16 16"> <i class="bi bi-bank2"></i>
<path d="M8.277.084a.5.5 0 0 0-.554 0l-7.5 5A.5.5 0 0 0 .5 6h1.875v7H1.5a.5.5 0 0 0 0 1h13a.5.5 0 1 0 0-1h-.875V6H15.5a.5.5 0 0 0 .277-.916l-7.5-5zM12.375 6v7h-1.25V6h1.25zm-2.5 0v7h-1.25V6h1.25zm-2.5 0v7h-1.25V6h1.25zm-2.5 0v7h-1.25V6h1.25zM8 4a1 1 0 1 1 0-2 1 1 0 0 1 0 2zM.5 15a.5.5 0 0 0 0 1h15a.5.5 0 1 0 0-1H.5z"/>
</svg>
Campus Campus
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" id="cursos-tab" data-toggle="tab" href="#cursos" role="tab" aria-controls="cursos" aria-selected="false"> <a href="{{ route('curso_index') }}" class="nav-link {{ ((($index_menu ?? 0) == 0 ? 0: $index_menu ) == 2? "active": "") }}">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-mortarboard-fill" viewBox="0 0 16 16"> <i class="bi bi-mortarboard-fill"></i>
<path d="M8.211 2.047a.5.5 0 0 0-.422 0l-7.5 3.5a.5.5 0 0 0 .025.917l7.5 3a.5.5 0 0 0 .372 0L14 7.14V13a1 1 0 0 0-1 1v2h3v-2a1 1 0 0 0-1-1V6.739l.686-.275a.5.5 0 0 0 .025-.917l-7.5-3.5Z"/>
<path d="M4.176 9.032a.5.5 0 0 0-.656.327l-.5 1.7a.5.5 0 0 0 .294.605l4.5 1.8a.5.5 0 0 0 .372 0l4.5-1.8a.5.5 0 0 0 .294-.605l-.5-1.7a.5.5 0 0 0-.656-.327L8 10.466 4.176 9.032Z"/>
</svg>
Cursos Cursos
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" id="unidade-tab" data-toggle="tab" href="#unidade" role="tab" aria-controls="unidade" aria-selected="false"> <a href="{{ route('unidade_index') }}" class="nav-link {{ ((($index_menu ?? 0) == 0 ? 0: $index_menu ) == 3? "active": "") }}">
<i class="bi bi-pin-map-fill"></i> <i class="bi bi-geo-fill"></i>
Unidades Unidades
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" id="diretoria-tab" data-toggle="tab" href="#diretoria" role="tab" aria-controls="diretoria" aria-selected="false"> <a href="{{ route('dashboard') }}" class="nav-link {{ ((($index_menu ?? 0) == 0 ? 0: $index_menu ) == 4? "active": "") }}">
<i class="bi bi-people-fill"></i> <i class="bi bi-people-fill"></i>
Diretorias Diretorias
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" id="coordenador-tab" data-toggle="tab" href="#coordenador" role="tab" aria-controls="coordenador" aria-selected="false"> <a href="{{ route('dashboard') }}" class="nav-link {{ ((($index_menu ?? 0) == 0 ? 0: $index_menu ) == 5? "active": "") }}">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-person-video3" viewBox="0 0 16 16"> <i class="bi bi-person-video3"></i>
<path d="M14 9.5a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm-6 5.7c0 .8.8.8.8.8h6.4s.8 0 .8-.8-.8-3.2-4-3.2-4 2.4-4 3.2Z"/>
<path d="M2 2a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h5.243c.122-.326.295-.668.526-1H2a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v7.81c.353.23.656.496.91.783.059-.187.09-.386.09-.593V4a2 2 0 0 0-2-2H2Z"/>
</svg>
Coordenadores Coordenadores
</a> </a>
</li> </li>
<li class="nav-item">
<a class="nav-link" id="update-perfil-tab" data-toggle="tab" href="#update-perfil" role="tab" aria-controls="update-perfil" aria-selected="true">
<!-- Update Perfil - Hidden -->
</a>
</li>
</ul> </ul>
<table class="table">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Name</th>
<th scope="col">Opções</th>
</tr>
</thead>
<tbody>
@foreach($unidades as $unidade)
<tr>
<th scope="row">{{ $unidade->id}}</th>
<td>{{ $unidade->name }}</td>
<td>
@include('components.devcomponents.btn-edit', ['route' => route('unidade_edit', ['id' => $unidade->id])])
@include('components.devcomponents.btn-delete', ['route' => route('unidade_delete', ['id' => $unidade->id])])
</td>
</tr>
@endforeach
</tbody>
</table>
\ No newline at end of file
@extends('layouts.main') @extends('layouts.main')
@section('title', 'Unidade') @section('title', 'Campus')
@section('header')
@include('layouts.header', [
'user' => Auth::user(),
])
@endsection
@section('nav')
@include('layouts.navigation', [
'index_menu' => $index_menu,
])
@endsection
@section('body') @section('body')
<table class="table">
<div> <thead>
@include('components.devcomponents.btn-create', ['route' => route('unidade_create')]) <tr>
</div> <th scope="col">#</th>
<th scope="col">Name</th>
<table class="table"> <th scope="col">Opções</th>
<thead> </tr>
<tr> </thead>
<th scope="col">#</th> <tbody>
<th scope="col">Name</th> @foreach ($unidades as $unidade)
<th scope="col">Opções</th> <tr>
</tr> <td scope="row">{{ $unidade->id }}</td>
</thead> <td>{{ $unidade->name }}</td>
<tbody> <td>
@foreach($unidades as $unidade) @include('components.buttons.btn-edit', [
<tr> 'route' => route('unidade_edit', ['id' => $unidade->id]),
<th scope="row">{{ $unidade->id}}</th> ])
<td>{{ $unidade->name }}</td> @include('components.buttons.btn-delete', [
<td> 'route' => route('unidade_delete', ['id' => $unidade->id]),
@include('components.devcomponents.btn-edit', ['route' => route('unidade_edit', ['id' => $unidade->id])]) ])
@include('components.devcomponents.btn-delete', ['route' => route('unidade_delete', ['id' => $unidade->id])]) </td>
</td> </tr>
</tr> @endforeach
@endforeach </tbody>
</tbody> </table>
</table> @endsection
@endsection
\ No newline at end of file
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