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;
use App\Models\Unidade;
use App\Queries\CampusQuery;
use Illuminate\Http\Request;
use App\Models\Util\MenuItemsAdmin;
class CampusController extends Controller
{
......@@ -15,8 +16,8 @@ class CampusController extends Controller
* @return \Illuminate\Http\Response
*/
public function index()
{
return view('campus.index');
{
return view('campus.index', ['index_menu' => MenuItemsAdmin::CAMPUS]);
}
/**
......@@ -25,7 +26,7 @@ class CampusController extends Controller
* @return \Illuminate\Http\Response
*/
public function create()
{
{
return view('campus.create', ['unidades' => Unidade::all()]);
}
......@@ -36,7 +37,7 @@ class CampusController extends Controller
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
{
$model = new Campus();
$model->name = $request->name;
$model->unidade_id = $request->unidade_id;
......@@ -90,8 +91,7 @@ class CampusController extends Controller
public function findByUnidade(int $unidade_id)
{
{
return CampusQuery::whereUnidadeId($unidade_id)->orderBy('name')->get();
}
}
......@@ -2,7 +2,10 @@
namespace App\Http\Controllers;
use App\Models\Campus;
use App\Models\Curso;
use App\Models\Unidade;
use App\Models\Util\MenuItemsAdmin;
use Illuminate\Http\Request;
class CursoController extends Controller
......@@ -14,7 +17,17 @@ class CursoController extends Controller
*/
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 @@
namespace App\Http\Controllers;
use App\Models\Unidade;
use App\Models\Util\MenuItemsAdmin;
use App\Queries\UnidadeQuery;
use Illuminate\Http\Request;
......@@ -15,7 +16,10 @@ class UnidadeController extends Controller
*/
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
public function store(Request $request)
{
// dd($request);
return redirect('/dashboard');
}
......@@ -59,7 +63,7 @@ class UnidadeController extends Controller
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
{
$model = Unidade::find($id);
return view('unidade.update', ['unidade' => $model]);
}
......@@ -72,7 +76,7 @@ class UnidadeController extends Controller
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
{
$model = Unidade::find($id);
$model->name = $request->name;
$model->save();
......@@ -91,7 +95,7 @@ class UnidadeController extends Controller
$model = Unidade::find($id);
$model->delete();
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')
@section('title', 'Campus')
@section('header')
@include('layouts.header', [
'user' => Auth::user(),
])
@endsection
@section('nav')
@include('layouts.navigation', [
'index_menu' => $index_menu,
])
@endsection
@section('body')
<h1> Teste </h1>
@endsection
\ No newline at end of file
@endsection
@props(['active'])
@php
$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';
$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';
@endphp
<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')
<table class="table table-dark">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Name</th>
<th scope="col">Campus</th>
</tr>
</thead>
<tbody>
@foreach($cursos as $curso)
<tr>
<th scope="row">{{ $curso->id }}</th>
<td>{{ $curso->name }}</td>
<td>{{ $curso->campus }}</td>
</tr>
@endforeach
</tbody>
</table>
<div class="card-body">
<div class="accordion-body">
<table class="table">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Name</th>
<th scope="col">Campus</th>
</tr>
</thead>
<tbody>
@foreach ($campusWithCurso->cursos as $curso)
<tr>
<th>{{ $curso->id }}</th>
<td>{{ $curso->name }}</td>
<td>{{ $curso->campus }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
@endforeach
</div>
@endsection
......@@ -11,10 +11,9 @@
<!-- Authentication -->
<form method="POST" action="{{ route('logout') }}">
@csrf
<x-responsive-nav-link :href="route('logout')" onclick="event.preventDefault();
this.closest('form').submit();">
{{ __('Log Out') }}
Sair <i class="bi bi-box-arrow-right"></i>
</x-responsive-nav-link>
</form>
</div>
......
......@@ -45,8 +45,6 @@
</div>
</div>
<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
</footer>
......@@ -82,4 +80,5 @@
@section('scripts-jquery')
@show
</body>
</html>
......@@ -24,9 +24,7 @@
<!-- SidebarMenu : Professor -->
@if (Auth::user()->isTypeTeacher())
@include('layouts.user-navigation.navigation_teacher', [
'index_menu' => (!empty($index_menu) ? $index_menu : 0),
])
@include('layouts.user-navigation.navigation_teacher')
@endif
<!-- SidebarMenu : Diretor -->
......
<!-- SidebarMenu : Vertical Options -->
<ul class="nav flex-column nav-pills" id="myTab" role="tablist" aria-orientation="vertical">
<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">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-house-fill" viewBox="0 0 16 16">
<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>
<a href="{{ route('dashboard') }}" class="nav-link {{ ((($index_menu ?? 0) == 0 ? 0: $index_menu ) == 0? "active": "") }}">
<i class="bi bi-house-fill"></i>
Home
</a>
</li>
<li class="nav-item">
<a class="nav-link" id="campus-tab" data-toggle="tab" href="#campus" role="tab" aria-controls="campus" aria-selected="false">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-bank2" viewBox="0 0 16 16">
<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>
<a href="{{ route('campus_index') }}" class="nav-link {{ ((($index_menu ?? 0) == 0 ? 0: $index_menu ) == 1? "active": "") }}">
<i class="bi bi-bank2"></i>
Campus
</a>
</li>
<li class="nav-item">
<a class="nav-link" id="cursos-tab" data-toggle="tab" href="#cursos" role="tab" aria-controls="cursos" aria-selected="false">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-mortarboard-fill" viewBox="0 0 16 16">
<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>
<a href="{{ route('curso_index') }}" class="nav-link {{ ((($index_menu ?? 0) == 0 ? 0: $index_menu ) == 2? "active": "") }}">
<i class="bi bi-mortarboard-fill"></i>
Cursos
</a>
</li>
<li class="nav-item">
<a class="nav-link" id="unidade-tab" data-toggle="tab" href="#unidade" role="tab" aria-controls="unidade" aria-selected="false">
<i class="bi bi-pin-map-fill"></i>
<a href="{{ route('unidade_index') }}" class="nav-link {{ ((($index_menu ?? 0) == 0 ? 0: $index_menu ) == 3? "active": "") }}">
<i class="bi bi-geo-fill"></i>
Unidades
</a>
</li>
<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>
Diretorias
</a>
</li>
<li class="nav-item">
<a class="nav-link" id="coordenador-tab" data-toggle="tab" href="#coordenador" role="tab" aria-controls="coordenador" aria-selected="false">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-person-video3" viewBox="0 0 16 16">
<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>
<a href="{{ route('dashboard') }}" class="nav-link {{ ((($index_menu ?? 0) == 0 ? 0: $index_menu ) == 5? "active": "") }}">
<i class="bi bi-person-video3"></i>
Coordenadores
</a>
</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>
<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')
@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')
<div>
@include('components.devcomponents.btn-create', ['route' => route('unidade_create')])
</div>
<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>
@endsection
\ No newline at end of file
<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>
<td scope="row">{{ $unidade->id }}</td>
<td>{{ $unidade->name }}</td>
<td>
@include('components.buttons.btn-edit', [
'route' => route('unidade_edit', ['id' => $unidade->id]),
])
@include('components.buttons.btn-delete', [
'route' => route('unidade_delete', ['id' => $unidade->id]),
])
</td>
</tr>
@endforeach
</tbody>
</table>
@endsection
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